From: Boaz Harrosh <bharrosh@panasas.com>
To: Greg KH <greg@kroah.com>, Jens Axboe <jens.axboe@oracle.com>,
Matthew Dharm <mdharm-usb@one-eyed-alien.net>
Cc: linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
linux-scsi@vger.kernel.org
Subject: Re: [BUG] 2.6.24-git usb reset problems
Date: Tue, 29 Jan 2008 14:15:15 +0200 [thread overview]
Message-ID: <479F18D3.9030709@panasas.com> (raw)
In-Reply-To: <20080128212114.GA15586@kroah.com>
Greg KH wrote:
> On Mon, Jan 28, 2008 at 09:49:35PM +0100, Jens Axboe wrote:
>> Hi,
>>
>> Running latest -git (head 91525300baf162e83e923b09ca286f9205e21522) and
>> connecting my cf usb storage device yields and endless stream of:
>>
>> Initializing USB Mass Storage driver...
>> scsi6 : SCSI emulation for USB Mass Storage devices
>> usb-storage: device found at 2
>> usb-storage: waiting for device to settle before scanning
>> usbcore: registered new interface driver usb-storage
>> USB Mass Storage support registered.
>> scsi 6:0:0:0: Direct-Access Generic STORAGE DEVICE 0125 PQ: 0
>> ANSI: 0
>> sd 6:0:0:0: [sdb] 4001760 512-byte hardware sectors (2049 MB)
>> sd 6:0:0:0: [sdb] Write Protect is off
>> sd 6:0:0:0: [sdb] Mode Sense: 02 00 00 00
>> sd 6:0:0:0: [sdb] Assuming drive cache: write through
>> sd 6:0:0:0: [sdb] 4001760 512-byte hardware sectors (2049 MB)
>> sd 6:0:0:0: [sdb] Write Protect is off
>> sd 6:0:0:0: [sdb] Mode Sense: 02 00 00 00
>> sd 6:0:0:0: [sdb] Assuming drive cache: write through
>> sdb: sdb1
>> sd 6:0:0:0: [sdb] Attached SCSI removable disk
>> sd 6:0:0:0: Attached scsi generic sg1 type 0
>> scsi 6:0:0:1: Direct-Access Generic STORAGE DEVICE 0125 PQ: 0
>> ANSI: 0
>> usb 5-1: reset high speed USB device using ehci_hcd and address 2
>> usb 5-1: reset high speed USB device using ehci_hcd and address 2
>> usb 5-1: reset high speed USB device using ehci_hcd and address 2
>> usb 5-1: reset high speed USB device using ehci_hcd and address 2
>> usb 5-1: reset high speed USB device using ehci_hcd and address 2
>> usb 5-1: reset high speed USB device using ehci_hcd and address 2
>> usb 5-1: reset high speed USB device using ehci_hcd and address 2
>> [...]
>>
>> until I disconnect it. The device doesn't work. Worked fine in 2.6.24.
>> I'm attaching boot messages and my .config.
>
> That's a bit wierd, as we haven't added any USB patches to the -git tree
> yet after 2.6.24 :)
>
> Could this be caused by some scsi changes perhaps?
>
> thanks,
>
> greg k-h
> -
Yes it is ;)
Jens could you test the patch below? if it works I'll submit a proper
patch. Please forgive me for the bug.
Matthew, Greg, Is there a way to extract from messages the usb storage transport
used? I'm guessing it is freecom do to the fact that I find a bug there.
Thanks
Boaz
---
drivers/usb/storage/freecom.c | 4 ++--
drivers/usb/storage/transport.c | 12 +++++++++---
drivers/usb/storage/transport.h | 3 ++-
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/drivers/usb/storage/freecom.c b/drivers/usb/storage/freecom.c
index f5a4e8d..8d77603 100644
--- a/drivers/usb/storage/freecom.c
+++ b/drivers/usb/storage/freecom.c
@@ -132,7 +132,7 @@ freecom_readdata (struct scsi_cmnd *srb, struct us_data *us,
/* Now transfer all of our blocks. */
US_DEBUGP("Start of read\n");
- result = usb_stor_bulk_srb(us, ipipe, srb);
+ result = usb_stor_bulk_srb_length(us, ipipe, srb, count);
US_DEBUGP("freecom_readdata done!\n");
if (result > USB_STOR_XFER_SHORT)
@@ -165,7 +165,7 @@ freecom_writedata (struct scsi_cmnd *srb, struct us_data *us,
/* Now transfer all of our blocks. */
US_DEBUGP("Start of write\n");
- result = usb_stor_bulk_srb(us, opipe, srb);
+ result = usb_stor_bulk_srb_length(us, opipe, srb, count);
US_DEBUGP("freecom_writedata done!\n");
if (result > USB_STOR_XFER_SHORT)
diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
index d9f4912..5072235 100644
--- a/drivers/usb/storage/transport.c
+++ b/drivers/usb/storage/transport.c
@@ -462,18 +462,24 @@ static int usb_stor_bulk_transfer_sglist(struct us_data *us, unsigned int pipe,
* Common used function. Transfer a complete command
* via usb_stor_bulk_transfer_sglist() above. Set cmnd resid
*/
-int usb_stor_bulk_srb(struct us_data* us, unsigned int pipe,
- struct scsi_cmnd* srb)
+int usb_stor_bulk_srb_length(struct us_data* us, unsigned int pipe,
+ struct scsi_cmnd* srb, unsigned length)
{
unsigned int partial;
int result = usb_stor_bulk_transfer_sglist(us, pipe, scsi_sglist(srb),
- scsi_sg_count(srb), scsi_bufflen(srb),
+ scsi_sg_count(srb), length,
&partial);
scsi_set_resid(srb, scsi_bufflen(srb) - partial);
return result;
}
+int usb_stor_bulk_srb(struct us_data* us, unsigned int pipe,
+ struct scsi_cmnd* srb)
+{
+ return usb_stor_bulk_srb_length(us, pipe, srb, scsi_bufflen(srb));
+}
+
/*
* Transfer an entire SCSI command's worth of data payload over the bulk
* pipe.
diff --git a/drivers/usb/storage/transport.h b/drivers/usb/storage/transport.h
index ada7c2f..03e395d 100644
--- a/drivers/usb/storage/transport.h
+++ b/drivers/usb/storage/transport.h
@@ -139,8 +139,9 @@ extern int usb_stor_bulk_transfer_buf(struct us_data *us, unsigned int pipe,
void *buf, unsigned int length, unsigned int *act_len);
extern int usb_stor_bulk_transfer_sg(struct us_data *us, unsigned int pipe,
void *buf, unsigned int length, int use_sg, int *residual);
+extern int usb_stor_bulk_srb_length(struct us_data* us, unsigned int pipe,
+ struct scsi_cmnd* srb, unsigned length);
extern int usb_stor_bulk_srb(struct us_data* us, unsigned int pipe,
struct scsi_cmnd* srb);
-
extern int usb_stor_port_reset(struct us_data *us);
#endif
next prev parent reply other threads:[~2008-01-29 12:16 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-28 20:49 [BUG] 2.6.24-git usb reset problems Jens Axboe
2008-01-28 21:21 ` Greg KH
2008-01-29 7:48 ` Jens Axboe
2008-01-29 12:15 ` Boaz Harrosh [this message]
[not found] ` <479F18D3.9030709-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2008-01-29 13:54 ` Jens Axboe
2008-01-29 13:54 ` Jens Axboe
[not found] ` <20080129135443.GU15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 14:06 ` Boaz Harrosh
2008-01-29 14:06 ` Boaz Harrosh
[not found] ` <479F32E9.10609-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2008-01-29 14:11 ` Jens Axboe
2008-01-29 14:11 ` Jens Axboe
[not found] ` <20080129141108.GV15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 14:14 ` Boaz Harrosh
2008-01-29 14:14 ` Boaz Harrosh
2008-01-29 14:31 ` Oliver Neukum
[not found] ` <200801291531.39825.oliver-GvhC2dPhHPQdnm+yROfE0A@public.gmane.org>
2008-01-29 14:31 ` Jens Axboe
2008-01-29 14:31 ` Jens Axboe
2008-01-29 18:39 ` Jens Axboe
[not found] ` <20080129183910.GI15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 19:09 ` Boaz Harrosh
2008-01-29 19:09 ` Boaz Harrosh
2008-01-29 19:10 ` Matthew Dharm
2008-01-29 19:10 ` Matthew Dharm
[not found] ` <20080129191024.GO14375-JGfshJpz5UybPZpvUQj5UqxOck334EZe@public.gmane.org>
2008-01-29 19:15 ` Jens Axboe
2008-01-29 19:15 ` Jens Axboe
[not found] ` <20080129191504.GO15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 19:26 ` Jens Axboe
2008-01-29 19:26 ` Jens Axboe
2008-01-29 19:37 ` Matthew Dharm
2008-01-29 19:33 ` James Bottomley
2008-01-29 19:35 ` Jens Axboe
2008-01-29 19:45 ` Jens Axboe
[not found] ` <20080129194543.GR15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 19:58 ` Boaz Harrosh
2008-01-29 19:58 ` Boaz Harrosh
[not found] ` <479F856C.4090900-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2008-01-29 20:03 ` Jens Axboe
2008-01-29 20:03 ` Jens Axboe
[not found] ` <20080129200311.GV15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 20:04 ` James Bottomley
2008-01-29 20:04 ` James Bottomley
2008-01-29 20:06 ` Jens Axboe
[not found] ` <20080129200651.GW15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 20:24 ` James Bottomley
2008-01-29 20:24 ` James Bottomley
2008-01-29 20:53 ` Boaz Harrosh
2008-01-29 20:09 ` Boaz Harrosh
2008-01-29 20:09 ` Boaz Harrosh
[not found] ` <479F880F.20709-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2008-01-29 20:13 ` Jens Axboe
2008-01-29 20:13 ` Jens Axboe
[not found] ` <20080129201328.GZ15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-29 20:26 ` Boaz Harrosh
2008-01-29 20:26 ` Boaz Harrosh
2008-01-30 10:27 ` Geert Uytterhoeven
2008-01-30 10:27 ` Geert Uytterhoeven
[not found] ` <Pine.LNX.4.64.0801301125350.26562-DVqXPGhgXSn9uFGNBm7GzQ@public.gmane.org>
2008-01-30 10:38 ` Jens Axboe
2008-01-30 10:38 ` Jens Axboe
2008-01-30 14:38 ` James Bottomley
2008-01-30 18:06 ` Jens Axboe
[not found] ` <20080130180613.GU15220-tSWWG44O7X1aa/9Udqfwiw@public.gmane.org>
2008-01-30 19:07 ` Jens Axboe
2008-01-30 19:07 ` Jens Axboe
2008-01-29 15:50 ` Boaz Harrosh
[not found] ` <479F4B4B.2020000-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2008-01-29 17:42 ` Oliver Neukum
2008-01-29 17:42 ` Oliver Neukum
2008-01-29 14:13 ` Boaz Harrosh
2008-01-29 15:36 ` Alan Stern
2008-01-29 15:36 ` Alan Stern
[not found] ` <Pine.LNX.4.44L0.0801291032210.4229-100000-IYeN2dnnYyZXsRXLowluHWD2FQJk+8+b@public.gmane.org>
2008-01-29 15:54 ` Boaz Harrosh
2008-01-29 15:54 ` Boaz Harrosh
2008-01-29 16:34 ` James Bottomley
2008-01-29 18:27 ` Boaz Harrosh
[not found] ` <479F7009.3020306-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2008-01-29 18:48 ` James Bottomley
2008-01-29 18:48 ` James Bottomley
2008-01-29 18:58 ` Boaz Harrosh
[not found] ` <479F774B.60303-C4P08NqkoRlBDgjK7y7TUQ@public.gmane.org>
2008-01-29 19:17 ` James Bottomley
2008-01-29 19:17 ` James Bottomley
[not found] ` <1201634240.3069.33.camel-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2008-01-29 19:28 ` Boaz Harrosh
2008-01-29 19:28 ` Boaz Harrosh
2008-01-29 15:00 ` Matthew Dharm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=479F18D3.9030709@panasas.com \
--to=bharrosh@panasas.com \
--cc=greg@kroah.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=mdharm-usb@one-eyed-alien.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.