Re: block/bsg.c

From: James Bottomley
Date: Tue Jul 17 2007 - 18:57:58 EST


On Tue, 2007-07-17 at 15:54 -0700, Andrew Morton wrote:
> On Tue, 17 Jul 2007 17:19:15 -0500
> James Bottomley <James.Bottomley@xxxxxxxxxxxx> wrote:
>
> > > Adding 1020116k swap on /dev/hdc3. Priority:-1 extents:1 across:1020116k
> > > generic_ide_ioctl: cmd=21382
> > > generic_ide_ioctl: err=0
> > > generic_ide_ioctl: cmd=1
> > > program scsi_unique_id is using a deprecated SCSI ioctl, please convert it to SG_IO
> >
> > I can tell you what went wrong:
> >
> > This cmd=1 is SCSI_IOCTL_SEND_COMMAND, but that doesn't seem to be
> > what's intended ... I'm guessing it's a legacy ide ioctl value which
> > suddenly has become interpreted as a scsi_ioctl ... and certainly a non
> > CD IDE device cannot handle a SCSI command, so all hell breaks loose.
>
> An interrupt-off lockup is a pretty bad reaction to an unexpected ioctl
> command. It makes one wonder if tht lockup can be triggered by other means...

I think this is pretty much par for the course for IDE drivers ... send
it a bogus taskfile (which root is allowed to do) and you'll see it
exhibit the same behaviour. I suspect what happened is that the driver
expects to treat all REQ_BLOCK_PC requests as taskfiles, so the
wrappered SCSI command got treated as a task file ... the rest you know.

James


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/