| From b17233d385d0b6b43ecf81d43008cb1bbb008166 Mon Sep 17 00:00:00 2001 |
| From: Stephane Grosjean <s.grosjean@peak-system.com> |
| Date: Wed, 23 Jun 2021 16:26:00 +0200 |
| Subject: can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in TX path |
| |
| From: Stephane Grosjean <s.grosjean@peak-system.com> |
| |
| 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> |
| |
| --- |
| drivers/net/can/peak_canfd/peak_canfd.c | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/can/peak_canfd/peak_canfd.c |
| +++ b/drivers/net/can/peak_canfd/peak_canfd.c |
| @@ -351,8 +351,8 @@ static int pucan_handle_status(struct pe |
| 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; |
| } |