Hrm... doesn't this all fall to pot when the device is unplugged and
repluged?

Matt

On Wed, Jan 15, 2003 at 03:27:00PM -0800, Greg KH wrote:
> ChangeSet 1.879.76.2, 2003/01/13 17:31:46-08:00, [EMAIL PROTECTED]
> 
> [PATCH] USB: put the usb storage's SCSI device in the proper place in sysfs.
> 
> Also makes usb_ifnum_to_if() a public function
> 
> 
> diff -Nru a/drivers/usb/core/hcd.h b/drivers/usb/core/hcd.h
> --- a/drivers/usb/core/hcd.h  Wed Jan 15 14:59:52 2003
> +++ b/drivers/usb/core/hcd.h  Wed Jan 15 14:59:52 2003
> @@ -353,9 +353,6 @@
>  extern void usb_bus_get (struct usb_bus *bus);
>  extern void usb_bus_put (struct usb_bus *bus);
>  
> -extern struct usb_interface *usb_ifnum_to_if (struct usb_device *dev,
> -     unsigned ifnum);
> -
>  extern int usb_find_interface_driver (struct usb_device *dev,
>       struct usb_interface *interface);
>  
> diff -Nru a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
> --- a/drivers/usb/core/usb.c  Wed Jan 15 14:59:52 2003
> +++ b/drivers/usb/core/usb.c  Wed Jan 15 14:59:52 2003
> @@ -1484,6 +1484,7 @@
>  EXPORT_SYMBOL(usb_driver_release_interface);
>  EXPORT_SYMBOL(usb_match_id);
>  EXPORT_SYMBOL(usb_find_interface);
> +EXPORT_SYMBOL(usb_ifnum_to_if);
>  
>  EXPORT_SYMBOL(usb_new_device);
>  EXPORT_SYMBOL(usb_reset_device);
> diff -Nru a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
> --- a/drivers/usb/storage/scsiglue.c  Wed Jan 15 14:59:52 2003
> +++ b/drivers/usb/storage/scsiglue.c  Wed Jan 15 14:59:52 2003
> @@ -88,9 +88,12 @@
>       /* register the host */
>       us->host = scsi_register(sht, sizeof(us));
>       if (us->host) {
> +             struct usb_interface *iface;
>               us->host->hostdata[0] = (unsigned long)us;
>               us->host_no = us->host->host_no;
> -             scsi_set_device(us->host, &us->pusb_dev->dev);
> +             iface = usb_ifnum_to_if(us->pusb_dev, us->ifnum);
> +             if (iface)
> +                     scsi_set_device(us->host, &iface->dev);
>               return 1;
>       }
>  
> diff -Nru a/include/linux/usb.h b/include/linux/usb.h
> --- a/include/linux/usb.h     Wed Jan 15 14:59:52 2003
> +++ b/include/linux/usb.h     Wed Jan 15 14:59:52 2003
> @@ -277,7 +277,9 @@
>  const struct usb_device_id *usb_match_id(struct usb_interface *interface,
>                                        const struct usb_device_id *id);
>  
> -struct usb_interface *usb_find_interface(struct usb_driver *drv, kdev_t kdev);
> +extern struct usb_interface *usb_find_interface(struct usb_driver *drv, kdev_t 
>kdev);
> +extern struct usb_interface *usb_ifnum_to_if(struct usb_device *dev, unsigned 
>ifnum);
> +
>  
>  /**
>   * usb_make_path - returns stable device path in the usb tree
> 
> 
> 
> -------------------------------------------------------
> This SF.NET email is sponsored by: A Thawte Code Signing Certificate 
> is essential in establishing user confidence by providing assurance of 
> authenticity and code integrity. Download our Free Code Signing guide:
> http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0028en
> _______________________________________________
> [EMAIL PROTECTED]
> To unsubscribe, use the last form field at:
> https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

-- 
Matthew Dharm                              Home: [EMAIL PROTECTED] 
Maintainer, Linux USB Mass Storage Driver

Way to go, lava boy.
                                        -- Stef to Greg
User Friendly, 3/26/1998

Attachment: msg10773/pgp00000.pgp
Description: PGP signature

Reply via email to