diff options
author | Alan Stern <stern@rowland.harvard.edu> | 2008-06-24 14:47:12 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-07-21 18:16:41 -0400 |
commit | 61ad04a89f0e3e6adaed0d9adfc0c9b431ccbb92 (patch) | |
tree | 7aefa64191cc2628be8c9a756b6f08bf6ff36ba0 /drivers/usb/core | |
parent | cd9f03759d3eb588e185b04e1854c778b050833e (diff) |
usbfs: simplify the lookup-by-minor routines
This patch (as1105) simplifies the lookup-by-minor-number code in
usbfs. Instead of passing the minor number to the callback, which
must then reconstruct the entire dev_t value, the patch passes the
dev_t value directly.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/core')
-rw-r--r-- | drivers/usb/core/devio.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index bbd029f68faa..57bedcebf96c 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c | |||
@@ -550,20 +550,16 @@ static int check_ctrlrecip(struct dev_state *ps, unsigned int requesttype, | |||
550 | return ret; | 550 | return ret; |
551 | } | 551 | } |
552 | 552 | ||
553 | static int __match_minor(struct device *dev, void *data) | 553 | static int match_devt(struct device *dev, void *data) |
554 | { | 554 | { |
555 | int minor = *((int *)data); | 555 | return (dev->devt == (dev_t) data); |
556 | |||
557 | if (dev->devt == MKDEV(USB_DEVICE_MAJOR, minor)) | ||
558 | return 1; | ||
559 | return 0; | ||
560 | } | 556 | } |
561 | 557 | ||
562 | static struct usb_device *usbdev_lookup_by_minor(int minor) | 558 | static struct usb_device *usbdev_lookup_by_devt(dev_t devt) |
563 | { | 559 | { |
564 | struct device *dev; | 560 | struct device *dev; |
565 | 561 | ||
566 | dev = bus_find_device(&usb_bus_type, NULL, &minor, __match_minor); | 562 | dev = bus_find_device(&usb_bus_type, NULL, (void *) devt, match_devt); |
567 | if (!dev) | 563 | if (!dev) |
568 | return NULL; | 564 | return NULL; |
569 | put_device(dev); | 565 | put_device(dev); |
@@ -589,9 +585,10 @@ static int usbdev_open(struct inode *inode, struct file *file) | |||
589 | goto out; | 585 | goto out; |
590 | 586 | ||
591 | ret = -ENOENT; | 587 | ret = -ENOENT; |
588 | |||
592 | /* usbdev device-node */ | 589 | /* usbdev device-node */ |
593 | if (imajor(inode) == USB_DEVICE_MAJOR) | 590 | if (imajor(inode) == USB_DEVICE_MAJOR) |
594 | dev = usbdev_lookup_by_minor(iminor(inode)); | 591 | dev = usbdev_lookup_by_devt(inode->i_rdev); |
595 | #ifdef CONFIG_USB_DEVICEFS | 592 | #ifdef CONFIG_USB_DEVICEFS |
596 | /* procfs file */ | 593 | /* procfs file */ |
597 | if (!dev) | 594 | if (!dev) |