Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 314250
b: refs/heads/master
c: 24ead29
h: refs/heads/master
v: v3
  • Loading branch information
tom.leiming@gmail.com authored and David S. Miller committed Jun 13, 2012
1 parent bd381d7 commit c373412
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 38 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4a5a14d39e8164b5c77f1bf42851a58a69a6c7b2
refs/heads/master: 24ead29915352d4689a5972c65307a073b229fb4
72 changes: 35 additions & 37 deletions trunk/drivers/net/usb/usbnet.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,41 @@ int usbnet_get_ethernet_addr(struct usbnet *dev, int iMACAddress)
}
EXPORT_SYMBOL_GPL(usbnet_get_ethernet_addr);

static void intr_complete (struct urb *urb);
static void intr_complete (struct urb *urb)
{
struct usbnet *dev = urb->context;
int status = urb->status;

switch (status) {
/* success */
case 0:
dev->driver_info->status(dev, urb);
break;

/* software-driven interface shutdown */
case -ENOENT: /* urb killed */
case -ESHUTDOWN: /* hardware gone */
netif_dbg(dev, ifdown, dev->net,
"intr shutdown, code %d\n", status);
return;

/* NOTE: not throttling like RX/TX, since this endpoint
* already polls infrequently
*/
default:
netdev_dbg(dev->net, "intr status %d\n", status);
break;
}

if (!netif_running (dev->net))
return;

memset(urb->transfer_buffer, 0, urb->transfer_buffer_length);
status = usb_submit_urb (urb, GFP_ATOMIC);
if (status != 0)
netif_err(dev, timer, dev->net,
"intr resubmit --> %d\n", status);
}

static int init_status (struct usbnet *dev, struct usb_interface *intf)
{
Expand Down Expand Up @@ -519,42 +553,6 @@ static void rx_complete (struct urb *urb)
netif_dbg(dev, rx_err, dev->net, "no read resubmitted\n");
}

static void intr_complete (struct urb *urb)
{
struct usbnet *dev = urb->context;
int status = urb->status;

switch (status) {
/* success */
case 0:
dev->driver_info->status(dev, urb);
break;

/* software-driven interface shutdown */
case -ENOENT: /* urb killed */
case -ESHUTDOWN: /* hardware gone */
netif_dbg(dev, ifdown, dev->net,
"intr shutdown, code %d\n", status);
return;

/* NOTE: not throttling like RX/TX, since this endpoint
* already polls infrequently
*/
default:
netdev_dbg(dev->net, "intr status %d\n", status);
break;
}

if (!netif_running (dev->net))
return;

memset(urb->transfer_buffer, 0, urb->transfer_buffer_length);
status = usb_submit_urb (urb, GFP_ATOMIC);
if (status != 0)
netif_err(dev, timer, dev->net,
"intr resubmit --> %d\n", status);
}

/*-------------------------------------------------------------------------*/
void usbnet_pause_rx(struct usbnet *dev)
{
Expand Down

0 comments on commit c373412

Please sign in to comment.