Skip to content

Commit a3f0b38

Browse files
Shannon NelsonJeff Kirsher
authored andcommitted
i40e: poll on NVM semaphore only if not other error
Only poll on the NVM semaphore if there's time left on a previous reservation. Also, add a little more info to debug messages. Change-ID: I2439bf870b95a28b810dcb5cca1c06440463cf8a Signed-off-by: Shannon Nelson <shannon.nelson@intel.com> Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Tested-by: Jim Young <jamesx.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
1 parent 0fdd052 commit a3f0b38

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

drivers/net/ethernet/intel/i40e/i40e_nvm.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,15 @@ i40e_status i40e_acquire_nvm(struct i40e_hw *hw,
9393
/* Store the timeout */
9494
hw->nvm.hw_semaphore_timeout = I40E_MS_TO_GTIME(time_left) + gtime;
9595

96-
if (ret_code) {
96+
if (ret_code)
97+
i40e_debug(hw, I40E_DEBUG_NVM,
98+
"NVM acquire type %d failed time_left=%llu ret=%d aq_err=%d\n",
99+
access, time_left, ret_code, hw->aq.asq_last_status);
100+
101+
if (ret_code && time_left) {
97102
/* Poll until the current NVM owner timeouts */
98103
timeout = I40E_MS_TO_GTIME(I40E_MAX_NVM_TIMEOUT) + gtime;
99-
while (gtime < timeout) {
104+
while ((gtime < timeout) && time_left) {
100105
usleep_range(10000, 20000);
101106
gtime = rd32(hw, I40E_GLVFGEN_TIMER);
102107
ret_code = i40e_aq_request_resource(hw,
@@ -112,8 +117,8 @@ i40e_status i40e_acquire_nvm(struct i40e_hw *hw,
112117
if (ret_code) {
113118
hw->nvm.hw_semaphore_timeout = 0;
114119
i40e_debug(hw, I40E_DEBUG_NVM,
115-
"NVM acquire timed out, wait %llu ms before trying again.\n",
116-
time_left);
120+
"NVM acquire timed out, wait %llu ms before trying again. status=%d aq_err=%d\n",
121+
time_left, ret_code, hw->aq.asq_last_status);
117122
}
118123
}
119124

0 commit comments

Comments
 (0)