From: Miguel Rodríguez Pérez <mig...@det.uvigo.gal>

usbnet_cdc_update_filter was getting the interface number from the
usb_interface struct in cdc_state->control. However, cdc_ncm does
not initialize that structure in its bind function, but uses
cdc_ncm_ctx instead. Getting intf directly from struct usbnet solves
the problem.

Signed-off-by: Miguel Rodríguez Pérez <mig...@det.uvigo.gal>
Signed-off-by: Bjørn Mork <bj...@mork.no>
---
 drivers/net/usb/cdc_ether.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
index a657943c9f01..2afe258e3648 100644
--- a/drivers/net/usb/cdc_ether.c
+++ b/drivers/net/usb/cdc_ether.c
@@ -65,8 +65,6 @@ 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;
 
        u16 cdc_filter = USB_CDC_PACKET_TYPE_DIRECTED
@@ -86,7 +84,7 @@ static void usbnet_cdc_update_filter(struct usbnet *dev)
                        USB_CDC_SET_ETHERNET_PACKET_FILTER,
                        USB_TYPE_CLASS | USB_RECIP_INTERFACE,
                        cdc_filter,
-                       intf->cur_altsetting->desc.bInterfaceNumber,
+                       dev->intf->cur_altsetting->desc.bInterfaceNumber,
                        NULL,
                        0,
                        USB_CTRL_SET_TIMEOUT
-- 
2.27.0

Reply via email to