summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Rustad <mark.d.rustad@intel.com>2015-08-08 16:18:59 -0700
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2015-09-23 22:48:10 -0700
commit5967fe225686bcae17352de172573964a15b17d5 (patch)
tree52a2ebf4d374a712cd5e02bb99fbe408a9df77cb
parent449e21a92411ba35bfa68b4464aa7dbd1f705d28 (diff)
downloadlinux-5967fe225686bcae17352de172573964a15b17d5.tar.bz2
ixgbe: Correct error path in semaphore handling
The timeout path is supposed to release the semaphore, so do that. Signed-off-by: Mark Rustad <mark.d.rustad@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c
index ccf853f7b73e..c1d4584f6469 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x540.c
@@ -711,6 +711,11 @@ static s32 ixgbe_get_swfw_sync_semaphore(struct ixgbe_hw *hw)
usleep_range(50, 100);
}
+ /* Release semaphores and return error if SW NVM semaphore
+ * was not granted because we do not have access to the EEPROM
+ */
+ hw_dbg(hw, "REGSMP Software NVM semaphore not granted\n");
+ ixgbe_release_swfw_sync_semaphore(hw);
return IXGBE_ERR_EEPROM;
}