aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Romieu <romieu@fr.zoreil.com>2012-01-31 05:20:34 -0500
committerFrancois Romieu <romieu@fr.zoreil.com>2012-01-31 08:32:45 -0500
commit6c05d25267ebb371c4311de6904f740342e82f7c (patch)
tree5bda6183c1b7dcbe28f67aec3c54112c4f02e976
parent934714d088f35b81edafdce89397969baf77fb8a (diff)
r8169: spinlock redux.
rtl8169_get_regs operates under RTNL and rtl task mutex whereas rtl_set_rx_mode is either called under RTNL or rtl task mutex protection. Signed-off-by: Francois Romieu <romieu@fr.zoreil.com> Cc: Hayes Wang <hayeswang@realtek.com>
-rw-r--r--drivers/net/ethernet/realtek/r8169.c8
1 files changed, 0 insertions, 8 deletions
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index 0377ffaa8bee..707742207c75 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -680,7 +680,6 @@ struct rtl8169_private {
680 struct pci_dev *pci_dev; 680 struct pci_dev *pci_dev;
681 struct net_device *dev; 681 struct net_device *dev;
682 struct napi_struct napi; 682 struct napi_struct napi;
683 spinlock_t lock;
684 u32 msg_enable; 683 u32 msg_enable;
685 u16 txd_version; 684 u16 txd_version;
686 u16 mac_version; 685 u16 mac_version;
@@ -1723,9 +1722,7 @@ static void rtl8169_get_regs(struct net_device *dev, struct ethtool_regs *regs,
1723 regs->len = R8169_REGS_SIZE; 1722 regs->len = R8169_REGS_SIZE;
1724 1723
1725 rtl_lock_work(tp); 1724 rtl_lock_work(tp);
1726 spin_lock_bh(&tp->lock);
1727 memcpy_fromio(p, tp->mmio_addr, regs->len); 1725 memcpy_fromio(p, tp->mmio_addr, regs->len);
1728 spin_unlock_bh(&tp->lock);
1729 rtl_unlock_work(tp); 1726 rtl_unlock_work(tp);
1730} 1727}
1731 1728
@@ -4151,7 +4148,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
4151 tp->do_ioctl = rtl_xmii_ioctl; 4148 tp->do_ioctl = rtl_xmii_ioctl;
4152 } 4149 }
4153 4150
4154 spin_lock_init(&tp->lock);
4155 mutex_init(&tp->wk.mutex); 4151 mutex_init(&tp->wk.mutex);
4156 4152
4157 /* Get MAC address */ 4153 /* Get MAC address */
@@ -6031,8 +6027,6 @@ static void rtl_set_rx_mode(struct net_device *dev)
6031 } 6027 }
6032 } 6028 }
6033 6029
6034 spin_lock_bh(&tp->lock);
6035
6036 tmp = (RTL_R32(RxConfig) & ~RX_CONFIG_ACCEPT_MASK) | rx_mode; 6030 tmp = (RTL_R32(RxConfig) & ~RX_CONFIG_ACCEPT_MASK) | rx_mode;
6037 6031
6038 if (tp->mac_version > RTL_GIGA_MAC_VER_06) { 6032 if (tp->mac_version > RTL_GIGA_MAC_VER_06) {
@@ -6046,8 +6040,6 @@ static void rtl_set_rx_mode(struct net_device *dev)
6046 RTL_W32(MAR0 + 0, mc_filter[0]); 6040 RTL_W32(MAR0 + 0, mc_filter[0]);
6047 6041
6048 RTL_W32(RxConfig, tmp); 6042 RTL_W32(RxConfig, tmp);
6049
6050 spin_unlock_bh(&tp->lock);
6051} 6043}
6052 6044
6053/** 6045/**