Deniz-Eren / dev-can-linux

Porting of Linux CAN-bus drivers to QNX
GNU General Public License v2.0
4 stars 1 forks source link

netif_stop_queue causes lockup during exit under some fault conditions #45

Closed Deniz-Eren closed 8 months ago

Deniz-Eren commented 8 months ago

netif_stop_queue() causes lockup during exit if an error CAN frame is received in netif_rx(), and therefore netif_wake_queue() never occurs.

Solution would be to refactor struct device_session to use queue mutex and condvar both prevent duplication of semaphores and because the queue semaphores have graceful exit already.