summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandrew-elder <aelder@audioscience.com>2015-07-25 08:38:02 -0400
committerandrew-elder <aelder@audioscience.com>2015-07-25 08:38:02 -0400
commit92bb0cb9666240bd54ef02cf3e140079706d6513 (patch)
treea0278552725d4b02eafae13b9951ae26e9cbb23f
parentd50c26b2acde962b6b98f90b663d9bb80d2e0289 (diff)
parent908ae3ee2c3c01ea0ad10a524682fa9b362b04f4 (diff)
downloadOpen-AVB-92bb0cb9666240bd54ef02cf3e140079706d6513.tar.gz
Merge pull request #258 from htfujina/open-avb-next
igb-avb: fix errors in sync to igb-5.3.2
-rw-r--r--kmod/igb/igb_main.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/kmod/igb/igb_main.c b/kmod/igb/igb_main.c
index 3e9946d5..09547203 100644
--- a/kmod/igb/igb_main.c
+++ b/kmod/igb/igb_main.c
@@ -126,6 +126,14 @@ static void igb_watchdog(unsigned long);
static void igb_watchdog_task(struct work_struct *);
static void igb_dma_err_task(struct work_struct *);
static void igb_dma_err_timer(unsigned long data);
+
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) )
+static u16 igb_select_queue(struct net_device *dev, struct sk_buff *skb);
+#else
+static u16 igb_select_queue(struct net_device *dev, struct sk_buff *skb,
+ void *accel_priv, select_queue_fallback_t fallback);
+#endif
+
static netdev_tx_t igb_xmit_frame(struct sk_buff *skb, struct net_device *);
static struct net_device_stats *igb_get_stats(struct net_device *);
static int igb_change_mtu(struct net_device *, int);
@@ -1926,7 +1934,7 @@ void igb_reset(struct igb_adapter *adapter)
/* Repartition Pba for greater than 9k mtu
* To take effect CTRL.RST is required.
*/
- pba = E1000_PBA_34K;
+ pba = E1000_PBA_32K;
if ((adapter->max_frame_size > ETH_FRAME_LEN + ETH_FCS_LEN) &&
(mac->type < e1000_82576)) {
@@ -2301,6 +2309,7 @@ static const struct net_device_ops igb_netdev_ops = {
.ndo_open = igb_open,
.ndo_stop = igb_close,
.ndo_start_xmit = igb_xmit_frame,
+ .ndo_select_queue = igb_select_queue,
.ndo_get_stats = igb_get_stats,
.ndo_set_rx_mode = igb_set_rx_mode,
.ndo_set_mac_address = igb_set_mac,
@@ -4513,7 +4522,7 @@ static void igb_set_rx_mode(struct net_device *netdev)
vmolr |= E1000_VMOLR_ROPE;
}
#endif /* HAVE_SET_RX_MODE */
- rctl |= E1000_RCTL_VFE;
+ /* rctl |= E1000_RCTL_VFE; Disable VLAN filtering*/
}
E1000_WRITE_REG(hw, E1000_RCTL, rctl);
@@ -5614,6 +5623,17 @@ static inline struct igb_ring *igb_tx_queue_mapping(struct igb_adapter *adapter,
#error This driver must have multi-queue transmit support enabled (CONFIG_NETDEVICES_MULTIQUEUE)!
#endif
+#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) )
+static u16 igb_select_queue(struct net_device *dev, struct sk_buff *skb)
+#else
+static u16 igb_select_queue(struct net_device *dev, struct sk_buff *skb,
+ void *accel_priv, select_queue_fallback_t fallback)
+#endif
+{
+ /* remap normal LAN to best effort queue[3] */
+ return (3);
+}
+
static netdev_tx_t igb_xmit_frame(struct sk_buff *skb,
struct net_device *netdev)
{