Staging: usbip: simplify get_ep_from_epnum
usb_device->ep_in/out includes the necessary endpoints, search is not needed. Signed-off-by: Endre Kollar <taxy443@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
aa5873e962
commit
ab30f12d4e
|
@ -362,54 +362,16 @@ static struct stub_priv *stub_priv_alloc(struct stub_device *sdev,
|
|||
return priv;
|
||||
}
|
||||
|
||||
|
||||
static struct usb_host_endpoint *get_ep_from_epnum(struct usb_device *udev,
|
||||
int epnum0)
|
||||
{
|
||||
struct usb_host_config *config;
|
||||
int i = 0, j = 0;
|
||||
struct usb_host_endpoint *ep = NULL;
|
||||
int epnum;
|
||||
int found = 0;
|
||||
|
||||
if (epnum0 == 0)
|
||||
return &udev->ep0;
|
||||
|
||||
config = udev->actconfig;
|
||||
if (!config)
|
||||
return NULL;
|
||||
|
||||
for (i = 0; i < config->desc.bNumInterfaces; i++) {
|
||||
struct usb_host_interface *setting;
|
||||
|
||||
setting = config->interface[i]->cur_altsetting;
|
||||
|
||||
for (j = 0; j < setting->desc.bNumEndpoints; j++) {
|
||||
ep = &setting->endpoint[j];
|
||||
epnum = (ep->desc.bEndpointAddress & 0x7f);
|
||||
|
||||
if (epnum == epnum0) {
|
||||
/* usbip_uinfo("found epnum %d\n", epnum0);*/
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (found)
|
||||
return ep;
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static int get_pipe(struct stub_device *sdev, int epnum, int dir)
|
||||
{
|
||||
struct usb_device *udev = interface_to_usbdev(sdev->interface);
|
||||
struct usb_host_endpoint *ep;
|
||||
struct usb_endpoint_descriptor *epd = NULL;
|
||||
|
||||
ep = get_ep_from_epnum(udev, epnum);
|
||||
if (dir == USBIP_DIR_IN)
|
||||
ep = udev->ep_in[epnum & 0x7f];
|
||||
else
|
||||
ep = udev->ep_out[epnum & 0x7f];
|
||||
if (!ep) {
|
||||
dev_err(&sdev->interface->dev, "no such endpoint?, %d\n",
|
||||
epnum);
|
||||
|
|
Loading…
Reference in New Issue