Browse Source

[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 <giles@thaumas.net>
Tested-by: Ralph Giles <giles@thaumas.net>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 13 years ago
parent
commit
c018d57803

+ 2
- 2
src/drivers/net/e1000/e1000_82540.c View File

271
  **/
271
  **/
272
 static s32 e1000_reset_hw_82540(struct e1000_hw *hw)
272
 static s32 e1000_reset_hw_82540(struct e1000_hw *hw)
273
 {
273
 {
274
-	u32 ctrl, icr, manc;
274
+	u32 ctrl, manc;
275
 	s32 ret_val = E1000_SUCCESS;
275
 	s32 ret_val = E1000_SUCCESS;
276
 
276
 
277
 	DEBUGFUNC("e1000_reset_hw_82540");
277
 	DEBUGFUNC("e1000_reset_hw_82540");
316
 	E1000_WRITE_REG(hw, E1000_MANC, manc);
316
 	E1000_WRITE_REG(hw, E1000_MANC, manc);
317
 
317
 
318
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
318
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
319
-	icr = E1000_READ_REG(hw, E1000_ICR);
319
+	E1000_READ_REG(hw, E1000_ICR);
320
 
320
 
321
 	return ret_val;
321
 	return ret_val;
322
 }
322
 }

+ 2
- 2
src/drivers/net/e1000/e1000_82541.c View File

304
  **/
304
  **/
305
 static s32 e1000_reset_hw_82541(struct e1000_hw *hw)
305
 static s32 e1000_reset_hw_82541(struct e1000_hw *hw)
306
 {
306
 {
307
-	u32 ledctl, ctrl, icr, manc;
307
+	u32 ledctl, ctrl, manc;
308
 
308
 
309
 	DEBUGFUNC("e1000_reset_hw_82541");
309
 	DEBUGFUNC("e1000_reset_hw_82541");
310
 
310
 
368
 	E1000_WRITE_REG(hw, E1000_IMC, 0xFFFFFFFF);
368
 	E1000_WRITE_REG(hw, E1000_IMC, 0xFFFFFFFF);
369
 
369
 
370
 	/* Clear any pending interrupt events. */
370
 	/* Clear any pending interrupt events. */
371
-	icr = E1000_READ_REG(hw, E1000_ICR);
371
+	E1000_READ_REG(hw, E1000_ICR);
372
 
372
 
373
 	return E1000_SUCCESS;
373
 	return E1000_SUCCESS;
374
 }
374
 }

+ 2
- 2
src/drivers/net/e1000/e1000_82542.c View File

186
 {
186
 {
187
 	struct e1000_bus_info *bus = &hw->bus;
187
 	struct e1000_bus_info *bus = &hw->bus;
188
 	s32 ret_val = E1000_SUCCESS;
188
 	s32 ret_val = E1000_SUCCESS;
189
-	u32 ctrl, icr;
189
+	u32 ctrl;
190
 
190
 
191
 	DEBUGFUNC("e1000_reset_hw_82542");
191
 	DEBUGFUNC("e1000_reset_hw_82542");
192
 
192
 
217
 	msec_delay(2);
217
 	msec_delay(2);
218
 
218
 
219
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
219
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
220
-	icr = E1000_READ_REG(hw, E1000_ICR);
220
+	E1000_READ_REG(hw, E1000_ICR);
221
 
221
 
222
 	if (hw->revision_id == E1000_REVISION_2) {
222
 	if (hw->revision_id == E1000_REVISION_2) {
223
 		if (bus->pci_cmd_word & CMD_MEM_WRT_INVALIDATE)
223
 		if (bus->pci_cmd_word & CMD_MEM_WRT_INVALIDATE)

+ 2
- 2
src/drivers/net/e1000/e1000_82543.c View File

907
  **/
907
  **/
908
 static s32 e1000_reset_hw_82543(struct e1000_hw *hw)
908
 static s32 e1000_reset_hw_82543(struct e1000_hw *hw)
909
 {
909
 {
910
-	u32 ctrl, icr;
910
+	u32 ctrl;
911
 	s32 ret_val = E1000_SUCCESS;
911
 	s32 ret_val = E1000_SUCCESS;
912
 
912
 
913
 	DEBUGFUNC("e1000_reset_hw_82543");
913
 	DEBUGFUNC("e1000_reset_hw_82543");
949
 
949
 
950
 	/* Masking off and clearing any pending interrupts */
950
 	/* Masking off and clearing any pending interrupts */
951
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
951
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
952
-	icr = E1000_READ_REG(hw, E1000_ICR);
952
+	E1000_READ_REG(hw, E1000_ICR);
953
 
953
 
954
 	return ret_val;
954
 	return ret_val;
955
 }
955
 }

+ 2
- 4
src/drivers/net/e1000/e1000_main.c View File

554
 	struct e1000_adapter *adapter = netdev_priv ( netdev );
554
 	struct e1000_adapter *adapter = netdev_priv ( netdev );
555
 	struct e1000_hw *hw = &adapter->hw;
555
 	struct e1000_hw *hw = &adapter->hw;
556
 	uint32_t rctl;
556
 	uint32_t rctl;
557
-	uint32_t icr;
558
 
557
 
559
 	DBG ( "e1000_close\n" );
558
 	DBG ( "e1000_close\n" );
560
 
559
 
561
-	/* Acknowledge interrupts */
562
-	icr = E1000_READ_REG ( hw, E1000_ICR );
563
-
560
+	/* Disable and acknowledge interrupts */
564
 	e1000_irq_disable ( adapter );
561
 	e1000_irq_disable ( adapter );
562
+	E1000_READ_REG ( hw, E1000_ICR );
565
 
563
 
566
 	/* disable receives */
564
 	/* disable receives */
567
 	rctl = E1000_READ_REG ( hw, E1000_RCTL );
565
 	rctl = E1000_READ_REG ( hw, E1000_RCTL );

+ 2
- 2
src/drivers/net/e1000e/e1000e_80003es2lan.c View File

841
  **/
841
  **/
842
 static s32 e1000e_reset_hw_80003es2lan(struct e1000_hw *hw)
842
 static s32 e1000e_reset_hw_80003es2lan(struct e1000_hw *hw)
843
 {
843
 {
844
-	u32 ctrl, icr;
844
+	u32 ctrl;
845
 	s32 ret_val;
845
 	s32 ret_val;
846
 
846
 
847
 	/*
847
 	/*
875
 
875
 
876
 	/* Clear any pending interrupt events. */
876
 	/* Clear any pending interrupt events. */
877
 	ew32(IMC, 0xffffffff);
877
 	ew32(IMC, 0xffffffff);
878
-	icr = er32(ICR);
878
+	er32(ICR);
879
 
879
 
880
 	ret_val = e1000e_check_alt_mac_addr_generic(hw);
880
 	ret_val = e1000e_check_alt_mac_addr_generic(hw);
881
 
881
 

+ 2
- 2
src/drivers/net/e1000e/e1000e_82571.c View File

919
  **/
919
  **/
920
 static s32 e1000e_reset_hw_82571(struct e1000_hw *hw)
920
 static s32 e1000e_reset_hw_82571(struct e1000_hw *hw)
921
 {
921
 {
922
-	u32 ctrl, extcnf_ctrl, ctrl_ext, icr;
922
+	u32 ctrl, extcnf_ctrl, ctrl_ext;
923
 	s32 ret_val;
923
 	s32 ret_val;
924
 	u16 i = 0;
924
 	u16 i = 0;
925
 
925
 
1004
 
1004
 
1005
 	/* Clear any pending interrupt events. */
1005
 	/* Clear any pending interrupt events. */
1006
 	ew32(IMC, 0xffffffff);
1006
 	ew32(IMC, 0xffffffff);
1007
-	icr = er32(ICR);
1007
+	er32(ICR);
1008
 
1008
 
1009
 	/* Install any alternate MAC address into RAR0 */
1009
 	/* Install any alternate MAC address into RAR0 */
1010
 	ret_val = e1000e_check_alt_mac_addr_generic(hw);
1010
 	ret_val = e1000e_check_alt_mac_addr_generic(hw);

+ 2
- 2
src/drivers/net/e1000e/e1000e_ich8lan.c View File

2486
 {
2486
 {
2487
 	struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan;
2487
 	struct e1000_dev_spec_ich8lan *dev_spec = &hw->dev_spec.ich8lan;
2488
 	u16 reg;
2488
 	u16 reg;
2489
-	u32 ctrl, icr, kab;
2489
+	u32 ctrl, kab;
2490
 	s32 ret_val;
2490
 	s32 ret_val;
2491
 
2491
 
2492
 	/*
2492
 	/*
2594
 		ew32(CRC_OFFSET, 0x65656565);
2594
 		ew32(CRC_OFFSET, 0x65656565);
2595
 
2595
 
2596
 	ew32(IMC, 0xffffffff);
2596
 	ew32(IMC, 0xffffffff);
2597
-	icr = er32(ICR);
2597
+	er32(ICR);
2598
 
2598
 
2599
 	kab = er32(KABGTXD);
2599
 	kab = er32(KABGTXD);
2600
 	kab |= E1000_KABGTXD_BGSQLBIAS;
2600
 	kab |= E1000_KABGTXD_BGSQLBIAS;

+ 2
- 4
src/drivers/net/e1000e/e1000e_main.c View File

873
 	struct e1000_adapter *adapter = netdev_priv ( netdev );
873
 	struct e1000_adapter *adapter = netdev_priv ( netdev );
874
 	struct e1000_hw *hw = &adapter->hw;
874
 	struct e1000_hw *hw = &adapter->hw;
875
 	uint32_t rctl;
875
 	uint32_t rctl;
876
-	uint32_t icr;
877
 
876
 
878
 	DBGP ( "e1000_close\n" );
877
 	DBGP ( "e1000_close\n" );
879
 
878
 
880
-	/* Acknowledge interrupts */
881
-	icr = E1000_READ_REG ( hw, E1000_ICR );
882
-
879
+	/* Disable and acknowledge interrupts */
883
 	e1000e_irq_disable ( adapter );
880
 	e1000e_irq_disable ( adapter );
881
+	E1000_READ_REG ( hw, E1000_ICR );
884
 
882
 
885
 	/* disable receives */
883
 	/* disable receives */
886
 	rctl = E1000_READ_REG ( hw, E1000_RCTL );
884
 	rctl = E1000_READ_REG ( hw, E1000_RCTL );

+ 2
- 2
src/drivers/net/igb/igb_82575.c View File

959
  **/
959
  **/
960
 static s32 igb_reset_hw_82575(struct e1000_hw *hw)
960
 static s32 igb_reset_hw_82575(struct e1000_hw *hw)
961
 {
961
 {
962
-	u32 ctrl, icr;
962
+	u32 ctrl;
963
 	s32 ret_val;
963
 	s32 ret_val;
964
 
964
 
965
 	DEBUGFUNC("igb_reset_hw_82575");
965
 	DEBUGFUNC("igb_reset_hw_82575");
1009
 
1009
 
1010
 	/* Clear any pending interrupt events. */
1010
 	/* Clear any pending interrupt events. */
1011
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
1011
 	E1000_WRITE_REG(hw, E1000_IMC, 0xffffffff);
1012
-	icr = E1000_READ_REG(hw, E1000_ICR);
1012
+	E1000_READ_REG(hw, E1000_ICR);
1013
 
1013
 
1014
 	/* Install any alternate MAC address into RAR0 */
1014
 	/* Install any alternate MAC address into RAR0 */
1015
 	ret_val = igb_check_alt_mac_addr_generic(hw);
1015
 	ret_val = igb_check_alt_mac_addr_generic(hw);

+ 2
- 4
src/drivers/net/igb/igb_main.c View File

639
 	struct igb_adapter *adapter = netdev_priv ( netdev );
639
 	struct igb_adapter *adapter = netdev_priv ( netdev );
640
 	struct e1000_hw *hw = &adapter->hw;
640
 	struct e1000_hw *hw = &adapter->hw;
641
 	uint32_t rctl;
641
 	uint32_t rctl;
642
-	uint32_t icr;
643
 
642
 
644
 	DBGP ( "igb_close\n" );
643
 	DBGP ( "igb_close\n" );
645
 
644
 
646
-	/* Acknowledge interrupts */
647
-	icr = E1000_READ_REG ( hw, E1000_ICR );
648
-
645
+	/* Disable and acknowledge interrupts */
649
 	igb_irq_disable ( adapter );
646
 	igb_irq_disable ( adapter );
647
+	E1000_READ_REG ( hw, E1000_ICR );
650
 
648
 
651
 	/* disable receives */
649
 	/* disable receives */
652
 	rctl = E1000_READ_REG ( hw, E1000_RCTL );
650
 	rctl = E1000_READ_REG ( hw, E1000_RCTL );

+ 2
- 2
src/drivers/net/igbvf/igbvf_main.c View File

666
 	struct igbvf_adapter *adapter = netdev_priv ( netdev );
666
 	struct igbvf_adapter *adapter = netdev_priv ( netdev );
667
         struct e1000_hw *hw = &adapter->hw;
667
         struct e1000_hw *hw = &adapter->hw;
668
         uint32_t rxdctl;
668
         uint32_t rxdctl;
669
-        uint32_t icr;
670
 
669
 
671
         DBG ( "igbvf_close\n" );
670
         DBG ( "igbvf_close\n" );
672
-        icr = er32(EICR);
673
 
671
 
672
+	/* Disable and acknowledge interrupts */
674
         igbvf_irq_disable ( adapter );
673
         igbvf_irq_disable ( adapter );
674
+        er32(EICR);
675
 
675
 
676
         /* disable receives */
676
         /* disable receives */
677
         rxdctl = er32 ( RXDCTL(0) );
677
         rxdctl = er32 ( RXDCTL(0) );

Loading…
Cancel
Save