• Marc Kleine-Budde's avatar
    can: mcp251xfd: revert "can: mcp251xfd: add BQL support" · 2afe72ea
    Marc Kleine-Budde authored
    In the following 4 patches
    
    | 99842c96 can: dev: can_rx_offload_get_echo_skb(): extend to return can frame length
    | 9420e1d4 can: dev: can_get_echo_skb(): extend to return can frame length
    | 1dcb6e57 can: dev: can_put_echo_skb(): extend to handle frame_len
    | f0ef72fe can: dev: extend struct can_skb_priv to hold CAN frame length
    
    the CAN echo SKB support was extended to hold the CAN frame
    length (which is the length of the CAN frame on the wire). It is meant
    as a helper for BQL support, to avoid the re-calculation of the frame
    length before sending it and on TX-completion.
    
    However if the CAN frame is send without the request to be looped back
    the SKB is discarded in can_put_echo_skb() and the subsequent
    can_get_echo_skb() and can_rx_offload_get_echo_skb() return 0 for the
    CAN frame length. This results in BQL stalling the TX queue after a
    few packages.
    
    Until the BQL helpers can_get_echo_skb() and
    can_rx_offload_get_echo_skb() are fixed, revert the BQL support for
    the mcp251xfd driver.
    
    This reverts commit 4162e18e.
    
    Fixes: 4162e18e ("can: mcp251xfd: add BQL support")
    Cc: Manivannan Sadhasivam <mani@kernel.org>
    Cc: Thomas Kopp <thomas.kopp@microchip.com>
    Link: https://lore.kernel.org/r/20210228083347.28580-1-mkl@pengutronix.deSigned-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
    2afe72ea
mcp251xfd-core.c 75.2 KB