diff options
author | Al Cho <acho@novell.com> | 2010-09-24 06:50:11 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-09-30 07:33:26 -0400 |
commit | e10496041bd8ef75772d6adbbd7029ca023dc66e (patch) | |
tree | fce27e2d2f37d4b40a92be0fbd613c8273a4b644 | |
parent | 53059aa05988761a738fa8bc082bbf3c5d4462d1 (diff) |
staging: keucr: fix keucr lost disconnect in transport
The other part of keucr lost usb disconnect.
Unplug SDcard after thread scan,the wrong rule in usb_stor_port_reset,
so the driver still fail in stress test.
Signed-off-by: Al Cho <acho@novell.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | drivers/staging/keucr/transport.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/staging/keucr/transport.c b/drivers/staging/keucr/transport.c index 7215429759b..445a62ce693 100644 --- a/drivers/staging/keucr/transport.c +++ b/drivers/staging/keucr/transport.c | |||
@@ -763,24 +763,19 @@ int usb_stor_port_reset(struct us_data *us) | |||
763 | int result, rc_lock; | 763 | int result, rc_lock; |
764 | 764 | ||
765 | //printk("transport --- usb_stor_port_reset\n"); | 765 | //printk("transport --- usb_stor_port_reset\n"); |
766 | result = rc_lock = usb_lock_device_for_reset(us->pusb_dev, us->pusb_intf); | 766 | result = usb_lock_device_for_reset(us->pusb_dev, us->pusb_intf); |
767 | if (result < 0) | 767 | if (result < 0) |
768 | printk("unable to lock device for reset: %d\n", result); | 768 | printk("unable to lock device for reset: %d\n", result); |
769 | else | 769 | else { |
770 | { | ||
771 | /* Were we disconnected while waiting for the lock? */ | 770 | /* Were we disconnected while waiting for the lock? */ |
772 | if (test_bit(US_FLIDX_DISCONNECTING, &us->dflags)) | 771 | if (test_bit(US_FLIDX_DISCONNECTING, &us->dflags)) { |
773 | { | ||
774 | result = -EIO; | 772 | result = -EIO; |
775 | //printk("No reset during disconnect\n"); | 773 | //printk("No reset during disconnect\n"); |
776 | } | 774 | } else { |
777 | else | ||
778 | { | ||
779 | result = usb_reset_device(us->pusb_dev); | 775 | result = usb_reset_device(us->pusb_dev); |
780 | //printk("usb_reset_composite_device returns %d\n", result); | 776 | //printk("usb_reset_composite_device returns %d\n", result); |
781 | } | 777 | } |
782 | if (rc_lock) | 778 | usb_unlock_device(us->pusb_dev); |
783 | usb_unlock_device(us->pusb_dev); | ||
784 | } | 779 | } |
785 | return result; | 780 | return result; |
786 | } | 781 | } |