From c018d57803f318e3d3419219f340c004738dda6f Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 16 Mar 2011 18:58:52 +0000 Subject: [PATCH] [e1000] Remove unused variable when ICR register is simply cleared On reset and close, the ICR register is read to clear any pending interrupts, but the value is simply ignored. Avoid assigning the value to a variable, to inhibit a warning from gcc 4.6. Also fix a potential race condition in reset routines which clear interrupts before disabling them. Reported-by: Ralph Giles Tested-by: Ralph Giles Signed-off-by: Michael Brown --- src/drivers/net/e1000/e1000_82540.c | 4 ++-- src/drivers/net/e1000/e1000_82541.c | 4 ++-- src/drivers/net/e1000/e1000_82542.c | 4 ++-- src/drivers/net/e1000/e1000_82543.c | 4 ++-- src/drivers/net/e1000/e1000_main.c | 6 ++---- src/drivers/net/e1000e/e1000e_80003es2lan.c | 4 ++-- src/drivers/net/e1000e/e1000e_82571.c | 4 ++-- src/drivers/net/e1000e/e1000e_ich8lan.c | 4 ++-- src/drivers/net/e1000e/e1000e_main.c | 6 ++---- src/drivers/net/igb/igb_82575.c | 4 ++-- src/drivers/net/igb/igb_main.c | 6 ++---- src/drivers/net/igbvf/igbvf_main.c | 4 ++-- 12 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/drivers/net/e1000/e1000_82540.c b/src/drivers/net/e1000/e1000_82540.c index 935f0a33..41f3f979 100644 --- a/src/drivers/net/e1000/e1000_82540.c +++ b/src/drivers/net/e1000/e1000_82540.c @@ -271,7 +271,7 @@ void e1000_init_function_pointers_82540(struct e1000_hw *hw) **/ static s32 e1000_reset_hw_82540(struct e1000_hw *hw) { - u32 ctrl, icr, manc; + u32 ctrl, manc; s32 ret_val = E1000_SUCCESS; DEBUGFUNC("e1000_reset_hw_82540"); @@ -316,7 +316,7 @@ static s32 e1000_reset_hw_82540(struct e1000_hw *hw) E1000_WRITE_REG(hw, E1000_MANC, manc); E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff); - icr = E1000_READ_REG(hw, E1000_ICR); + E1000_READ_REG(hw, E1000_ICR); return ret_val; } diff --git a/src/drivers/net/e1000/e1000_82541.c b/src/drivers/net/e1000/e1000_82541.c index f1080f68..2d1aecc7 100644 --- a/src/drivers/net/e1000/e1000_82541.c +++ b/src/drivers/net/e1000/e1000_82541.c @@ -304,7 +304,7 @@ void e1000_init_function_pointers_82541(struct e1000_hw *hw) **/ static s32 e1000_reset_hw_82541(struct e1000_hw *hw) { - u32 ledctl, ctrl, icr, manc; + u32 ledctl, ctrl, manc; DEBUGFUNC("e1000_reset_hw_82541"); @@ -368,7 +368,7 @@ static s32 e1000_reset_hw_82541(struct e1000_hw *hw) E1000_WRITE_REG(hw, E1000_IMC, 0xFFFFFFFF); /* Clear any pending interrupt events. */ - icr = E1000_READ_REG(hw, E1000_ICR); + E1000_READ_REG(hw, E1000_ICR); return E1000_SUCCESS; } diff --git a/src/drivers/net/e1000/e1000_82542.c b/src/drivers/net/e1000/e1000_82542.c index 45f2429d..b6d5202c 100644 --- a/src/drivers/net/e1000/e1000_82542.c +++ b/src/drivers/net/e1000/e1000_82542.c @@ -186,7 +186,7 @@ static s32 e1000_reset_hw_82542(struct e1000_hw *hw) { struct e1000_bus_info *bus = &hw->bus; s32 ret_val = E1000_SUCCESS; - u32 ctrl, icr; + u32 ctrl; DEBUGFUNC("e1000_reset_hw_82542"); @@ -217,7 +217,7 @@ static s32 e1000_reset_hw_82542(struct e1000_hw *hw) msec_delay(2); E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff); - icr = E1000_READ_REG(hw, E1000_ICR); + E1000_READ_REG(hw, E1000_ICR); if (hw->revision_id == E1000_REVISION_2) { if (bus->pci_cmd_word & CMD_MEM_WRT_INVALIDATE) diff --git a/src/drivers/net/e1000/e1000_82543.c b/src/drivers/net/e1000/e1000_82543.c index 56360944..848c99e7 100644 --- a/src/drivers/net/e1000/e1000_82543.c +++ b/src/drivers/net/e1000/e1000_82543.c @@ -907,7 +907,7 @@ static s32 e1000_phy_hw_reset_82543(struct e1000_hw *hw) **/ static s32 e1000_reset_hw_82543(struct e1000_hw *hw) { - u32 ctrl, icr; + u32 ctrl; s32 ret_val = E1000_SUCCESS; DEBUGFUNC("e1000_reset_hw_82543"); @@ -949,7 +949,7 @@ static s32 e1000_reset_hw_82543(struct e1000_hw *hw) /* Masking off and clearing any pending interrupts */ E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff); - icr = E1000_READ_REG(hw, E1000_ICR); + E1000_READ_REG(hw, E1000_ICR); return ret_val; } diff --git a/src/drivers/net/e1000/e1000_main.c b/src/drivers/net/e1000/e1000_main.c index 2708e63f..653323b5 100644 --- a/src/drivers/net/e1000/e1000_main.c +++ b/src/drivers/net/e1000/e1000_main.c @@ -554,14 +554,12 @@ static void e1000_close ( struct net_device *netdev ) struct e1000_adapter *adapter = netdev_priv ( netdev ); struct e1000_hw *hw = &adapter->hw; uint32_t rctl; - uint32_t icr; DBG ( "e1000_close\n" ); - /* Acknowledge interrupts */ - icr = E1000_READ_REG ( hw, E1000_ICR ); - + /* Disable and acknowledge interrupts */ e1000_irq_disable ( adapter ); + E1000_READ_REG ( hw, E1000_ICR ); /* disable receives */ rctl = E1000_READ_REG ( hw, E1000_RCTL ); diff --git a/src/drivers/net/e1000e/e1000e_80003es2lan.c b/src/drivers/net/e1000e/e1000e_80003es2lan.c index a9ebc77e..a3eed9b7 100644 --- a/src/drivers/net/e1000e/e1000e_80003es2lan.c +++ b/src/drivers/net/e1000e/e1000e_80003es2lan.c @@ -841,7 +841,7 @@ static s32 e1000e_get_link_up_info_80003es2lan(struct e1000_hw *hw, u16 *speed, **/ static s32 e1000e_reset_hw_80003es2lan(struct e1000_hw *hw) { - u32 ctrl, icr; + u32 ctrl; s32 ret_val; /* @@ -875,7 +875,7 @@ static s32 e1000e_reset_hw_80003es2lan(struct e1000_hw *hw) /* Clear any pending interrupt events. */ ew32(IMC, 0xffffffff); - icr = er32(ICR); + er32(ICR); ret_val = e1000e_check_alt_mac_addr_generic(hw); diff --git a/src/drivers/net/e1000e/e1000e_82571.c b/src/drivers/net/e1000e/e1000e_82571.c index 840e29b2..a061d6d4 100644 --- a/src/drivers/net/e1000e/e1000e_82571.c +++ b/src/drivers/net/e1000e/e1000e_82571.c @@ -919,7 +919,7 @@ out: **/ static s32 e1000e_reset_hw_82571(struct e1000_hw *hw) { - u32 ctrl, extcnf_ctrl, ctrl_ext, icr; + u32 ctrl, extcnf_ctrl, ctrl_ext; s32 ret_val; u16 i = 0; @@ -1004,7 +1004,7 @@ static s32 e1000e_reset_hw_82571(struct e1000_hw *hw) /* Clear any pending interrupt events. */ ew32(IMC, 0xffffffff); - icr = er32(ICR); + er32(ICR); /* Install any alternate MAC address into RAR0 */ ret_val = e1000e_check_alt_mac_addr_generic(hw); diff --git a/src/drivers/net/e1000e/e1000e_ich8lan.c b/src/drivers/net/e1000e/e1000e_ich8lan.c index 1f9b3c4d..7b9a49b9 100644 --- a/src/drivers/net/e1000e/e1000e_ich8lan.c +++ b/src/drivers/net/e1000e/e1000e_ich8lan.c @@ -2486,7 +2486,7 @@ static s32 e1000e_reset_hw_ich8lan(struct e1000_hw *hw) { struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan; u16 reg; - u32 ctrl, icr, kab; + u32 ctrl, kab; s32 ret_val; /* @@ -2594,7 +2594,7 @@ static s32 e1000e_reset_hw_ich8lan(struct e1000_hw *hw) ew32(CRC_OFFSET, 0x65656565); ew32(IMC, 0xffffffff); - icr = er32(ICR); + er32(ICR); kab = er32(KABGTXD); kab |= E1000_KABGTXD_BGSQLBIAS; diff --git a/src/drivers/net/e1000e/e1000e_main.c b/src/drivers/net/e1000e/e1000e_main.c index cfe114bd..e5cb2490 100644 --- a/src/drivers/net/e1000e/e1000e_main.c +++ b/src/drivers/net/e1000e/e1000e_main.c @@ -873,14 +873,12 @@ static void e1000e_close ( struct net_device *netdev ) struct e1000_adapter *adapter = netdev_priv ( netdev ); struct e1000_hw *hw = &adapter->hw; uint32_t rctl; - uint32_t icr; DBGP ( "e1000_close\n" ); - /* Acknowledge interrupts */ - icr = E1000_READ_REG ( hw, E1000_ICR ); - + /* Disable and acknowledge interrupts */ e1000e_irq_disable ( adapter ); + E1000_READ_REG ( hw, E1000_ICR ); /* disable receives */ rctl = E1000_READ_REG ( hw, E1000_RCTL ); diff --git a/src/drivers/net/igb/igb_82575.c b/src/drivers/net/igb/igb_82575.c index fe25e2e7..b5b615ad 100644 --- a/src/drivers/net/igb/igb_82575.c +++ b/src/drivers/net/igb/igb_82575.c @@ -959,7 +959,7 @@ void igb_shutdown_serdes_link_82575(struct e1000_hw *hw) **/ static s32 igb_reset_hw_82575(struct e1000_hw *hw) { - u32 ctrl, icr; + u32 ctrl; s32 ret_val; DEBUGFUNC("igb_reset_hw_82575"); @@ -1009,7 +1009,7 @@ static s32 igb_reset_hw_82575(struct e1000_hw *hw) /* Clear any pending interrupt events. */ E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff); - icr = E1000_READ_REG(hw, E1000_ICR); + E1000_READ_REG(hw, E1000_ICR); /* Install any alternate MAC address into RAR0 */ ret_val = igb_check_alt_mac_addr_generic(hw); diff --git a/src/drivers/net/igb/igb_main.c b/src/drivers/net/igb/igb_main.c index 8d641528..9295c2c8 100644 --- a/src/drivers/net/igb/igb_main.c +++ b/src/drivers/net/igb/igb_main.c @@ -639,14 +639,12 @@ static void igb_close ( struct net_device *netdev ) struct igb_adapter *adapter = netdev_priv ( netdev ); struct e1000_hw *hw = &adapter->hw; uint32_t rctl; - uint32_t icr; DBGP ( "igb_close\n" ); - /* Acknowledge interrupts */ - icr = E1000_READ_REG ( hw, E1000_ICR ); - + /* Disable and acknowledge interrupts */ igb_irq_disable ( adapter ); + E1000_READ_REG ( hw, E1000_ICR ); /* disable receives */ rctl = E1000_READ_REG ( hw, E1000_RCTL ); diff --git a/src/drivers/net/igbvf/igbvf_main.c b/src/drivers/net/igbvf/igbvf_main.c index da558050..1f7e1dfd 100644 --- a/src/drivers/net/igbvf/igbvf_main.c +++ b/src/drivers/net/igbvf/igbvf_main.c @@ -666,12 +666,12 @@ static void igbvf_close ( struct net_device *netdev ) struct igbvf_adapter *adapter = netdev_priv ( netdev ); struct e1000_hw *hw = &adapter->hw; uint32_t rxdctl; - uint32_t icr; DBG ( "igbvf_close\n" ); - icr = er32(EICR); + /* Disable and acknowledge interrupts */ igbvf_irq_disable ( adapter ); + er32(EICR); /* disable receives */ rxdctl = er32 ( RXDCTL(0) );