netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [net 0/2][pull request] Intel Wired LAN Driver Updates
@ 2012-04-17 22:48 Jeff Kirsher
  2012-04-17 22:48 ` [net 1/2] ixgbe: add missing rtnl_lock in PM resume path Jeff Kirsher
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Jeff Kirsher @ 2012-04-17 22:48 UTC (permalink / raw)
  To: davem; +Cc: Jeff Kirsher, netdev, gospo, sassmann

This series of patches contains fixes for ixgbe only.

The following are changes since commit a99ff7d0123b19ecad3b589480b6542716ab6b52:
  net: usb: smsc75xx: fix mtu
and are available in the git repository at:
  git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Alexander Duyck (1):
  ixgbe: Identify FCoE rings earlier to resolve memory corruption w/
    FCoE

Benjamin Poirier (1):
  ixgbe: add missing rtnl_lock in PM resume path

 drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c  |   10 ++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |   10 ++--------
 2 files changed, 12 insertions(+), 8 deletions(-)

-- 
1.7.7.6

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [net 1/2] ixgbe: add missing rtnl_lock in PM resume path
  2012-04-17 22:48 [net 0/2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
@ 2012-04-17 22:48 ` Jeff Kirsher
  2012-04-17 22:48 ` [net 2/2] ixgbe: Identify FCoE rings earlier to resolve memory corruption w/ FCoE Jeff Kirsher
  2012-04-18  2:59 ` [net 0/2][pull request] Intel Wired LAN Driver Updates David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Jeff Kirsher @ 2012-04-17 22:48 UTC (permalink / raw)
  To: davem; +Cc: Benjamin Poirier, netdev, gospo, sassmann, Jeff Kirsher

From: Benjamin Poirier <bpoirier@suse.de>

Upon resume from standby, ixgbe may trigger the ASSERT_RTNL() in
netif_set_real_num_tx_queues(). The call stack is:
	netif_set_real_num_tx_queues
	ixgbe_set_num_queues
	ixgbe_init_interrupt_scheme
	ixgbe_resume

Signed-off-by: Benjamin Poirier <bpoirier@suse.de>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index dac7c01..9e2be8c 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -4836,7 +4836,9 @@ static int ixgbe_resume(struct pci_dev *pdev)
 
 	pci_wake_from_d3(pdev, false);
 
+	rtnl_lock();
 	err = ixgbe_init_interrupt_scheme(adapter);
+	rtnl_unlock();
 	if (err) {
 		e_dev_err("Cannot initialize interrupts for device\n");
 		return err;
-- 
1.7.7.6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [net 2/2] ixgbe: Identify FCoE rings earlier to resolve memory corruption w/ FCoE
  2012-04-17 22:48 [net 0/2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2012-04-17 22:48 ` [net 1/2] ixgbe: add missing rtnl_lock in PM resume path Jeff Kirsher
@ 2012-04-17 22:48 ` Jeff Kirsher
  2012-04-18  2:59 ` [net 0/2][pull request] Intel Wired LAN Driver Updates David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: Jeff Kirsher @ 2012-04-17 22:48 UTC (permalink / raw)
  To: davem; +Cc: Alexander Duyck, netdev, gospo, sassmann, Jeff Kirsher

From: Alexander Duyck <alexander.h.duyck@intel.com>

This patch makes it so that we identify FCoE rings earlier than
ixgbe_set_rx_buffer_len.  Instead we identify the Rx FCoE rings at
allocation time in ixgbe_alloc_q_vector.

The motivation behind this change is to avoid memory corruption when FCoE
is enabled.  Without this change we were initializing the rings at 0, and
2K on systems with 4K pages, then when we bumped the buffer size to 4K with
order 1 pages we were accessing offsets 2K and 6K instead of 0 and 4K.
This was resulting in memory corruptions.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Acked-by: Yi Zou <yi.zou@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c  |   10 ++++++++++
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c |    8 --------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
index 027d7a7..ed1b47d 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
@@ -622,6 +622,16 @@ static int ixgbe_alloc_q_vector(struct ixgbe_adapter *adapter, int v_idx,
 		if (adapter->hw.mac.type == ixgbe_mac_82599EB)
 			set_bit(__IXGBE_RX_CSUM_UDP_ZERO_ERR, &ring->state);
 
+#ifdef IXGBE_FCOE
+		if (adapter->netdev->features & NETIF_F_FCOE_MTU) {
+			struct ixgbe_ring_feature *f;
+			f = &adapter->ring_feature[RING_F_FCOE];
+			if ((rxr_idx >= f->mask) &&
+			    (rxr_idx < f->mask + f->indices))
+				set_bit(__IXGBE_RX_FCOE_BUFSZ, &ring->state);
+		}
+
+#endif /* IXGBE_FCOE */
 		/* apply Rx specific ring traits */
 		ring->count = adapter->rx_ring_count;
 		ring->queue_index = rxr_idx;
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index 9e2be8c..a7f3cd8 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -3154,14 +3154,6 @@ static void ixgbe_set_rx_buffer_len(struct ixgbe_adapter *adapter)
 			set_ring_rsc_enabled(rx_ring);
 		else
 			clear_ring_rsc_enabled(rx_ring);
-#ifdef IXGBE_FCOE
-		if (netdev->features & NETIF_F_FCOE_MTU) {
-			struct ixgbe_ring_feature *f;
-			f = &adapter->ring_feature[RING_F_FCOE];
-			if ((i >= f->mask) && (i < f->mask + f->indices))
-				set_bit(__IXGBE_RX_FCOE_BUFSZ, &rx_ring->state);
-		}
-#endif /* IXGBE_FCOE */
 	}
 }
 
-- 
1.7.7.6

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [net 0/2][pull request] Intel Wired LAN Driver Updates
  2012-04-17 22:48 [net 0/2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
  2012-04-17 22:48 ` [net 1/2] ixgbe: add missing rtnl_lock in PM resume path Jeff Kirsher
  2012-04-17 22:48 ` [net 2/2] ixgbe: Identify FCoE rings earlier to resolve memory corruption w/ FCoE Jeff Kirsher
@ 2012-04-18  2:59 ` David Miller
  2 siblings, 0 replies; 4+ messages in thread
From: David Miller @ 2012-04-18  2:59 UTC (permalink / raw)
  To: jeffrey.t.kirsher; +Cc: netdev, gospo, sassmann

From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Date: Tue, 17 Apr 2012 15:48:03 -0700

> This series of patches contains fixes for ixgbe only.
> 
> The following are changes since commit a99ff7d0123b19ecad3b589480b6542716ab6b52:
>   net: usb: smsc75xx: fix mtu
> and are available in the git repository at:
>   git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net master

Pulled, thanks Jeff.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-04-18  2:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-17 22:48 [net 0/2][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2012-04-17 22:48 ` [net 1/2] ixgbe: add missing rtnl_lock in PM resume path Jeff Kirsher
2012-04-17 22:48 ` [net 2/2] ixgbe: Identify FCoE rings earlier to resolve memory corruption w/ FCoE Jeff Kirsher
2012-04-18  2:59 ` [net 0/2][pull request] Intel Wired LAN Driver Updates David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).