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

Reply via email to