mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Bart Hartgers <bart@etpmod.phys.tue.nl>
To: garloff@suse.de
Cc: linux-kernel@vger.kernel.org
Subject: Re: hwscan hangs on USB2 disk - SCSI_IOCTL_SEND_COMMAND - SOLVED
Date: Wed, 30 Jun 2004 11:37:44 +0200 (CEST)	[thread overview]
Message-ID: <20040630093747.287D9AD3@etpmod.phys.tue.nl> (raw)
In-Reply-To: <20040629094557.GR4732@tpkurt.garloff.de>

Kurt,

I tried both 0x26 and 0x24, but the problem persists. Guess I bought
crappy hardware (again). For now, I've removed the offending ioctl, and 
everything sort of works.

Thanks,
Bart

On 29 Jun, Kurt Garloff wrote:
> Hi Bart,
> 
> On Tue, Jun 29, 2004 at 11:37:36AM +0200, Bart Hartgers wrote:
>> The problem is that both hwscan and usb-storage get stuck in the 'D"
>> state until I unplug the harddisk.
>> 
>> A strace of hwscan shows:
>> 
>> 21141 open("/dev/sda", O_RDONLY|O_NONBLOCK) = 3
>> 21141 ioctl(3, 0x301, 0xbfffeba0)       = 0
>> 21141 ioctl(3, BLKSSZGET, 0xbfffeb9c)   = 0
>> 21141 ioctl(3, 0x80041272, 0xbfffeb90)  = 0
>> 21141 ioctl(3, FIBMAP, 0xbfffec40)      = 0  <--- hwscan gets stuck
>> here
>> 
>> The last ioctl corresponds to this bit of code in
>> hwinfo-8.38/src/hd/block.c:
>> 
>> #ifndef SCSI_IOCTL_SEND_COMMAND
>> #define SCSI_IOCTL_SEND_COMMAND 1
>> #endif
>> 
>> ...
>> 
>>       memset(scsi_cmd_buf, 0, sizeof scsi_cmd_buf);
>>       // ###### FIXME: smaller!
>>       *((unsigned *) (scsi_cmd_buf + 4)) = sizeof scsi_cmd_buf - 0x100;
>>       scsi_cmd_buf[8 + 0] = 0x12;
>>       scsi_cmd_buf[8 + 1] = 0x01;
>>       scsi_cmd_buf[8 + 2] = 0x80;
>>       scsi_cmd_buf[8 + 4] = 0xff;
>> 
>>       k = ioctl(fd, SCSI_IOCTL_SEND_COMMAND, scsi_cmd_buf);
>> 
>> So it appears that the driver hangs because of a SCSI command. Is
>> this kernel bug, and if so, where do I fix it?
> 
> To me it looks like a bug in the USB stick.
> It probably locks up when you ask for VPD page 0x80 (serial number)
> of the device with INQUIRY. 
> Some shitty USB devices lock up when you ask for more than 36 bytes
> with INQUIRY. See code in scsi_scan.c and the BLIST_INQUIRY_36 and
> _58 flags.
> Your device may even do so when you don't ask for standard INQUIRY 
> data but for EVPD page 0x80 :-(
> 
> Does it work if you send the INQUIRY with 36 bytes allocation length?
> scsi_cmd_buf[8 + 4] = 0x26;


  parent reply	other threads:[~2004-06-30  9:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-29  9:37 hwscan hangs on USB2 disk - SCSI_IOCTL_SEND_COMMAND Bart Hartgers
2004-06-29  9:45 ` Kurt Garloff
2004-06-29 10:53   ` Steffen Winterfeldt
2004-06-29 11:45   ` Kurt Garloff
2004-06-30  9:37   ` Bart Hartgers [this message]
2004-06-29  9:52 ` Bart Hartgers

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=20040630093747.287D9AD3@etpmod.phys.tue.nl \
    --to=bart@etpmod.phys.tue.nl \
    --cc=garloff@suse.de \
    --cc=linux-kernel@vger.kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®