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 | |
| 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>
| -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 | ||
