Hi,
I am using a CM-ITC board
(https://www.compulab.com/products/computer-on-modules/cm-itc/) with an
application that uses the CAN interface. After a while of successfully
sending packets, sendto() starts returning ENOBUFS. I wait a whole
second and try to send, several retries, but I get ENOBUFS every time.
I'm using kernel 5.15.59, and I've tried both the pch_can and c_can_pci
driver, but both show the same error.
In the console I see several of:
can0: can_put_echo_skb: BUG! echo_skb 0 is occupied
I've also tried to increase the txqueuelen to 1000, as suggested here
https://stackoverflow.com/questions/40424433/write-no-buffer-space-available-socket-can-linux-can
but I think that if I increase the queuelen the threads just block
forever in sendto() (sockets are opened in blocking mode)
If I bring down the interface with
ifconfig can0 down
ifconfig can0 up
the transmitting does get unblocked.
Is there anything I can do to debug this further ? Any other ideas ?
Thanks,
Jacob