diff options
author | Chien Tung <chien.tin.tung@intel.com> | 2010-05-25 11:13:09 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2010-05-25 12:53:06 -0400 |
commit | b17e0969dc184c66ed8934e130344621829484a3 (patch) | |
tree | 295bac6059854638bdf75db5c09a6fdd6de831bf /drivers/infiniband | |
parent | df02902313feb1472bc6ec16e486f72b39e9d4b2 (diff) |
RDMA/nes: Fix incorrect unlock in nes_process_mac_intr()
Commit ce6e74f2 ("RDMA/nes: Make nesadapter->phy_lock usage
consistent") introduced a problem where phy_lock was only unlocked
within an if statement and so nes_process_mac_intr() could return with
phy_lock still held. Fix this.
This was discovered because of the sparse warning:
drivers/infiniband/hw/nes/nes_hw.c:2643:9: warning: context imbalance in 'nes_process_mac_intr' - different lock contexts for basic block
Reported-by: Roland Dreier <rdreier@cisco.com>
Signed-off-by: Chien Tung <chien.tin.tung@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r-- | drivers/infiniband/hw/nes/nes_hw.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/nes/nes_hw.c b/drivers/infiniband/hw/nes/nes_hw.c index bb9c77504fe2..57874a165083 100644 --- a/drivers/infiniband/hw/nes/nes_hw.c +++ b/drivers/infiniband/hw/nes/nes_hw.c | |||
@@ -2584,7 +2584,6 @@ static void nes_process_mac_intr(struct nes_device *nesdev, u32 mac_number) | |||
2584 | break; | 2584 | break; |
2585 | } | 2585 | } |
2586 | } | 2586 | } |
2587 | spin_unlock_irqrestore(&nesadapter->phy_lock, flags); | ||
2588 | 2587 | ||
2589 | if (phy_data & 0x0004) { | 2588 | if (phy_data & 0x0004) { |
2590 | if (wide_ppm_offset && | 2589 | if (wide_ppm_offset && |
@@ -2639,6 +2638,8 @@ static void nes_process_mac_intr(struct nes_device *nesdev, u32 mac_number) | |||
2639 | } | 2638 | } |
2640 | } | 2639 | } |
2641 | 2640 | ||
2641 | spin_unlock_irqrestore(&nesadapter->phy_lock, flags); | ||
2642 | |||
2642 | nesadapter->mac_sw_state[mac_number] = NES_MAC_SW_IDLE; | 2643 | nesadapter->mac_sw_state[mac_number] = NES_MAC_SW_IDLE; |
2643 | } | 2644 | } |
2644 | 2645 | ||