summaryrefslogtreecommitdiffstats
path: root/drivers/net/can/usb/Kconfig
diff options
context:
space:
mode:
authorMarc Kleine-Budde <mkl@pengutronix.de>2023-06-02 09:29:07 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2023-07-28 09:45:25 +0200
commit24bc41b4558347672a3db61009c339b1f5692169 (patch)
tree7570ccd9412a428d8c477b9c761c62701f6e91b7 /drivers/net/can/usb/Kconfig
parentcan: rx-offload: add can_rx_offload_get_echo_skb_queue_tail() (diff)
downloadlinux-24bc41b4558347672a3db61009c339b1f5692169.tar.xz
linux-24bc41b4558347672a3db61009c339b1f5692169.zip
can: gs_usb: convert to NAPI/rx-offload to avoid OoO reception
The driver used to pass received CAN frames/skbs to the network stack with netif_rx(). In netif_rx() the skbs are queued to the local CPU. If IRQs are handled in round robin, OoO packets may occur. To avoid out-of-order reception convert the driver from netif_rx() to NAPI. For USB devices with timestamping support use the rx-offload helper can_rx_offload_queue_timestamp() for the RX, and can_rx_offload_get_echo_skb_queue_timestamp() for the TX path. Devices without timestamping support use can_rx_offload_queue_tail() for RX, and can_rx_offload_get_echo_skb_queue_tail() for the TX path. Link: https://lore.kernel.org/all/559D628C.5020100@hartkopp.net Link: https://github.com/candle-usb/candleLight_fw/issues/166 Link: https://lore.kernel.org/all/20230718-gs_usb-rx-offload-v2-3-716e542d14d5@pengutronix.de Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'drivers/net/can/usb/Kconfig')
-rw-r--r--drivers/net/can/usb/Kconfig1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/can/usb/Kconfig b/drivers/net/can/usb/Kconfig
index 58fcd2b34820..d1450722cb3c 100644
--- a/drivers/net/can/usb/Kconfig
+++ b/drivers/net/can/usb/Kconfig
@@ -52,6 +52,7 @@ config CAN_F81604
config CAN_GS_USB
tristate "Geschwister Schneider UG and candleLight compatible interfaces"
+ select CAN_RX_OFFLOAD
help
This driver supports the Geschwister Schneider and
bytewerk.org candleLight compatible