Skip to content

Commit

Permalink
fm10k: reset head instead of calling update_max_size
Browse files Browse the repository at this point in the history
When we forcefully shutdown the mailbox, we then go about resetting max
size to 0, and clearing all messages in the FIFO. Instead, we should
just reset the head pointer so that the FIFO becomes empty, rather than
changing the max size to 0. This helps prevent increment in tx_dropped
counter during mailbox negotiation, which is confusing to viewers of
Linux ethtool statistics output.

Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Acked-by: Matthew Vick <matthew.vick@intel.com>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
  • Loading branch information
Jeff Kirsher committed Apr 14, 2015
1 parent 750c607 commit 78288e3
Showing 1 changed file with 16 additions and 2 deletions.
18 changes: 16 additions & 2 deletions drivers/net/ethernet/intel/fm10k/fm10k_mbx.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,18 @@ static u16 fm10k_fifo_head_drop(struct fm10k_mbx_fifo *fifo)
return len;
}

/**
* fm10k_fifo_drop_all - Drop all messages in FIFO
* @fifo: pointer to FIFO
*
* This function resets the head pointer to drop all messages in the FIFO,
* and ensure the FIFO is empty.
**/
static void fm10k_fifo_drop_all(struct fm10k_mbx_fifo *fifo)
{
fifo->head = fifo->tail;
}

/**
* fm10k_mbx_index_len - Convert a head/tail index into a length value
* @mbx: pointer to mailbox
Expand Down Expand Up @@ -1370,9 +1382,11 @@ static void fm10k_mbx_disconnect(struct fm10k_hw *hw,
timeout -= FM10K_MBX_POLL_DELAY;
} while ((timeout > 0) && (mbx->state != FM10K_STATE_CLOSED));

/* in case we didn't close just force the mailbox into shutdown */
/* in case we didn't close, just force the mailbox into shutdown and
* drop all left over messages in the FIFO.
*/
fm10k_mbx_connect_reset(mbx);
fm10k_mbx_update_max_size(mbx, 0);
fm10k_fifo_drop_all(&mbx->tx);

fm10k_write_reg(hw, mbx->mbmem_reg, 0);
}
Expand Down

0 comments on commit 78288e3

Please sign in to comment.