Patchwork [1/2] introduce flag FLAG_NOARP for usb net devices which cannot do ARP

login
register
mail settings
Submitter Wei Shuai
Date Jan. 19, 2013, 11:47 a.m.
Message ID <1358596079-7126-1-git-send-email-cpuwolf@gmail.com>
Download mbox | patch
Permalink /patch/213829/
State Changes Requested
Delegated to: David Miller
Headers show

Comments

Wei Shuai - Jan. 19, 2013, 11:47 a.m.
we do have some USB net devices, which cannot do ARP. so we can introduce a new flag 
FLAG_NOARP, then client drivers can easily handle these kind of devices


Signed-off-by: Wei Shuai <cpuwolf@gmail.com>
---
 drivers/net/usb/usbnet.c   |    4 ++++
 include/linux/usb/usbnet.h |    1 +
 2 files changed, 5 insertions(+), 0 deletions(-)
David Miller - Jan. 19, 2013, 3:55 p.m.
Why did you submit this _4_ times?

I'm deleteing everything, I'm not even going to try and guess why
you submitted this so many times and what might be different between
each copy.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Wei Shuai - Jan. 20, 2013, 1:05 a.m.
sorry for wrongly use git, I cannot recall them back. There is no
different between them. Anything else I can fix this? Resubmit?

2013/1/19, David Miller <davem@davemloft.net>:
>
> Why did you submit this _4_ times?
>
> I'm deleteing everything, I'm not even going to try and guess why
> you submitted this so many times and what might be different between
> each copy.
>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
index 3d4bf01..f34b2eb 100644
--- a/drivers/net/usb/usbnet.c
+++ b/drivers/net/usb/usbnet.c
@@ -1448,6 +1448,10 @@  usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
 		if ((dev->driver_info->flags & FLAG_WWAN) != 0)
 			strcpy(net->name, "wwan%d");
 
+		/* devices that cannot do ARP */
+		if ((dev->driver_info->flags & FLAG_NOARP) != 0)
+			net->flags |= IFF_NOARP;
+
 		/* maybe the remote can't receive an Ethernet MTU */
 		if (net->mtu > (dev->hard_mtu - net->hard_header_len))
 			net->mtu = dev->hard_mtu - net->hard_header_len;
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
index bd45eb7..5de7a22 100644
--- a/include/linux/usb/usbnet.h
+++ b/include/linux/usb/usbnet.h
@@ -100,6 +100,7 @@  struct driver_info {
 #define FLAG_LINK_INTR	0x0800		/* updates link (carrier) status */
 
 #define FLAG_POINTTOPOINT 0x1000	/* possibly use "usb%d" names */
+#define FLAG_NOARP	0x2000		/* device can't do ARP */
 
 /*
  * Indicates to usbnet, that USB driver accumulates multiple IP packets.