firewire: net: fix memory leaks
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Sat, 6 Nov 2010 15:57:28 +0000 (16:57 +0100)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Tue, 16 Nov 2010 23:08:48 +0000 (00:08 +0100)
commit7ee11fa8d0a84b05cefe12b0bebc05ab0ea89cd6
treeed0f67e8b3687aef93acd50db1f635d43c8073f5
parent902bca00dc6e3b3ff5fbb1e32e5dbb45d5f30579
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>
drivers/firewire/net.c