summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2014-06-07 16:15:59 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2014-06-07 20:35:01 +0200
commitd7a13e6d82bf3d6cc90534a42d5d949833836ecc (patch)
treea913ff070c04318f6a6fce108b209d9bcf63a1a2
parentd8b53631f81f06d8f7ede41a6897d2785ec6ccaa (diff)
backports: handle changes to vlan_rx_add/kill pointers in cdc_mbim.c
These callback pointers are now also used in cdc_mbim.c Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
-rw-r--r--patches/collateral-evolutions/network/0033-ndo_vlan_rx_vid/cdc_mbim.patch50
1 files changed, 50 insertions, 0 deletions
diff --git a/patches/collateral-evolutions/network/0033-ndo_vlan_rx_vid/cdc_mbim.patch b/patches/collateral-evolutions/network/0033-ndo_vlan_rx_vid/cdc_mbim.patch
new file mode 100644
index 00000000..de3ad1d8
--- /dev/null
+++ b/patches/collateral-evolutions/network/0033-ndo_vlan_rx_vid/cdc_mbim.patch
@@ -0,0 +1,50 @@
+diff --git a/drivers/net/usb/cdc_mbim.c b/drivers/net/usb/cdc_mbim.c
+index bc23273..459730d 100644
+--- a/drivers/net/usb/cdc_mbim.c
++++ b/drivers/net/usb/cdc_mbim.c
+@@ -70,7 +70,13 @@ static int cdc_mbim_wdm_manage_power(str
+ return cdc_mbim_manage_power(dev, status);
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
+ static int cdc_mbim_rx_add_vid(struct net_device *netdev, __be16 proto, u16 vid)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)
++static int cdc_mbim_rx_add_vid(struct net_device *netdev, u16 vid)
++#else
++static void cdc_mbim_rx_add_vid(struct net_device *netdev, u16 vid)
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) */
+ {
+ struct usbnet *dev = netdev_priv(netdev);
+ struct cdc_mbim_state *info = (void *)&dev->data;
+@@ -78,13 +84,21 @@ static int cdc_mbim_rx_add_vid(struct ne
+ /* creation of this VLAN is a request to tag IP session 0 */
+ if (vid == MBIM_IPS0_VID)
+ info->flags |= FLAG_IPS0_VLAN;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)
+ else
+ if (vid >= 512) /* we don't map these to MBIM session */
+ return -EINVAL;
+ return 0;
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) */
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
+ static int cdc_mbim_rx_kill_vid(struct net_device *netdev, __be16 proto, u16 vid)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)
++static int cdc_mbim_rx_kill_vid(struct net_device *netdev, u16 vid)
++#else
++static void cdc_mbim_rx_kill_vid(struct net_device *netdev, u16 vid)
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0) */
+ {
+ struct usbnet *dev = netdev_priv(netdev);
+ struct cdc_mbim_state *info = (void *)&dev->data;
+@@ -92,7 +106,9 @@ static int cdc_mbim_rx_kill_vid(struct n
+ /* this is a request for an untagged IP session 0 */
+ if (vid == MBIM_IPS0_VID)
+ info->flags &= ~FLAG_IPS0_VLAN;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)
+ return 0;
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0) */
+ }
+
+ static const struct net_device_ops cdc_mbim_netdev_ops = {