e1000e: balance semaphore put/get for 82573
authorSteven La <sla@riverbed.com>
Sat, 24 Aug 2013 00:19:37 +0000 (17:19 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Aug 2013 20:05:26 +0000 (16:05 -0400)
Steven (cc-ed) noticed an imbalance in semaphore put/get for
82573-based NICs. Don't we need something like the following
(untested) patch?

Signed-off-by: Steven La <sla@riverbed.com>
Acked-by: Arthur Kepner <akepner@riverbed.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/e1000e/82571.c

index 104fcec86af323dc6faab94d4581acb02d3e8729..8fed74e3fa53da73ff781a215ac26714911a015f 100644 (file)
@@ -1011,6 +1011,11 @@ static s32 e1000_reset_hw_82571(struct e1000_hw *hw)
 
        /* Must release MDIO ownership and mutex after MAC reset. */
        switch (hw->mac.type) {
+       case e1000_82573:
+               /* Release mutex only if the hw semaphore is acquired */
+               if (!ret_val)
+                       e1000_put_hw_semaphore_82573(hw);
+               break;
        case e1000_82574:
        case e1000_82583:
                /* Release mutex only if the hw semaphore is acquired */