]> rtime.felk.cvut.cz Git - zynq/linux.git/commit
net: ethernet: xilinx: Fix lost wake-up scenario in xmit
authorKedareswara rao Appana <appanad@xilinx.com>
Mon, 18 Sep 2017 05:35:45 +0000 (11:05 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 15 Mar 2018 14:17:44 +0000 (15:17 +0100)
commit6231aebb2f04b9f6737b854e8943405b0800746c
treef5d335b1efcdad4e7735e9227583ba66cb5d8407
parent798dc6db5a31e849455752b2d99e7fda5bedbbd5
net: ethernet: xilinx: Fix lost wake-up scenario in xmit

In ndo_start_xmit we are checking for free BD count
and incase there are no available BD's we stop
the networking stack.

If these sequence of operation are preemted then
it will lead to classic Lost Wake-Up Problem.

If interrupt comes after xmit has checked  BD
count and TX post processing clears up the BD and
issue wake-up and then later xmit goes for a wait.
There is no one to wake up xmit and as wake-up
event is lost.

Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/net/ethernet/xilinx/xilinx_axienet.h
drivers/net/ethernet/xilinx/xilinx_axienet_main.c