net/bnx2x: fix race for periodic flags
authorRasesh Mody <rmody@marvell.com>
Fri, 12 Apr 2019 01:47:41 +0000 (18:47 -0700)
committerFerruh Yigit <ferruh.yigit@intel.com>
Fri, 19 Apr 2019 12:51:54 +0000 (14:51 +0200)
commitc19eafccb22e1b1ca52439a936908cfd6fd12ff1
tree1e8dbcd990c20a6e1b5c64b4b6162d572f3ee7aa
parente166e0db8cf6c0e391a40f1a75a678bec930c970
net/bnx2x: fix race for periodic flags

The periodic callout function and the interrupt handler both modify the
periodic flags. There is a possible race condition when an application
is going through dev_stop()/dev_start() and an interrupt handler is
invoked. We also need to ensure that periodic polling is not invoked in
interrupt context.

This patch handles such case by using separate variable to check for
interrupt context. Also, atomically load and store the periodic flag
value.

Fixes: 0f6ebeee2402 ("net/bnx2x: fix call to link handling periodic function")
Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rmody@marvell.com>
drivers/net/bnx2x/bnx2x_ethdev.c