diff options
-rw-r--r-- | Documentation/scsi/ChangeLog.megaraid | 7 | ||||
-rw-r--r-- | drivers/scsi/megaraid/mega_common.h | 3 | ||||
-rw-r--r-- | drivers/scsi/megaraid/megaraid_mbox.c | 8 |
3 files changed, 18 insertions, 0 deletions
diff --git a/Documentation/scsi/ChangeLog.megaraid b/Documentation/scsi/ChangeLog.megaraid index fd8939e0045d..0edb048b2ea4 100644 --- a/Documentation/scsi/ChangeLog.megaraid +++ b/Documentation/scsi/ChangeLog.megaraid | |||
@@ -59,6 +59,13 @@ Older Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) | |||
59 | > Buffer I/O error on device sda6, logical block 522067228 | 59 | > Buffer I/O error on device sda6, logical block 522067228 |
60 | > attempt to access beyond end of device | 60 | > attempt to access beyond end of device |
61 | 61 | ||
62 | 2. When INQUIRY with EVPD bit set issued to the MegaRAID controller, | ||
63 | system memory gets corrupted. | ||
64 | Root Cause: MegaRAID F/W handle the INQUIRY with EVPD bit set | ||
65 | incorrectly. | ||
66 | Fix: MegaRAID F/W has fixed the problem and being process of release, | ||
67 | soon. Meanwhile, driver will filter out the request. | ||
68 | |||
62 | Release Date : Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju <sju@lsil.com> | 69 | Release Date : Mon Apr 11 12:27:22 EST 2006 - Seokmann Ju <sju@lsil.com> |
63 | Current Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) | 70 | Current Version : 2.20.4.8 (scsi module), 2.20.2.6 (cmm module) |
64 | Older Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) | 71 | Older Version : 2.20.4.7 (scsi module), 2.20.2.6 (cmm module) |
diff --git a/drivers/scsi/megaraid/mega_common.h b/drivers/scsi/megaraid/mega_common.h index 12e38125b123..8cd0bd1d0f7c 100644 --- a/drivers/scsi/megaraid/mega_common.h +++ b/drivers/scsi/megaraid/mega_common.h | |||
@@ -40,6 +40,9 @@ | |||
40 | #define HBA_SIGNATURE_64_BIT 0x299 | 40 | #define HBA_SIGNATURE_64_BIT 0x299 |
41 | #define PCI_CONF_AMISIG64 0xa4 | 41 | #define PCI_CONF_AMISIG64 0xa4 |
42 | 42 | ||
43 | #define MEGA_SCSI_INQ_EVPD 1 | ||
44 | #define MEGA_INVALID_FIELD_IN_CDB 0x24 | ||
45 | |||
43 | 46 | ||
44 | /** | 47 | /** |
45 | * scb_t - scsi command control block | 48 | * scb_t - scsi command control block |
diff --git a/drivers/scsi/megaraid/megaraid_mbox.c b/drivers/scsi/megaraid/megaraid_mbox.c index e671af0b4f58..cd982c877da0 100644 --- a/drivers/scsi/megaraid/megaraid_mbox.c +++ b/drivers/scsi/megaraid/megaraid_mbox.c | |||
@@ -1644,6 +1644,14 @@ megaraid_mbox_build_cmd(adapter_t *adapter, struct scsi_cmnd *scp, int *busy) | |||
1644 | rdev->last_disp |= (1L << SCP2CHANNEL(scp)); | 1644 | rdev->last_disp |= (1L << SCP2CHANNEL(scp)); |
1645 | } | 1645 | } |
1646 | 1646 | ||
1647 | if (scp->cmnd[1] & MEGA_SCSI_INQ_EVPD) { | ||
1648 | scp->sense_buffer[0] = 0x70; | ||
1649 | scp->sense_buffer[2] = ILLEGAL_REQUEST; | ||
1650 | scp->sense_buffer[12] = MEGA_INVALID_FIELD_IN_CDB; | ||
1651 | scp->result = CHECK_CONDITION << 1; | ||
1652 | return NULL; | ||
1653 | } | ||
1654 | |||
1647 | /* Fall through */ | 1655 | /* Fall through */ |
1648 | 1656 | ||
1649 | case READ_CAPACITY: | 1657 | case READ_CAPACITY: |