msm: rmnet_bam: Handle Network TX Queue Race Condition
The netif TX queue is started and stopped based upon the watermark state
maintained by BAM DMUX. The queue is checked after TX-enqueue
operations to disable the queue if the high watermark is hit and after
TX-dequeue operations to enable the queue if the low watermark is hit.
Without locking, this opens a race condition where the TX-dequeue check
and the call to stop the queue can happen after the write-done
completion has occurred which would restart the queue. This results in
the queue being stopped indefinitely which results in a permanent data
stall.
CRs-Fixed: 347174
Change-Id: I5975815f7ce774c1230f0254b40dfb3f056482c4
Signed-off-by: Eric Holmberg <eholmber@codeaurora.org>
2 files changed