diff options
| author | Axel Forsman <[email protected]> | 2025-05-20 11:43:31 +0000 |
|---|---|---|
| committer | Marc Kleine-Budde <[email protected]> | 2025-05-20 19:35:39 +0000 |
| commit | 8256e0ca601051933e9395746817f3801fa9a6bf (patch) | |
| tree | 2687ed76eb8d4c3ccbd7b4e5eb454177d833fef5 /lib/trace_readwrite.c | |
| parent | can: kvaser_pciefd: Force IRQ edge in case of nested IRQ (diff) | |
| download | kernel-8256e0ca601051933e9395746817f3801fa9a6bf.tar.gz kernel-8256e0ca601051933e9395746817f3801fa9a6bf.zip | |
can: kvaser_pciefd: Fix echo_skb race
The functions kvaser_pciefd_start_xmit() and
kvaser_pciefd_handle_ack_packet() raced to stop/wake TX queues and
get/put echo skbs, as kvaser_pciefd_can->echo_lock was only ever taken
when transmitting and KCAN_TX_NR_PACKETS_CURRENT gets decremented
prior to handling of ACKs. E.g., this caused the following error:
can_put_echo_skb: BUG! echo_skb 5 is occupied!
Instead, use the synchronization helpers in netdev_queues.h. As those
piggyback on BQL barriers, start updating in-flight packets and bytes
counts as well.
Cc: [email protected]
Signed-off-by: Axel Forsman <[email protected]>
Tested-by: Jimmy Assarsson <[email protected]>
Reviewed-by: Jimmy Assarsson <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Marc Kleine-Budde <[email protected]>
Diffstat (limited to 'lib/trace_readwrite.c')
0 files changed, 0 insertions, 0 deletions
