diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-11-06 16:57:28 +0100 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2010-11-17 00:08:48 +0100 |
commit | 7ee11fa8d0a84b05cefe12b0bebc05ab0ea89cd6 (patch) | |
tree | ed0f67e8b3687aef93acd50db1f635d43c8073f5 /drivers/usb | |
parent | 902bca00dc6e3b3ff5fbb1e32e5dbb45d5f30579 (diff) | |
download | op-kernel-dev-7ee11fa8d0a84b05cefe12b0bebc05ab0ea89cd6.zip op-kernel-dev-7ee11fa8d0a84b05cefe12b0bebc05ab0ea89cd6.tar.gz |
firewire: net: fix memory leaks
a) fwnet_transmit_packet_done used to poison ptask->pt_link by list_del.
If fwnet_send_packet checked later whether it was responsible to clean
up (in the border case that the TX soft IRQ was outpaced by the AT-req
tasklet on another CPU), it missed this because ptask->pt_link was no
longer shown as empty.
b) If fwnet_write_complete got an rcode other than RCODE_COMPLETE, we
missed to free the skb and ptask entirely.
Also, count stats.tx_dropped and stats.tx_errors when rcode != 0.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/usb')
0 files changed, 0 insertions, 0 deletions