On Sun, Dec 30 2001, Peter Osterlund wrote:
> Greg KH <[EMAIL PROTECTED]> writes:
> 
> > On Sun, Dec 23, 2001 at 06:44:43PM +0100, Peter Osterlund wrote:
> > > 
> > > So, what changes are needed to make CD support work?
> > 
> > The usb-storage driver needs some changes to get it to work properly in
> > the 2.5.1 kernel due to the changes in the SCSI and bio layer.  I've
> > gotten a few other reports of problems, so you aren't alone :)
> > 
> > As for when the changes will be done, any volunteers?
> 
> This patch seems to work for me. I hope it is correct. The ide-scsi
> driver is basically doing the same thing already.
> 
> --- linux-2.5-packet/drivers/usb/storage/scsiglue.c.old       Sun Dec 30 02:10:01 
>2001
> +++ linux-2.5-packet/drivers/usb/storage/scsiglue.c   Sun Dec 30 02:09:05 2001
> @@ -145,9 +145,19 @@
>  static int queuecommand( Scsi_Cmnd *srb , void (*done)(Scsi_Cmnd *))
>  {
>       struct us_data *us = (struct us_data *)srb->host->hostdata[0];
> +     struct scatterlist *sg;
> +     int i;
>  
>       US_DEBUGP("queuecommand() called\n");
>       srb->host_scribble = (unsigned char *)us;
> +
> +     /* Set up address field in the scatterlist. HighMem pages have
> +      * already been bounced at this point. */
> +     sg = (struct scatterlist *) srb->request_buffer;
> +     for (i = 0; i < srb->use_sg; i++) {
> +             BUG_ON(PageHighMem(sg[i].page));
> +             sg[i].address = page_address(sg[i].page) + sg[i].offset;
> +     }
>  
>       /* get exclusive access to the structures we want */
>       down(&(us->queue_exclusion));

That's not right, you shouldn't be using .address at all.

-- 
Jens Axboe


_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to