summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Grosjean <s.grosjean@peak-system.com>2021-06-23 17:26:00 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-07-20 17:17:29 +0300
commitdada02ccd86e0d68e4c2ab495a457f62a697cbf3 (patch)
tree49f24abce8bc7e66d236274f746329f4b87b5b95
parent2c9e095989b4779767bca0a532f168e80ed09ec7 (diff)
downloadlinux-dada02ccd86e0d68e4c2ab495a457f62a697cbf3.tar.xz
can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in TX path
commit b17233d385d0b6b43ecf81d43008cb1bbb008166 upstream. Rather than just indicating that transmission can start, this patch requires the explicit flushing of the network TX queue when the driver is informed by the device that it can transmit, next to its configuration. In this way, if frames have already been written by the application, they will actually be transmitted. Fixes: ffd137f7043c ("can: peak/pcie_fd: remove useless code when interface starts") Link: https://lore.kernel.org/r/20210623142600.149904-1-s.grosjean@peak-system.com Cc: linux-stable <stable@vger.kernel.org> Signed-off-by: Stephane Grosjean <s.grosjean@peak-system.com> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/net/can/peak_canfd/peak_canfd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/can/peak_canfd/peak_canfd.c b/drivers/net/can/peak_canfd/peak_canfd.c
index a38dc6d9c978..96a7c281175d 100644
--- a/drivers/net/can/peak_canfd/peak_canfd.c
+++ b/drivers/net/can/peak_canfd/peak_canfd.c
@@ -346,8 +346,8 @@ static int pucan_handle_status(struct peak_canfd_priv *priv,
return err;
}
- /* start network queue (echo_skb array is empty) */
- netif_start_queue(ndev);
+ /* wake network queue up (echo_skb array is empty) */
+ netif_wake_queue(ndev);
return 0;
}