aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2012-05-14 09:26:06 +0000
committerDavid S. Miller <davem@davemloft.net>2012-05-15 13:41:43 -0400
commit3ab77bf271e6a41512e366dfa5110edb981ed1d3 (patch)
treed3ff26916d49bba577ea29fc58fe4f3319366056 /drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
parentcdc_ether: add Novatel USB551L device IDs for FLAG_WWAN (diff)
downloadlinux-dev-3ab77bf271e6a41512e366dfa5110edb981ed1d3.tar.xz
linux-dev-3ab77bf271e6a41512e366dfa5110edb981ed1d3.zip
pch_gbe: fix transmit races
Andy reported pch_gbe triggered "NETDEV WATCHDOG" errors. May 11 11:06:09 kontron kernel: WARNING: at net/sched/sch_generic.c:261 dev_watchdog+0x1ec/0x200() (Not tainted) May 11 11:06:09 kontron kernel: Hardware name: N/A May 11 11:06:09 kontron kernel: NETDEV WATCHDOG: eth0 (pch_gbe): transmit queue 0 timed out It seems pch_gbe has a racy tx path (races with TX completion path) Remove tx_queue_lock lock since it has no purpose, we must use tx_lock instead. Signed-off-by: Eric Dumazet <edumazet@google.com> Reported-by: Andy Cress <andy.cress@us.kontron.com> Tested-by: Andy Cress <andy.cress@us.kontron.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h')
-rw-r--r--drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
index dd14915f54bb..ba781747d174 100644
--- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe.h
@@ -584,7 +584,6 @@ struct pch_gbe_hw_stats {
/**
* struct pch_gbe_adapter - board specific private data structure
* @stats_lock: Spinlock structure for status
- * @tx_queue_lock: Spinlock structure for transmit
* @ethtool_lock: Spinlock structure for ethtool
* @irq_sem: Semaphore for interrupt
* @netdev: Pointer of network device structure
@@ -609,7 +608,6 @@ struct pch_gbe_hw_stats {
struct pch_gbe_adapter {
spinlock_t stats_lock;
- spinlock_t tx_queue_lock;
spinlock_t ethtool_lock;
atomic_t irq_sem;
struct net_device *netdev;