lkml.org 
[lkml]   [2003]   [Jul]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
SubjectRe: 2.6.0-test1 gets corrupted data when loading init
From
On Fri, Jul 18, 2003 at 11:51:08AM +0200, Anders Gustafsson wrote:
> On Fri, Jul 18, 2003 at 10:34:58AM +0200, Anders Gustafsson wrote:
> > It breaks between 2.5.70 and 2.5.70-bk1, which contains a update in the
> > aic79xx-drivers, so my guess is related to that.
>
> http://linux.bkbits.net:8080/linux-2.5/cset@1.1127.6.4 is the changeset that
> makes it stop working.

Yeah, and reversing that on 2.6.0-test+bk with the attached patch makes it
work on 2.6.0-test1.

But I get these messages:

(scsi1:A:0:0): CDB: 0x12 0x1 0x80 0x0 0x60 0x0
(scsi1:A:0:0): Saw underflow (72 of 96 bytes). Treated as error
(scsi1:A:0:0): CDB: 0x12 0x1 0x80 0x0 0x60 0x0
(scsi1:A:0:0): Saw underflow (72 of 96 bytes). Treated as error
(scsi1:A:0): 160.000MB/s transfers (80.000MHz DT|IU|QAS, 16bit)
(scsi1:A:0:0): CDB: 0x12 0x1 0x80 0x0 0x60 0x0
(scsi1:A:0:0): Saw underflow (72 of 96 bytes). Treated as error
(scsi1:A:0:0): CDB: 0x12 0x1 0x80 0x0 0x60 0x0
(scsi1:A:0:0): Saw underflow (72 of 96 bytes). Treated as error
(scsi1:A:0): 160.000MB/s transfers (80.000MHz DT, 16bit)
(scsi1:A:0:0): CDB: 0x12 0x1 0x80 0x0 0x60 0x0
(scsi1:A:0:0): Saw underflow (72 of 96 bytes). Treated as error
(scsi1:A:0:0): CDB: 0x12 0x1 0x80 0x0 0x60 0x0
(scsi1:A:0:0): Saw underflow (72 of 96 bytes). Treated as error
(scsi1:A:0): 80.000MB/s transfers (40.000MHz DT, 16bit)
(scsi1:A:0:0): CDB: 0x12 0x1 0x80 0x0 0x60 0x0
(scsi1:A:0:0): Saw underflow (72 of 96 bytes). Treated as error


--
Anders Gustafsson - andersg@0x63.nu - http://0x63.nu/

--- a/drivers/scsi/aic7xxx/aic79xx.seq Fri Jul 18 19:34:59 2003
+++ b/drivers/scsi/aic7xxx/aic79xx.seq Fri Jul 18 19:34:59 2003
@@ -261,15 +261,6 @@
clr A;
add CMDS_PENDING, 1;
adc CMDS_PENDING[1], A;
- if ((ahd->bugs & AHD_PKT_LUN_BUG) != 0) {
- /*
- * "Short Luns" are not placed into outgoing LQ
- * packets in the correct byte order. Use a full
- * sized lun field instead and fill it with the
- * one byte of lun information we support.
- */
- mov SCB_PKT_LUN[6], SCB_LUN;
- }
/*
* The FIFO use count field is shared with the
* tag set by the host so that our SCB dma engine
--- a/drivers/scsi/aic7xxx/aic79xx_core.c Fri Jul 18 19:34:59 2003
+++ b/drivers/scsi/aic7xxx/aic79xx_core.c Fri Jul 18 19:34:59 2003
@@ -8272,6 +8272,8 @@
download_consts[PKT_OVERRUN_BUFOFFSET] =
(ahd->overrun_buf - (uint8_t *)ahd->qoutfifo) / 256;
download_consts[SCB_TRANSFER_SIZE] = SCB_TRANSFER_SIZE_1BYTE_LUN;
+ if ((ahd->bugs & AHD_PKT_LUN_BUG) != 0)
+ download_consts[SCB_TRANSFER_SIZE] = SCB_TRANSFER_SIZE_FULL_LUN;
cur_patch = patches;
downloaded = 0;
skip_addr = 0;
--- a/drivers/scsi/aic7xxx/aic79xx_inline.h Fri Jul 18 19:34:59 2003
+++ b/drivers/scsi/aic7xxx/aic79xx_inline.h Fri Jul 18 19:34:59 2003
@@ -272,6 +272,10 @@
if ((scb->flags & SCB_PACKETIZED) != 0) {
/* XXX what about ACA?? It is type 4, but TAG_TYPE == 0x3. */
scb->hscb->task_attribute = scb->hscb->control & SCB_TAG_TYPE;
+ /*
+ * For Rev A short lun workaround.
+ */
+ scb->hscb->pkt_long_lun[6] = scb->hscb->lun;
} else {
if (ahd_get_transfer_length(scb) & 0x01)
scb->hscb->task_attribute = SCB_XFERLEN_ODD;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2005-03-22 13:46    [W:0.063 / U:21.592 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site