From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v3,1/4] Simplify usbnet_cdc_update_filter From: Oliver Neukum Message-Id: <1530519944.18402.10.camel@suse.com> Date: Mon, 02 Jul 2018 10:25:44 +0200 To: Miguel =?ISO-8859-1?Q?Rodr=EDguez_P=E9rez?= , gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org List-ID: T24gU28sIDIwMTgtMDctMDEgYXQgMTE6MDUgKzAyMDAsIE1pZ3VlbCBSb2Ryw61ndWV6IFDDqXJl eiAgICAgICAgIHdyb3RlOgo+IFJlbW92ZSBzb21lIHVubmVkZWQgdmFyaWJsZXMgdG8gbWFrZSB0 aGUgY29kZSBlYXNpZXIgdG8gcmVhZAo+IGFuZCwgcmVwbGFjZSB0aGUgZ2VuZXJpYyB1c2JfY29u dHJvbF9tc2cgZnVuY3Rpb24gZm9yIHRoZQo+IG1vcmUgc3BlY2lmaWMgdXNibmV0X3dyaXRlX2Nt ZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNaWd1ZWwgUm9kcsOtZ3VleiBQw6lyZXogPG1pZ3VlbEBk ZXQudXZpZ28uZ2FsPgoKTm8sCgpzb3JyeSwgYnV0IHRoaXMgaXMgbm90IGdvb2QuIFRoZSByZWFz b24gaXMgYSBiaXQgc3VidGxlLgpEcml2ZXJzIG5lZWQgdG8gcmVzZXQgdGhlIGZpbHRlcnMgd2hl biBoYW5kbGluZyBwb3N0X3Jlc2V0KCkKWyBhbmQgcmVzZXRfcmVzdW1lKCkgXSB1c2JuZXRfd3Jp dGVfY21kKCkgZmFsbHMgYmFjayB0bwprbWVtZHVwKCkgd2l0aCBHRlBfS0VSTkVMLiBVc2JuZXQg aXMgYSBmcmFtZXdvcmsgd2l0aCBjbGFzcwpkcml2ZXJzIGFuZCBzb21lIG9mIHRoZSBkZXZpY2Vz IHdlIGRyaXZlIGhhdmUgYSBzdG9yYWdlCmludGVyZmFjZS4gVGhlbmNlIHdlIGFyZSBvbiB0aGUg YmxvY2sgZXJyb3IgaGFuZGxpbmcgcGF0aCBoZXJlLgoKVGhlIHNpbXBsZXN0IHNvbHV0aW9uIGlz IHRvIGxlYXZlIG91dCB0aGlzIHBhdGNoIGluIHRoZSBzZXF1ZW5jZS4KCglSZWdhcmRzCgkJT2xp dmVyCgoKTkFDS0VELUJZOiBPbGl2ZXIgTmV1a3VtIDxvbmV1a3VtQHN1c2UuY29tPgoKCj4gLS0t Cj4gIGRyaXZlcnMvbmV0L3VzYi9jZGNfZXRoZXIuYyB8IDE1ICsrKysrLS0tLS0tLS0tLQo+ICAx IGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKPiAKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jIGIvZHJpdmVycy9uZXQvdXNiL2Nk Y19ldGhlci5jCj4gaW5kZXggMTc4Yjk1NjUwMWE3Li44MTVlZDBkYzE4ZmUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9uZXQvdXNiL2NkY19ldGhlci5jCj4gKysrIGIvZHJpdmVycy9uZXQvdXNiL2Nk Y19ldGhlci5jCj4gQEAgLTc3LDkgKzc3LDcgQEAgc3RhdGljIGNvbnN0IHU4IG1ibV9ndWlkWzE2 XSA9IHsKPiAgCj4gIHN0YXRpYyB2b2lkIHVzYm5ldF9jZGNfdXBkYXRlX2ZpbHRlcihzdHJ1Y3Qg dXNibmV0ICpkZXYpCj4gIHsKPiAtCXN0cnVjdCBjZGNfc3RhdGUJKmluZm8gPSAodm9pZCAqKSAm ZGV2LT5kYXRhOwo+IC0Jc3RydWN0IHVzYl9pbnRlcmZhY2UJKmludGYgPSBpbmZvLT5jb250cm9s Owo+IC0Jc3RydWN0IG5ldF9kZXZpY2UJKm5ldCA9IGRldi0+bmV0Owo+ICsJc3RydWN0IG5ldF9k ZXZpY2UgKm5ldCA9IGRldi0+bmV0Owo+ICAKPiAgCXUxNiBjZGNfZmlsdGVyID0gVVNCX0NEQ19Q QUNLRVRfVFlQRV9ESVJFQ1RFRAo+ICAJCQl8IFVTQl9DRENfUEFDS0VUX1RZUEVfQlJPQURDQVNU Owo+IEBAIC05MywxNiArOTEsMTMgQEAgc3RhdGljIHZvaWQgdXNibmV0X2NkY191cGRhdGVfZmls dGVyKHN0cnVjdCB1c2JuZXQgKmRldikKPiAgCWlmICghbmV0ZGV2X21jX2VtcHR5KG5ldCkgfHwg KG5ldC0+ZmxhZ3MgJiBJRkZfQUxMTVVMVEkpKQo+ICAJCWNkY19maWx0ZXIgfD0gVVNCX0NEQ19Q QUNLRVRfVFlQRV9BTExfTVVMVElDQVNUOwo+ICAKPiAtCXVzYl9jb250cm9sX21zZyhkZXYtPnVk ZXYsCj4gLQkJCXVzYl9zbmRjdHJscGlwZShkZXYtPnVkZXYsIDApLAo+ICsJdXNibmV0X3dyaXRl X2NtZChkZXYsCj4gIAkJCVVTQl9DRENfU0VUX0VUSEVSTkVUX1BBQ0tFVF9GSUxURVIsCj4gLQkJ CVVTQl9UWVBFX0NMQVNTIHwgVVNCX1JFQ0lQX0lOVEVSRkFDRSwKPiArCQkJVVNCX1RZUEVfQ0xB U1MgfCBVU0JfRElSX09VVCB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UsCj4gIAkJCWNkY19maWx0ZXIs Cj4gLQkJCWludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjLmJJbnRlcmZhY2VOdW1iZXIsCj4gKwkJ CWRldi0+aW50Zi0+Y3VyX2FsdHNldHRpbmctPmRlc2MuYkludGVyZmFjZU51bWJlciwKPiAgCQkJ TlVMTCwKPiAtCQkJMCwKPiAtCQkJVVNCX0NUUkxfU0VUX1RJTUVPVVQKPiAtCQkpOwo+ICsJCQkw KTsKPiAgfQo+ICAKPiAgLyogcHJvYmVzIGNvbnRyb2wgaW50ZXJmYWNlLCBjbGFpbXMgZGF0YSBp bnRlcmZhY2UsIGNvbGxlY3RzIHRoZSBidWxrCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMg bGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBv ZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBp bmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oliver Neukum Subject: Re: [PATCH v3 1/4] Simplify usbnet_cdc_update_filter Date: Mon, 02 Jul 2018 10:25:44 +0200 Message-ID: <1530519944.18402.10.camel@suse.com> References: <20180701081550.GA7048@kroah.com> <20180701090553.7776-1-miguel@det.uvigo.gal> <20180701090553.7776-2-miguel@det.uvigo.gal> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit To: Miguel =?ISO-8859-1?Q?Rodr=EDguez_P=E9rez?= , gregkh@linuxfoundation.org, linux-usb@vger.kernel.org, netdev@vger.kernel.org Return-path: Received: from mx2.suse.de ([195.135.220.15]:45022 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754102AbeGBIZ7 (ORCPT ); Mon, 2 Jul 2018 04:25:59 -0400 In-Reply-To: <20180701090553.7776-2-miguel@det.uvigo.gal> Sender: netdev-owner@vger.kernel.org List-ID: 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 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 > --- > 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