aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-07 01:31:08 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-07 01:31:08 -0500
commitdac12d1f5ef228e132c2457dc214e0703533b016 (patch)
tree903e33952ec5ecfe0ff5b0e7ce5d35469e0630e6 /drivers
parent55062d061790b43aee01ab3f9ac57b8596254f19 (diff)
parentd6ddef9e641d1229d4ec841dc75ae703171c3e92 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Pull networking fixes from David Miller: 1) TCP can chop up SACK'd SKBs below below the unacked send sequence and that breaks lots of stuff. Fix from Neal Cardwell. 2) There is code in ipv6 to properly join and leave the all-routers multicast code when the forwarding setting is changed, but once forwarding is turned on, we don't do the join for newly registered devices. Fix from Li Wei. 3) Netfilter's NAT module autoload in ctnetlink drops a spinlock around a sleeping call, problem is this code path doesn't actually hold that lock. Fix from Pablo Neira Ayuso. 4) TG3 uses the wrong interfaces to hook into the new byte queue limit support. It uses the device level interfaces, which is fine for single queue devices, but on more recent chips this driver supports multiqueue so we have to use the multiqueue BQL APIs. Fix from Tom Herbert. 5) r8169 resume fix from Francois Romieu. 6) Add some cxgb4 device IDs, from Vipul Pandya. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: IPv6: Fix not join all-router mcast group when forwarding set. caif-hsi: Set default MTU to 4096 cxgb4vf: Add support for Chelsio's T480-CR and T440-LP-CR adapters cxgb4: Add support for Chelsio's T480-CR and T440-LP-CR adapters mlx4_core: remove buggy sched_queue masking netfilter: nf_conntrack: fix early_drop with reliable event delivery bridge: netfilter: don't call iptables on vlan packets if sysctl is off netfilter: bridge: fix wrong pointer dereference netfilter: ctnetlink: remove incorrect spin_[un]lock_bh on NAT module autoload netfilter: ebtables: fix wrong name length while copying to user-space r8169: runtime resume before shutdown. tcp: fix tcp_shift_skb_data() to not shift SACKed data below snd_una tg3: Fix to use multi queue BQL interfaces
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/caif/caif_hsi.c2
-rw-r--r--drivers/net/ethernet/broadcom/tg3.c6
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c2
-rw-r--r--drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/qp.c5
-rw-r--r--drivers/net/ethernet/realtek/r8169.c5
6 files changed, 13 insertions, 9 deletions
diff --git a/drivers/net/caif/caif_hsi.c b/drivers/net/caif/caif_hsi.c
index 0a4fc62a381d..c998e1afebc6 100644
--- a/drivers/net/caif/caif_hsi.c
+++ b/drivers/net/caif/caif_hsi.c
@@ -978,7 +978,7 @@ static void cfhsi_setup(struct net_device *dev)
978 dev->netdev_ops = &cfhsi_ops; 978 dev->netdev_ops = &cfhsi_ops;
979 dev->type = ARPHRD_CAIF; 979 dev->type = ARPHRD_CAIF;
980 dev->flags = IFF_POINTOPOINT | IFF_NOARP; 980 dev->flags = IFF_POINTOPOINT | IFF_NOARP;
981 dev->mtu = CFHSI_MAX_PAYLOAD_SZ; 981 dev->mtu = CFHSI_MAX_CAIF_FRAME_SZ;
982 dev->tx_queue_len = 0; 982 dev->tx_queue_len = 0;
983 dev->destructor = free_netdev; 983 dev->destructor = free_netdev;
984 skb_queue_head_init(&cfhsi->qhead); 984 skb_queue_head_init(&cfhsi->qhead);
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index 423d0235a878..35c2a202d67a 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -5352,7 +5352,7 @@ static void tg3_tx(struct tg3_napi *tnapi)
5352 } 5352 }
5353 } 5353 }
5354 5354
5355 netdev_completed_queue(tp->dev, pkts_compl, bytes_compl); 5355 netdev_tx_completed_queue(txq, pkts_compl, bytes_compl);
5356 5356
5357 tnapi->tx_cons = sw_idx; 5357 tnapi->tx_cons = sw_idx;
5358 5358
@@ -6793,7 +6793,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
6793 } 6793 }
6794 6794
6795 skb_tx_timestamp(skb); 6795 skb_tx_timestamp(skb);
6796 netdev_sent_queue(tp->dev, skb->len); 6796 netdev_tx_sent_queue(txq, skb->len);
6797 6797
6798 /* Packets are ready, update Tx producer idx local and on card. */ 6798 /* Packets are ready, update Tx producer idx local and on card. */
6799 tw32_tx_mbox(tnapi->prodmbox, entry); 6799 tw32_tx_mbox(tnapi->prodmbox, entry);
@@ -7275,8 +7275,8 @@ static void tg3_free_rings(struct tg3 *tp)
7275 7275
7276 dev_kfree_skb_any(skb); 7276 dev_kfree_skb_any(skb);
7277 } 7277 }
7278 netdev_tx_reset_queue(netdev_get_tx_queue(tp->dev, j));
7278 } 7279 }
7279 netdev_reset_queue(tp->dev);
7280} 7280}
7281 7281
7282/* Initialize tx/rx rings for packet processing. 7282/* Initialize tx/rx rings for packet processing.
diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index e83d12c7bf20..9d76e59d9526 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -196,6 +196,8 @@ static DEFINE_PCI_DEVICE_TABLE(cxgb4_pci_tbl) = {
196 CH_DEVICE(0x4408, 4), 196 CH_DEVICE(0x4408, 4),
197 CH_DEVICE(0x4409, 4), 197 CH_DEVICE(0x4409, 4),
198 CH_DEVICE(0x440a, 4), 198 CH_DEVICE(0x440a, 4),
199 CH_DEVICE(0x440d, 4),
200 CH_DEVICE(0x440e, 4),
199 { 0, } 201 { 0, }
200}; 202};
201 203
diff --git a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
index e53365a71484..d963c1d57f71 100644
--- a/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c
@@ -2892,6 +2892,8 @@ static struct pci_device_id cxgb4vf_pci_tbl[] = {
2892 CH_DEVICE(0x4808, 0), /* T420-cx */ 2892 CH_DEVICE(0x4808, 0), /* T420-cx */
2893 CH_DEVICE(0x4809, 0), /* T420-bt */ 2893 CH_DEVICE(0x4809, 0), /* T420-bt */
2894 CH_DEVICE(0x480a, 0), /* T404-bt */ 2894 CH_DEVICE(0x480a, 0), /* T404-bt */
2895 CH_DEVICE(0x480d, 0), /* T480-cr */
2896 CH_DEVICE(0x480e, 0), /* T440-lp-cr */
2895 { 0, } 2897 { 0, }
2896}; 2898};
2897 2899
diff --git a/drivers/net/ethernet/mellanox/mlx4/qp.c b/drivers/net/ethernet/mellanox/mlx4/qp.c
index 738f950a1ce5..fb2b36759cbf 100644
--- a/drivers/net/ethernet/mellanox/mlx4/qp.c
+++ b/drivers/net/ethernet/mellanox/mlx4/qp.c
@@ -151,11 +151,6 @@ static int __mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
151 context->log_page_size = mtt->page_shift - MLX4_ICM_PAGE_SHIFT; 151 context->log_page_size = mtt->page_shift - MLX4_ICM_PAGE_SHIFT;
152 } 152 }
153 153
154 port = ((context->pri_path.sched_queue >> 6) & 1) + 1;
155 if (dev->caps.port_type[port] == MLX4_PORT_TYPE_ETH)
156 context->pri_path.sched_queue = (context->pri_path.sched_queue &
157 0xc3);
158
159 *(__be32 *) mailbox->buf = cpu_to_be32(optpar); 154 *(__be32 *) mailbox->buf = cpu_to_be32(optpar);
160 memcpy(mailbox->buf + 8, context, sizeof *context); 155 memcpy(mailbox->buf + 8, context, sizeof *context);
161 156
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 1adf17757cea..bbacb3741ec0 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -6194,6 +6194,9 @@ static void rtl_shutdown(struct pci_dev *pdev)
6194{ 6194{
6195 struct net_device *dev = pci_get_drvdata(pdev); 6195 struct net_device *dev = pci_get_drvdata(pdev);
6196 struct rtl8169_private *tp = netdev_priv(dev); 6196 struct rtl8169_private *tp = netdev_priv(dev);
6197 struct device *d = &pdev->dev;
6198
6199 pm_runtime_get_sync(d);
6197 6200
6198 rtl8169_net_suspend(dev); 6201 rtl8169_net_suspend(dev);
6199 6202
@@ -6215,6 +6218,8 @@ static void rtl_shutdown(struct pci_dev *pdev)
6215 pci_wake_from_d3(pdev, true); 6218 pci_wake_from_d3(pdev, true);
6216 pci_set_power_state(pdev, PCI_D3hot); 6219 pci_set_power_state(pdev, PCI_D3hot);
6217 } 6220 }
6221
6222 pm_runtime_put_noidle(d);
6218} 6223}
6219 6224
6220static struct pci_driver rtl8169_pci_driver = { 6225static struct pci_driver rtl8169_pci_driver = {