On So, 2018-07-01 at 11:05 +0200, Miguel Rodríguez Pérez wrote: > Remove some unneded varibles to make the code easier to read > and, replace the generic usb_control_msg function for the > more specific usbnet_write_cmd. > > Signed-off-by: Miguel Rodríguez Pérez <miguel@xxxxxxxxxxxxx> No, sorry, but this is not good. The reason is a bit subtle. Drivers need to reset the filters when handling post_reset() [ and reset_resume() ] usbnet_write_cmd() falls back to kmemdup() with GFP_KERNEL. Usbnet is a framework with class drivers and some of the devices we drive have a storage interface. Thence we are on the block error handling path here. The simplest solution is to leave out this patch in the sequence. Regards Oliver NACKED-BY: Oliver Neukum <oneukum@xxxxxxxx> > --- > drivers/net/usb/cdc_ether.c | 15 +++++---------- > 1 file changed, 5 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c > index 178b956501a7..815ed0dc18fe 100644 > --- a/drivers/net/usb/cdc_ether.c > +++ b/drivers/net/usb/cdc_ether.c > @@ -77,9 +77,7 @@ static const u8 mbm_guid[16] = { > > static void usbnet_cdc_update_filter(struct usbnet *dev) > { > - struct cdc_state *info = (void *) &dev->data; > - struct usb_interface *intf = info->control; > - struct net_device *net = dev->net; > + struct net_device *net = dev->net; > > u16 cdc_filter = USB_CDC_PACKET_TYPE_DIRECTED > | USB_CDC_PACKET_TYPE_BROADCAST; > @@ -93,16 +91,13 @@ static void usbnet_cdc_update_filter(struct usbnet *dev) > if (!netdev_mc_empty(net) || (net->flags & IFF_ALLMULTI)) > cdc_filter |= USB_CDC_PACKET_TYPE_ALL_MULTICAST; > > - usb_control_msg(dev->udev, > - usb_sndctrlpipe(dev->udev, 0), > + usbnet_write_cmd(dev, > USB_CDC_SET_ETHERNET_PACKET_FILTER, > - USB_TYPE_CLASS | USB_RECIP_INTERFACE, > + USB_TYPE_CLASS | USB_DIR_OUT | USB_RECIP_INTERFACE, > cdc_filter, > - intf->cur_altsetting->desc.bInterfaceNumber, > + dev->intf->cur_altsetting->desc.bInterfaceNumber, > NULL, > - 0, > - USB_CTRL_SET_TIMEOUT > - ); > + 0); > } > > /* probes control interface, claims data interface, collects the bulk -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html