Interoperability problem with Quantum CD72SH SATA tape drive and libata

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

 



Hello,

I've discovered an issue with the Quantum CD72SH SATA tape drive. I set it to variable block size, try to write a 5317 byte block with an ATAPI issued WRITE(6), and it hangs. The drive is connected to an Intel ICH9R in AHCI mode.

My debugging efforts have determined that it's a problem with the drive's firmware. It does not like ATAPI CDBs with odd (& 1) transfer lengths with PIO. If I let it use DMA, even if it's not a multiple of 16 bytes, then it seems to work:

--- libata-core.c.orig    2008-09-27 16:12:46.000000000 -0400
+++ libata-core.c    2008-09-27 16:11:29.000000000 -0400
@@ -4669,8 +4669,8 @@
    /* Don't allow DMA if it isn't multiple of 16 bytes.  Quite a
     * few ATAPI devices choke on such DMA requests.
     */
-    if (unlikely(qc->nbytes & 15))
-        return 1;
+    // if (unlikely(qc->nbytes & 15))
+    //     return 1;

    if (ap->ops->check_atapi_dma)
        return ap->ops->check_atapi_dma(qc);



This is an acceptable solution for my limited use, but I'd like to see it work out of the box. It seems frightening that there are ATAPI devices out there that choke on PIO requests. What would you like to do?

Thank you.

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

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux