Re: [PATCH 1/1] scsi: retrieve cache mode using ATA_16 if normal routine fails

Amit Sahrawat
2012-01-27T05:20:56Z

Dear James/Jeff,

I have few questions regarding the code changes which can be accepted
in this regards.

In our scenario we are not making use of CONFIG_ATA, but still if that
is the proper manner to bring out the changes – then we can enable and
make changes in the respective file which seems to be libata-scsi.c

We need a mechanism wherein we can query and then get the response so
that we set the WCE bit accordingly. For that matter, I think we can
introduce some function in libata-scsi.c and then call that function
from either drivers/scsi/sd.c or drivers/usb/storage/scsiglue.c

Please share your valuable inputs on how and where actually these
changes should be done. Otherwise, there is again a chance that our
changes gets rejected.

Please help in this regards.

Thanks & Regards,
Amit Sahrawat

On Thu, Dec 15, 2011 at 5:55 AM, Namjae Jeon <linkinjeon@gmail.com> wrote:
> 2011/12/14 James Bottomley <James.Bottomley@hansenpartnership.com>:
>> On Wed, 2011-12-14 at 09:14 +0530, Amit Sahrawat wrote:
>>> Just to add a thought - this issues is not related with ATA, this is
>>> primarily related with HDD's with a USB interface i.e., SCSI <-> USB.
>>> And, when I check my kernel config, CONFIG_ATA is not selected,
>>> libata-scsi - this gets compiled only in case CONFIG_ATA is on.
>>> Are these two things inter-related?
>>
> Hi. James.
>
>> OK, so what you're telling us is that you're trying to correct a
>> deficiency in a SATL inside a USB device?  The device itself is ATA but
>> it doesn't use our libata connectors.
>>
>> I think in that case, the best way forwards is a mini-SATL correction
>> layer within USB storage.  USB storage is certainly the place to
>> black/white list whether this should be done.  ATA_16 is a bit of a
>> dangerous command to be throwing around because it's known to crash
>> various USB devices (and some old SCSI ones might even choke on it).
> Okay, how about make some option in Kconfig of scsi or usb storage to
> protect from the a bit of risk ATA_16 ?
> The user can select this option to use stable filesystem on USB HDD.
>>
>> depending on how big this SATL ends up being we should consider whether
>> it should share processing with the libata SATL.  If it's just a single
>> mode sense, my instinct is that it's probably OK to implement separately
>> (however, you need to use the libata headers ... no duplication of
>> libata opcodes and status defines like you had in the original SCSI
>> patch).  If there are more commands to correct on the way, it might be
>> better as shared code.
> I agree. I and Amit will check the best way between SATL or miniSATL
> in usb_storage accoding to your advice.
>
>> James
>>
>>