diff options
author | Stefan Schmidt <stefan@datenfreihafen.org> | 2017-10-18 17:40:18 +0200 |
---|---|---|
committer | Stefan Schmidt <stefan@datenfreihafen.org> | 2017-10-18 17:40:18 +0200 |
commit | 396665e8320987ff43b20a62a6a1cdae57aa1cc1 (patch) | |
tree | bf778eab1ef1c9ff102bb235d9bca1a42bec7d0a /drivers/net/usb/usbnet.c | |
parent | d01174fcd2c1ffefdd0554f847c4045a5c731591 (diff) | |
parent | b9f1f1ce866c28e3d9b86202441b220244754a69 (diff) |
Merge remote-tracking branch 'net-next/master'
Diffstat (limited to 'drivers/net/usb/usbnet.c')
-rw-r--r-- | drivers/net/usb/usbnet.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 6510e5cc1817..80348b6a8646 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -1509,9 +1509,9 @@ err: // tasklet (work deferred from completions, in_irq) or timer -static void usbnet_bh (unsigned long param) +static void usbnet_bh (struct timer_list *t) { - struct usbnet *dev = (struct usbnet *) param; + struct usbnet *dev = from_timer(dev, t, delay); struct sk_buff *skb; struct skb_data *entry; @@ -1694,13 +1694,11 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod) skb_queue_head_init (&dev->txq); skb_queue_head_init (&dev->done); skb_queue_head_init(&dev->rxq_pause); - dev->bh.func = usbnet_bh; - dev->bh.data = (unsigned long) dev; + dev->bh.func = (void (*)(unsigned long))usbnet_bh; + dev->bh.data = (unsigned long)&dev->delay; INIT_WORK (&dev->kevent, usbnet_deferred_kevent); init_usb_anchor(&dev->deferred); - dev->delay.function = usbnet_bh; - dev->delay.data = (unsigned long) dev; - init_timer (&dev->delay); + timer_setup(&dev->delay, usbnet_bh, 0); mutex_init (&dev->phy_mutex); mutex_init(&dev->interrupt_mutex); dev->interrupt_count = 0; |