Skip to content

Commit

Permalink
usbfs: simplify the lookup-by-minor routines
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
AlanStern authored and sfrothwell committed Jul 2, 2008
1 parent a0f33eb commit 94b1c9f
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions drivers/usb/core/devio.c
Expand Up @@ -550,20 +550,16 @@ static int check_ctrlrecip(struct dev_state *ps, unsigned int requesttype,
return ret;
}

static int __match_minor(struct device *dev, void *data)
static int match_devt(struct device *dev, void *data)
{
int minor = *((int *)data);

if (dev->devt == MKDEV(USB_DEVICE_MAJOR, minor))
return 1;
return 0;
return (dev->devt == (dev_t) data);
}

static struct usb_device *usbdev_lookup_by_minor(int minor)
static struct usb_device *usbdev_lookup_by_devt(dev_t devt)
{
struct device *dev;

dev = bus_find_device(&usb_bus_type, NULL, &minor, __match_minor);
dev = bus_find_device(&usb_bus_type, NULL, (void *) devt, match_devt);
if (!dev)
return NULL;
put_device(dev);
Expand All @@ -588,9 +584,10 @@ static int usbdev_open(struct inode *inode, struct file *file)
goto out;

ret = -ENOENT;

/* usbdev device-node */
if (imajor(inode) == USB_DEVICE_MAJOR)
dev = usbdev_lookup_by_minor(iminor(inode));
dev = usbdev_lookup_by_devt(inode->i_rdev);
#ifdef CONFIG_USB_DEVICEFS
/* procfs file */
if (!dev)
Expand Down

0 comments on commit 94b1c9f

Please sign in to comment.