John Clark wrote: > 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? We can create a HORKAGE for it. Can you please post the result of "hdparm -I" of the device? -- tejun -- 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