can: peak_pciefd: pucan_handle_status(): fix a potential starvation issue in TX path
authorStephane Grosjean <s.grosjean@peak-system.com>
Wed, 23 Jun 2021 14:26:00 +0000 (16:26 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Thu, 24 Jun 2021 06:40:10 +0000 (08:40 +0200)
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>
drivers/net/can/peak_canfd/peak_canfd.c

index 00847cbaf7b626fabbf71b38bf3630aa97bced60..d08718e98e110206f0ef11085102d0e4a38fa2e8 100644 (file)
@@ -351,8 +351,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;
        }