diff options
31 files changed, 217 insertions, 134 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 37054306dc9f..8fd05d4e3b0a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
| @@ -2098,7 +2098,7 @@ S: Supported | |||
| 2098 | F: drivers/scsi/bfa/ | 2098 | F: drivers/scsi/bfa/ |
| 2099 | 2099 | ||
| 2100 | BROCADE BNA 10 GIGABIT ETHERNET DRIVER | 2100 | BROCADE BNA 10 GIGABIT ETHERNET DRIVER |
| 2101 | M: Rasesh Mody <rmody@brocade.com> | 2101 | M: Rasesh Mody <rasesh.mody@qlogic.com> |
| 2102 | L: netdev@vger.kernel.org | 2102 | L: netdev@vger.kernel.org |
| 2103 | S: Supported | 2103 | S: Supported |
| 2104 | F: drivers/net/ethernet/brocade/bna/ | 2104 | F: drivers/net/ethernet/brocade/bna/ |
diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c index 2fee73b878c2..823d01c5684c 100644 --- a/drivers/net/ethernet/broadcom/bnx2.c +++ b/drivers/net/ethernet/broadcom/bnx2.c | |||
| @@ -3236,8 +3236,9 @@ bnx2_rx_int(struct bnx2 *bp, struct bnx2_napi *bnapi, int budget) | |||
| 3236 | 3236 | ||
| 3237 | skb->protocol = eth_type_trans(skb, bp->dev); | 3237 | skb->protocol = eth_type_trans(skb, bp->dev); |
| 3238 | 3238 | ||
| 3239 | if ((len > (bp->dev->mtu + ETH_HLEN)) && | 3239 | if (len > (bp->dev->mtu + ETH_HLEN) && |
| 3240 | (ntohs(skb->protocol) != 0x8100)) { | 3240 | skb->protocol != htons(0x8100) && |
| 3241 | skb->protocol != htons(ETH_P_8021AD)) { | ||
| 3241 | 3242 | ||
| 3242 | dev_kfree_skb(skb); | 3243 | dev_kfree_skb(skb); |
| 3243 | goto next_rx; | 3244 | goto next_rx; |
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index e7d3a620d96a..ba499489969a 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
| @@ -6918,7 +6918,8 @@ static int tg3_rx(struct tg3_napi *tnapi, int budget) | |||
| 6918 | skb->protocol = eth_type_trans(skb, tp->dev); | 6918 | skb->protocol = eth_type_trans(skb, tp->dev); |
| 6919 | 6919 | ||
| 6920 | if (len > (tp->dev->mtu + ETH_HLEN) && | 6920 | if (len > (tp->dev->mtu + ETH_HLEN) && |
| 6921 | skb->protocol != htons(ETH_P_8021Q)) { | 6921 | skb->protocol != htons(ETH_P_8021Q) && |
| 6922 | skb->protocol != htons(ETH_P_8021AD)) { | ||
| 6922 | dev_kfree_skb_any(skb); | 6923 | dev_kfree_skb_any(skb); |
| 6923 | goto drop_it_no_recycle; | 6924 | goto drop_it_no_recycle; |
| 6924 | } | 6925 | } |
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c index ca5d7798b265..e1e02fba4fcc 100644 --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c | |||
| @@ -30,7 +30,6 @@ | |||
| 30 | #include <linux/of_device.h> | 30 | #include <linux/of_device.h> |
| 31 | #include <linux/of_mdio.h> | 31 | #include <linux/of_mdio.h> |
| 32 | #include <linux/of_net.h> | 32 | #include <linux/of_net.h> |
| 33 | #include <linux/pinctrl/consumer.h> | ||
| 34 | 33 | ||
| 35 | #include "macb.h" | 34 | #include "macb.h" |
| 36 | 35 | ||
| @@ -2071,7 +2070,6 @@ static int __init macb_probe(struct platform_device *pdev) | |||
| 2071 | struct phy_device *phydev; | 2070 | struct phy_device *phydev; |
| 2072 | u32 config; | 2071 | u32 config; |
| 2073 | int err = -ENXIO; | 2072 | int err = -ENXIO; |
| 2074 | struct pinctrl *pinctrl; | ||
| 2075 | const char *mac; | 2073 | const char *mac; |
| 2076 | 2074 | ||
| 2077 | regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 2075 | regs = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| @@ -2080,15 +2078,6 @@ static int __init macb_probe(struct platform_device *pdev) | |||
| 2080 | goto err_out; | 2078 | goto err_out; |
| 2081 | } | 2079 | } |
| 2082 | 2080 | ||
| 2083 | pinctrl = devm_pinctrl_get_select_default(&pdev->dev); | ||
| 2084 | if (IS_ERR(pinctrl)) { | ||
| 2085 | err = PTR_ERR(pinctrl); | ||
| 2086 | if (err == -EPROBE_DEFER) | ||
| 2087 | goto err_out; | ||
| 2088 | |||
| 2089 | dev_warn(&pdev->dev, "No pinctrl provided\n"); | ||
| 2090 | } | ||
| 2091 | |||
| 2092 | err = -ENOMEM; | 2081 | err = -ENOMEM; |
| 2093 | dev = alloc_etherdev(sizeof(*bp)); | 2082 | dev = alloc_etherdev(sizeof(*bp)); |
| 2094 | if (!dev) | 2083 | if (!dev) |
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c index 7e2d5d57c598..871e3a5bda38 100644 --- a/drivers/net/ethernet/mellanox/mlx4/main.c +++ b/drivers/net/ethernet/mellanox/mlx4/main.c | |||
| @@ -78,13 +78,13 @@ MODULE_PARM_DESC(msi_x, "attempt to use MSI-X if nonzero"); | |||
| 78 | #endif /* CONFIG_PCI_MSI */ | 78 | #endif /* CONFIG_PCI_MSI */ |
| 79 | 79 | ||
| 80 | static uint8_t num_vfs[3] = {0, 0, 0}; | 80 | static uint8_t num_vfs[3] = {0, 0, 0}; |
| 81 | static int num_vfs_argc = 3; | 81 | static int num_vfs_argc; |
| 82 | module_param_array(num_vfs, byte , &num_vfs_argc, 0444); | 82 | module_param_array(num_vfs, byte , &num_vfs_argc, 0444); |
| 83 | MODULE_PARM_DESC(num_vfs, "enable #num_vfs functions if num_vfs > 0\n" | 83 | MODULE_PARM_DESC(num_vfs, "enable #num_vfs functions if num_vfs > 0\n" |
| 84 | "num_vfs=port1,port2,port1+2"); | 84 | "num_vfs=port1,port2,port1+2"); |
| 85 | 85 | ||
| 86 | static uint8_t probe_vf[3] = {0, 0, 0}; | 86 | static uint8_t probe_vf[3] = {0, 0, 0}; |
| 87 | static int probe_vfs_argc = 3; | 87 | static int probe_vfs_argc; |
| 88 | module_param_array(probe_vf, byte, &probe_vfs_argc, 0444); | 88 | module_param_array(probe_vf, byte, &probe_vfs_argc, 0444); |
| 89 | MODULE_PARM_DESC(probe_vf, "number of vfs to probe by pf driver (num_vfs > 0)\n" | 89 | MODULE_PARM_DESC(probe_vf, "number of vfs to probe by pf driver (num_vfs > 0)\n" |
| 90 | "probe_vf=port1,port2,port1+2"); | 90 | "probe_vf=port1,port2,port1+2"); |
diff --git a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c index 32058614151a..5c4068353f66 100644 --- a/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c +++ b/drivers/net/ethernet/qlogic/netxen/netxen_nic_init.c | |||
| @@ -135,6 +135,7 @@ void netxen_release_tx_buffers(struct netxen_adapter *adapter) | |||
| 135 | int i, j; | 135 | int i, j; |
| 136 | struct nx_host_tx_ring *tx_ring = adapter->tx_ring; | 136 | struct nx_host_tx_ring *tx_ring = adapter->tx_ring; |
| 137 | 137 | ||
| 138 | spin_lock(&adapter->tx_clean_lock); | ||
| 138 | cmd_buf = tx_ring->cmd_buf_arr; | 139 | cmd_buf = tx_ring->cmd_buf_arr; |
| 139 | for (i = 0; i < tx_ring->num_desc; i++) { | 140 | for (i = 0; i < tx_ring->num_desc; i++) { |
| 140 | buffrag = cmd_buf->frag_array; | 141 | buffrag = cmd_buf->frag_array; |
| @@ -158,6 +159,7 @@ void netxen_release_tx_buffers(struct netxen_adapter *adapter) | |||
| 158 | } | 159 | } |
| 159 | cmd_buf++; | 160 | cmd_buf++; |
| 160 | } | 161 | } |
| 162 | spin_unlock(&adapter->tx_clean_lock); | ||
| 161 | } | 163 | } |
| 162 | 164 | ||
| 163 | void netxen_free_sw_resources(struct netxen_adapter *adapter) | 165 | void netxen_free_sw_resources(struct netxen_adapter *adapter) |
| @@ -1792,9 +1794,9 @@ int netxen_process_cmd_ring(struct netxen_adapter *adapter) | |||
| 1792 | break; | 1794 | break; |
| 1793 | } | 1795 | } |
| 1794 | 1796 | ||
| 1795 | if (count && netif_running(netdev)) { | 1797 | tx_ring->sw_consumer = sw_consumer; |
| 1796 | tx_ring->sw_consumer = sw_consumer; | ||
| 1797 | 1798 | ||
| 1799 | if (count && netif_running(netdev)) { | ||
| 1798 | smp_mb(); | 1800 | smp_mb(); |
