Team, Hit a crash while vmxnet_xmit_pkts()-->vmxnet3_tq_tx_complete() API trying to release completed buffers. As we see in the code, there are two independent paths that clean up completed buffers: 1) vmxnet3_xmit_pkts 2) vmxnet3_dev_stop. In a multi-threaded environment potentially this can cause issues since queues/buffers not guarded with any locks. Specifically, in my case, one thread handles admin messages like port shut and hence triggers vmxnet3_dev_stop. Another thread for forwarding (vmxnet3_xmit_pkts). Isn't this a candidate for introducing locks within drivers? Any other suggestions to handle it?
Thanks, -Vithal