diff options
Diffstat (limited to 'patches/collateral-evolutions/network/78-usb-sg/usbnet.patch')
-rw-r--r-- | patches/collateral-evolutions/network/78-usb-sg/usbnet.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/patches/collateral-evolutions/network/78-usb-sg/usbnet.patch b/patches/collateral-evolutions/network/78-usb-sg/usbnet.patch new file mode 100644 index 00000000..e7c841c8 --- /dev/null +++ b/patches/collateral-evolutions/network/78-usb-sg/usbnet.patch @@ -0,0 +1,53 @@ +--- a/drivers/net/usb/usbnet.c ++++ b/drivers/net/usb/usbnet.c +@@ -1234,6 +1234,7 @@ EXPORT_SYMBOL_GPL(usbnet_tx_timeout); + + /*-------------------------------------------------------------------------*/ + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,35,0) + static int build_dma_sg(const struct sk_buff *skb, struct urb *urb) + { + unsigned num_sgs, total_len = 0; +@@ -1264,6 +1265,12 @@ static int build_dma_sg(const struct sk_ + + return 1; + } ++#else ++static int build_dma_sg(const struct sk_buff *skb, struct urb *urb) ++{ ++ return -ENXIO; ++} ++#endif + + netdev_tx_t usbnet_start_xmit (struct sk_buff *skb, + struct net_device *net) +@@ -1377,7 +1384,9 @@ not_drop: + if (skb) + dev_kfree_skb_any (skb); + if (urb) { ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,35,0) + kfree(urb->sg); ++#endif + usb_free_urb(urb); + } + } else +@@ -1430,7 +1439,9 @@ static void usbnet_bh (unsigned long par + rx_process (dev, skb); + continue; + case tx_done: ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,35,0) + kfree(entry->urb->sg); ++#endif + case rx_cleanup: + usb_free_urb (entry->urb); + dev_kfree_skb (skb); +@@ -1767,7 +1778,9 @@ int usbnet_resume (struct usb_interface + retval = usb_submit_urb(res, GFP_ATOMIC); + if (retval < 0) { + dev_kfree_skb_any(skb); ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,35,0) + kfree(res->sg); ++#endif + usb_free_urb(res); + usb_autopm_put_interface_async(dev->intf); + } else { |