Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Revert "cdc_subset: deal with a device that needs reset for timeout"

This reverts commit 20fbe3ae990fd54fc7d1f889d61958bc8b38f254.

As reported by Stephen Rothwell, it causes compile failures in certain
configurations:

drivers/net/usb/cdc_subset.c:360:15: error: 'dummy_prereset' undeclared here (not in a function)
.pre_reset = dummy_prereset,
^
drivers/net/usb/cdc_subset.c:361:16: error: 'dummy_postreset' undeclared here (not in a function)
.post_reset = dummy_postreset,
^

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: David Miller <davem@davemloft.net>
Cc: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

+2 -36
-27
drivers/net/usb/cdc_subset.c
··· 85 85 * 86 86 *-------------------------------------------------------------------------*/ 87 87 88 - static void m5632_recover(struct usbnet *dev) 89 - { 90 - struct usb_device *udev = dev->udev; 91 - struct usb_interface *intf = dev->intf; 92 - int r; 93 - 94 - r = usb_lock_device_for_reset(udev, intf); 95 - if (r < 0) 96 - return; 97 - 98 - usb_reset_device(udev); 99 - usb_unlock_device(udev); 100 - } 101 - 102 - static int dummy_prereset(struct usb_interface *intf) 103 - { 104 - return 0; 105 - } 106 - 107 - static int dummy_postreset(struct usb_interface *intf) 108 - { 109 - return 0; 110 - } 111 - 112 88 static const struct driver_info ali_m5632_info = { 113 89 .description = "ALi M5632", 114 90 .flags = FLAG_POINTTOPOINT, 115 - .recover = m5632_recover, 116 91 }; 117 92 118 93 #endif ··· 332 357 .probe = usbnet_probe, 333 358 .suspend = usbnet_suspend, 334 359 .resume = usbnet_resume, 335 - .pre_reset = dummy_prereset, 336 - .post_reset = dummy_postreset, 337 360 .disconnect = usbnet_disconnect, 338 361 .id_table = products, 339 362 .disable_hub_initiated_lpm = 1,
+2 -6
drivers/net/usb/usbnet.c
··· 1218 1218 1219 1219 unlink_urbs (dev, &dev->txq); 1220 1220 tasklet_schedule (&dev->bh); 1221 - /* this needs to be handled individually because the generic layer 1222 - * doesn't know what is sufficient and could not restore private 1223 - * information if a remedy of an unconditional reset were used. 1224 - */ 1225 - if (dev->driver_info->recover) 1226 - (dev->driver_info->recover)(dev); 1221 + 1222 + // FIXME: device recovery -- reset? 1227 1223 } 1228 1224 EXPORT_SYMBOL_GPL(usbnet_tx_timeout); 1229 1225
-3
include/linux/usb/usbnet.h
··· 148 148 struct sk_buff *(*tx_fixup)(struct usbnet *dev, 149 149 struct sk_buff *skb, gfp_t flags); 150 150 151 - /* recover from timeout */ 152 - void (*recover)(struct usbnet *dev); 153 - 154 151 /* early initialization code, can sleep. This is for minidrivers 155 152 * having 'subminidrivers' that need to do extra initialization 156 153 * right after minidriver have initialized hardware. */