fm10k: do not enqueue mailbox when host not ready
authorNgai-Mint Kwan <ngai-mint.kwan@intel.com>
Mon, 6 Feb 2017 22:21:13 +0000 (14:21 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 6 Apr 2017 05:47:31 +0000 (22:47 -0700)
commit7d4fe0d123c318ad4282c9ac731b3383d983bf24
tree6639f08b479477fa2a370a63f4170be05cc903fb
parent16b1889f8bf655a9f4facfeff2979007f5e63974
fm10k: do not enqueue mailbox when host not ready

Interfaces will reset whenever the TX mailbox FIFO has become full. This
occurs more frequently whenever the IES API application is not running
to process and clear the messages in the FIFO. Thus, this could lead to
situations where the interface would enter an infinite reset loop. That
is: if the interface is trying to synchronize a huge number of unicast
and multicast entries with the IES API application, the TX mailbox FIFO
will become full and the interface resets. Once the interface exits
reset, it'll try to synchronize the unicast and multicast entries again.
Ergo, this creates an infinite loop. Other actions such as multiple
mulitcast mode or up/down transitions will fill the TX mailbox FIFO and
induce the interface to reset. To correct these situations, check if the
interface's "host_ready" flag is enabled before enqueuing any messages
to the TX mailbox FIFO. This check will be conducted by a function call.
Lastly, this issue mainly affects the PF and, thus, the VF is exempt.

Signed-off-by: Ngai-Mint Kwan <ngai-mint.kwan@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/fm10k/fm10k_netdev.c