On 15/07/2019 15.10, Martin Hundebøll wrote:
I have also tried to partially revert commit
30164759db1bb1062bdf0f92451f57ed295cfa48 ("can: flexcan: make use of
rx-offload's irq_offload_fifo") to circumvent the rx-offload queuing:
diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
index 4e3caf421a54..3e13d2480828 100644
--- a/drivers/net/can/flexcan.c
+++ b/drivers/net/can/flexcan.c
@@ -677,7 +677,9 @@ static void flexcan_irq_bus_err(struct net_device
*dev, u32 reg_esr)
if (tx_errors)
dev->stats.tx_errors++;
- can_rx_offload_queue_sorted(&priv->offload, skb, timestamp);
+ dev->stats.rx_packets++;
+ dev->stats.rx_bytes += cf->can_dlc;
+ netif_receive_skb(skb);
}
static void flexcan_irq_state(struct net_device *dev, u32 reg_esr)
But that doesn't make a difference either.
My fault; I forgot to build/deploy the module when testing the change above.
It seems like circumventing the rx-offloading "fixes" the issue.
// Martin