aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/generic/patches-4.4/099-0001-usbnet-allow-mini-drivers-to-consume-L2-headers.patch
diff options
context:
space:
mode:
authorKoen Vandeputte <koen.vandeputte@ncentric.com>2018-02-15 15:15:56 +0100
committerJohn Crispin <john@phrozen.org>2018-02-18 09:34:32 +0100
commit3b227103e6a36bdc25233eecedd11807f5949223 (patch)
tree068b00c2d5fb7e975a976547cef872119b673549 /target/linux/generic/patches-4.4/099-0001-usbnet-allow-mini-drivers-to-consume-L2-headers.patch
parentf60be720772cac8a13d7759be14814d14698a45f (diff)
downloadupstream-3b227103e6a36bdc25233eecedd11807f5949223.tar.gz
upstream-3b227103e6a36bdc25233eecedd11807f5949223.tar.bz2
upstream-3b227103e6a36bdc25233eecedd11807f5949223.zip
kernel: backport raw-ip mode for newer QMI LTE modems
Backport support for raw-ip mode including all known fixes afterwards. Newer LTE modems only tend to support this mode, which was only introduced in kernel 4.5. Also backport support for the Quectel EC2x LTE modem series which is a very popular device. No custom changes were needed in order to apply these patches. Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
Diffstat (limited to 'target/linux/generic/patches-4.4/099-0001-usbnet-allow-mini-drivers-to-consume-L2-headers.patch')
-rw-r--r--target/linux/generic/patches-4.4/099-0001-usbnet-allow-mini-drivers-to-consume-L2-headers.patch39
1 files changed, 39 insertions, 0 deletions
diff --git a/target/linux/generic/patches-4.4/099-0001-usbnet-allow-mini-drivers-to-consume-L2-headers.patch b/target/linux/generic/patches-4.4/099-0001-usbnet-allow-mini-drivers-to-consume-L2-headers.patch
new file mode 100644
index 0000000000..a1f19ea18e
--- /dev/null
+++ b/target/linux/generic/patches-4.4/099-0001-usbnet-allow-mini-drivers-to-consume-L2-headers.patch
@@ -0,0 +1,39 @@
+From 81e0ce79f2919dbd5f025894d29aa806af8695c7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
+Date: Thu, 3 Dec 2015 19:24:20 +0100
+Subject: [PATCH] usbnet: allow mini-drivers to consume L2 headers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Assume the minidriver has taken care of all L2 header parsing
+if it sets skb->protocol. This allows the minidriver to
+support non-ethernet L2 headers, and even operate without
+any L2 header at all.
+
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Acked-by: Oliver Neukum <oneukum@suse.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/usb/usbnet.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
+index 0744bf2ef2d6..0b0ba7ef14e4 100644
+--- a/drivers/net/usb/usbnet.c
++++ b/drivers/net/usb/usbnet.c
+@@ -324,7 +324,10 @@ void usbnet_skb_return (struct usbnet *dev, struct sk_buff *skb)
+ return;
+ }
+
+- skb->protocol = eth_type_trans (skb, dev->net);
++ /* only update if unset to allow minidriver rx_fixup override */
++ if (skb->protocol == 0)
++ skb->protocol = eth_type_trans (skb, dev->net);
++
+ dev->net->stats.rx_packets++;
+ dev->net->stats.rx_bytes += skb->len;
+
+--
+2.7.4
+