[PATCH] mvsas: ATAPI LUN issue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I found that sending REPORT_LUNS command to some DVD device will cause fis error and controller error record. As a result, scsi mid layer get some wrong LUNs. Also I can get some queer messages.

scsi: host 12 channel 0 id 2 lun 0x30302e302f686f73 has a LUN larger than currently supported. scsi: host 12 channel 0 id 2 lun 0x7431322f706f7274 has a LUN larger than currently supported. scsi: host 12 channel 0 id 2 lun 0x2d31323a322f656e has a LUN larger than currently supported.
...

The patch forced to clear the sg buffer of SATA response if FIS is error. But I suggest these codes should remove to the libsas module.


Signed-off-by: Ke Wei <kewei@xxxxxxxxxxx>
---
drivers/scsi/mvsas.c |    8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/drivers/scsi/mvsas.c b/drivers/scsi/mvsas.c
index e55b903..42f3e90 100644
--- a/drivers/scsi/mvsas.c
+++ b/drivers/scsi/mvsas.c
@@ -1263,8 +1263,14 @@ static int mvs_sata_done(struct mvs_info *mvi, struct sas_task *task,
           SATA_RECEIVED_D2H_FIS(port->taskfileset),
           sizeof(struct dev_to_host_fis));
    tstat->buf_valid_size = sizeof(*resp);
-    if (unlikely(err))
+    if (unlikely(err)) {
+        struct scatterlist *sg = task->scatter;
+        u8 *buf;
        stat = SAS_PROTO_RESPONSE;
+        buf = kmap_atomic(sg_page(sg), KM_IRQ0) + sg->offset;
+        memset(buf, 0, sg->length);
+        kunmap_atomic(buf - sg->offset, KM_IRQ0);
+    }
    return stat;
}

--
1.5.4



--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux