[APPLIED][PATCH 1/1] Ubuntu: SAUCE: Workaround for SATA drive failure on Ubuntu installation

Stefan Bader stefan.bader at canonical.com
Wed Dec 16 23:30:26 UTC 2009


Bryan Wu wrote:
> Andy Whitcroft wrote:
>> On Wed, Dec 16, 2009 at 05:21:12PM +0800, Bryan Wu wrote:
>>   
>>> From: Dinh Nguyen <r00091 at freescale.com>
>>>
>>> BugLink: http://bugs.launchpad.net/bugs/431963
>>>
>>> Original patch was from Dinh Nguyen. That one find the root cause
>>> of this SATA drive failure issue. The USB2SATA chip GL830 can not
>>> accept the ATA PASS THROUGH command.
>>>
>>> This patch will skip the ATA PASS THROUGH command only for GL830
>>> USB device. So it will not effect other USB devices.
>>>
>>> Signed-off-by: Dinh Nguyen <r00091 at freescale.com>
>>> Signed-off-by: Bryan Wu <bryan.wu at canonical.com>
>>> ---
>>>  drivers/usb/storage/usb.c |   17 +++++++++++++++--
>>>  1 files changed, 15 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
>>> index 8060b85..d538511 100644
>>> --- a/drivers/usb/storage/usb.c
>>> +++ b/drivers/usb/storage/usb.c
>>> @@ -329,8 +329,21 @@ static int usb_stor_control_thread(void * __us)
>>>  
>>>  		/* we've got a command, let's do it! */
>>>  		else {
>>> -			US_DEBUG(usb_stor_show_command(us->srb));
>>>     
>> This changes ...
>>
>>   
>>> -			us->proto_handler(us->srb, us);
>>> +#ifdef CONFIG_MACH_MX51_BABBAGE
>>> +			u16 vid =
>>> +				le16_to_cpu(us->pusb_dev->descriptor.idVendor);
>>> +			u16 pid =
>>> +				le16_to_cpu(us->pusb_dev->descriptor.idProduct);
>>> +#endif
>>> +			US_DEBUGP(usb_stor_show_command(us->srb));
>>>     
>> ... to this, which is wrong as the routine there is a void, so there is
>> nothing to print.  I think this will translate into a compile error when
>> CONFIG_USB_STORAGE_DEBUG is enabled.
>>
>> It also seems wrong to be looking up and translating these ids for every
>> command when we only care for 0x85 commands.
>>
>>   
>>> +#ifdef CONFIG_MACH_MX51_BABBAGE
>>> +			if ((us->srb->cmnd[0] == 0x85) &&
>>> +				(vid == 0x05e3) &&
>>> +				(pid == 0x0718))
>>> +				US_DEBUGP("Skip ATA PASS-THROUGH command\n");
>>> +			else
>>> +#endif
>>> +				us->proto_handler(us->srb, us);
>>>  		}
>>>  
>>>  		/* lock access to the state */
>>>     
>> So I propose to apply the patch as below.
>>
>> Comments?
>>
>> -apw
>>
>> commit 95860a73f4c1ebff91cbf03783027c15600361d7
>> Author: Dinh Nguyen <r00091 at freescale.com>
>> Date:   Wed Dec 16 17:21:12 2009 +0800
>>
>>     Ubuntu: SAUCE: Workaround for SATA drive failure on Ubuntu installation
>>     
>>     BugLink: http://bugs.launchpad.net/bugs/431963
>>     
>>     Original patch was from Dinh Nguyen. That one find the root cause
>>     of this SATA drive failure issue. The USB2SATA chip GL830 can not
>>     accept the ATA PASS THROUGH command.
>>     
>>     This patch will skip the ATA PASS THROUGH command only for GL830
>>     USB device. So it will not effect other USB devices.
>>     
>>     [apw at canonical.com: fixed debug and optimised.]
>>     Signed-off-by: Dinh Nguyen <r00091 at freescale.com>
>>     Signed-off-by: Bryan Wu <bryan.wu at canonical.com>
>>     Signed-off-by: Andy Whitcroft <apw at canonical.com>
>>
>> diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
>> index 8060b85..961bb1a 100644
>> --- a/drivers/usb/storage/usb.c
>> +++ b/drivers/usb/storage/usb.c
>> @@ -330,6 +330,15 @@ static int usb_stor_control_thread(void * __us)
>>  		/* we've got a command, let's do it! */
>>  		else {
>>  			US_DEBUG(usb_stor_show_command(us->srb));
>> +#ifdef CONFIG_MACH_MX51_BABBAGE
>> +			if ((us->srb->cmnd[0] == 0x85) &&
>> +			    (le16_to_cpu(us->pusb_dev->descriptor.idVendor)
>> +								== 0x05e3) &&
>> +			    (le16_to_cpu(us->pusb_dev->descriptor.idProduct)
>> +								== 0x0718))
>> +				US_DEBUGP("Skip ATA PASS-THROUGH command\n");
>> +			else
>> +#endif
>>  			us->proto_handler(us->srb, us);
>>  		}
>>  
>>   
> Thanks a lot, Andy. I missed these 2 key points you mentioned here. 
> Shall I repost the patch again
> or you will apply it.
> 
> Cheers,
> -Bryan
> 

Also applied to Karmic and prepared the new package. I'll upload it when
I can (Launchpad is writable again).

-Stefan




More information about the kernel-team mailing list