[RFC PATCH 06/12] e1000e: drop stats lock

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-kernel@...>
Cc: <linux-netdev@...>, <kkeil@...>, <agospoda@...>, <arjan@...>, <david.graham@...>, <bruce.w.allan@...>, <jkosina@...>, <john.ronciak@...>, <tglx@...>, <chris.jones@...>, <tim.gardner@...>, <airlied@...>, Jesse Brandeburg <jesse.brandeburg@...>
Date: Monday, September 29, 2008 - 11:19 pm

the stats lock is left over from e1000, e1000e no longer
has the adjust tbi stats function that required the addition
of the stats lock to begin with.

adding a mutex to acquire_swflag helped catch this one too.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
CC: Thomas Gleixner <tglx@linutronix.de>
---

 drivers/net/e1000e/e1000.h  |    1 -
 drivers/net/e1000e/netdev.c |   18 ------------------
 2 files changed, 0 insertions(+), 19 deletions(-)

diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index ed9d974..f80e43a 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -257,7 +257,6 @@ struct e1000_adapter {
 	struct net_device *netdev;
 	struct pci_dev *pdev;
 	struct net_device_stats net_stats;
-	spinlock_t stats_lock;      /* prevent concurrent stats updates */
 
 	/* structs defined in e1000_hw.h */
 	struct e1000_hw hw;
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 44ce120..9aa3c79 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -2600,8 +2600,6 @@ static int __devinit e1000_sw_init(struct e1000_adapter *adapter)
 	/* Explicitly disable IRQ since the NIC can be in any state. */
 	e1000_irq_disable(adapter);
 
-	spin_lock_init(&adapter->stats_lock);
-
 	set_bit(__E1000_DOWN, &adapter->state);
 	return 0;
 
@@ -2953,7 +2951,6 @@ void e1000e_update_stats(struct e1000_adapter *adapter)
 {
 	struct e1000_hw *hw = &adapter->hw;
 	struct pci_dev *pdev = adapter->pdev;
-	unsigned long irq_flags;
 
 	/*
 	 * Prevent stats update while adapter is being reset, or if the pci
@@ -2964,14 +2961,6 @@ void e1000e_update_stats(struct e1000_adapter *adapter)
 	if (pci_channel_offline(pdev))
 		return;
 
-	spin_lock_irqsave(&adapter->stats_lock, irq_flags);
-
-	/*
-	 * these counters are modified from e1000_adjust_tbi_stats,
-	 * called from the interrupt context, so they must only
-	 * be written while holding adapter->stats_lock
-	 */
-
 	adapter->stats.crcerrs += er32(CRCERRS);
 	adapter->stats.gprc += er32(GPRC);
 	adapter->stats.gorc += er32(GORCL);
@@ -3046,8 +3035,6 @@ void e1000e_update_stats(struct e1000_adapter *adapter)
 	adapter->stats.mgptc += er32(MGTPTC);
 	adapter->stats.mgprc += er32(MGTPRC);
 	adapter->stats.mgpdc += er32(MGTPDC);
-
-	spin_unlock_irqrestore(&adapter->stats_lock, irq_flags);
 }
 
 /**
@@ -3059,9 +3046,6 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
 	struct e1000_hw *hw = &adapter->hw;
 	struct e1000_phy_regs *phy = &adapter->phy_regs;
 	int ret_val;
-	unsigned long irq_flags;
-
-	spin_lock_irqsave(&adapter->stats_lock, irq_flags);
 
 	if ((er32(STATUS) & E1000_STATUS_LU) &&
 	    (adapter->hw.phy.media_type == e1000_media_type_copper)) {
@@ -3092,8 +3076,6 @@ static void e1000_phy_read_status(struct e1000_adapter *adapter)
 		phy->stat1000 = 0;
 		phy->estatus = (ESTATUS_1000_TFULL | ESTATUS_1000_THALF);
 	}
-
-	spin_unlock_irqrestore(&adapter->stats_lock, irq_flags);
 }
 
 static void e1000_print_link_info(struct e1000_adapter *adapter)

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC PATCH 00/12] e1000e debug and protection patches, Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
[RFC PATCH 12/12] update version, Jesse Brandeburg, (Mon Sep 29, 11:20 pm)
[RFC PATCH 11/12] e1000e: write protect ICHx NVM to prevent ..., Jesse Brandeburg, (Mon Sep 29, 11:20 pm)
[RFC PATCH 09/12] e1000e: dump eeprom to dmesg for ich8/9, Jesse Brandeburg, (Mon Sep 29, 11:20 pm)
[RFC PATCH 08/12] e1000e: allow bad checksum, Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
Re: [RFC PATCH 08/12] e1000e: allow bad checksum, Jiri Kosina, (Tue Sep 30, 4:38 am)
[RFC PATCH 10/12] e1000e: Use set_memory_ro()/set_memory_rw(..., Jesse Brandeburg, (Mon Sep 29, 11:20 pm)
[RFC PATCH 07/12] e1000e: debug contention on NVM SWFLAG, Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
[PATCH] e1000e: prevent concurrent access to NVRAM, Thomas Gleixner, (Thu Oct 2, 7:42 pm)
Re: [PATCH] e1000e: prevent concurrent access to NVRAM, Jesse Brandeburg, (Thu Oct 2, 8:19 pm)
Re: [PATCH] e1000e: prevent concurrent access to NVRAM, Thomas Gleixner, (Thu Oct 2, 8:28 pm)
RE: [RFC PATCH 07/12] e1000e: debug contention on NVM SWFLAG, Brandeburg, Jesse, (Thu Oct 2, 12:27 pm)
[RFC PATCH 06/12] e1000e: drop stats lock, Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
[RFC PATCH 05/12] e1000e: fix lockdep issues, Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
[RFC PATCH 04/12] e1000e: do not ever sleep in interrupt con..., Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
[RFC PATCH 03/12] e1000e: reset swflag after resetting hardw..., Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
[RFC PATCH 01/12] x86: export set_memory_ro and set_memory_rw, Jesse Brandeburg, (Mon Sep 29, 11:19 pm)
[RFC PATCH 02/12] On Tue, 23 Sep 2008, David Miller wrote:, Jesse Brandeburg, (Mon Sep 29, 11:19 pm)