diff options
author | Jonas Jensen <jonas.jensen@gmail.com> | 2017-03-28 12:12:38 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-28 18:02:05 -0700 |
commit | c2b341a620018d4eaeb0e85c16274ac4e5f153d4 (patch) | |
tree | 28b751d30475eecc67268570c3d0f114b460a49f /firmware/sb16/mulaw_main.csp.ihex | |
parent | isdn: kcapi: avoid uninitialized data (diff) | |
download | linux-dev-c2b341a620018d4eaeb0e85c16274ac4e5f153d4.tar.xz linux-dev-c2b341a620018d4eaeb0e85c16274ac4e5f153d4.zip |
net: moxa: fix TX overrun memory leak
moxart_mac_start_xmit() doesn't care where tx_tail is, tx_head can
catch and pass tx_tail, which is bad because moxart_tx_finished()
isn't guaranteed to catch up on freeing resources from tx_tail.
Add a check in moxart_mac_start_xmit() stopping the queue at the
end of the circular buffer. Also add a check in moxart_tx_finished()
waking the queue if the buffer has TX_WAKE_THRESHOLD or more
free descriptors.
While we're at it, move spin_lock_irq() to happen before our
descriptor pointer is assigned in moxart_mac_start_xmit().
Addresses https://bugzilla.kernel.org/show_bug.cgi?id=99451
Signed-off-by: Jonas Jensen <jonas.jensen@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'firmware/sb16/mulaw_main.csp.ihex')
0 files changed, 0 insertions, 0 deletions