Re: [PATCH] libertas: skb dereferenced after netif_rx
From: Stephen Hemminger <hidden>
Date: 2007-05-20 05:20:14
Also in:
linux-wireless
On Sat, 19 May 2007 21:47:00 -0400 Jeff Garzik [off-list ref] wrote:
Dan Williams wrote:quoted
On Fri, 2007-05-18 at 14:09 -0400, John W. Linville wrote:quoted
On Wed, May 16, 2007 at 05:01:27PM -0400, Florin Malita wrote:quoted
In libertas_process_rxed_packet() and process_rxed_802_11_packet() the skb is dereferenced after being passed to netif_rx (called from libertas_upload_rx_packet). Spotted by Coverity (1658, 1659).Relocating the libertas_upload_rx_packet call is fine, but...quoted
Also, libertas_upload_rx_packet() unconditionally returns 0 so the error check is dead code - might as well take it out.Is this merely an implementation detail? Or an absolute fact? If the former is true, then we should preserve the error checking. If the latter, then we should change the signature of libertas_upload_rx_packet to return void.According to the comments, netif_rx always succeeds. I think we should just change the return type to void since there's nothing else in that function that can fail.According to the implementation, netif_rx() can fail. Jeff
Yeah, it was the old congestion levels that got dropped. The skb is always consumed so the the return value is informational only. -- Stephen Hemminger [off-list ref]