Re: mac80211 truesize bugs
From: Michael Buesch <hidden>
Date: 2008-05-01 09:32:24
Also in:
linux-wireless
On Thursday 01 May 2008 11:08:06 Johannes Berg wrote:
quoted
Hm, unrelated to this... But I am wondering what happens if the driver adds a device header to the skb. Is that header then also passed up netif_rx()? This doesn't happen for b43, as we use the DMA fragmentation to transmit the header, but it might happen for zd1211rw and others.Hmm. I thought we said that it was supposed to be removed again by the hardware before TX status reporting. That's what most drivers seem to do anyway.
Ok. I was not aware of that. Is that documented somewhere? I guess we can't WARN_ON()?
quoted
Seems the skb->destructor messes it up.Actually, it seems to be outside of mac80211, I put in a WARN_ON() and got this:
Yeah looks like the destructor messes with the data/sizes and disagrees with the way mac80211 handles stuff, in some way.
Badness at include/linux/skbuff.h:392 NIP: c026ea14 LR: c0273d54 CTR: c026e9e4 REGS: edfc7c00 TRAP: 0700 Not tainted (2.6.25-wl-06841-g6b3d5c6-dirty) MSR: 00029032 <EE,ME,IR,DR> CR: 82022444 XER: 00000000 TASK = edf50e20[3453] 'tcpdump' THREAD: edfc6000 GPR00: 00000001 edfc7cb0 edf50e20 edfd7700 edfd7700 00000002 edfc7e75 03230306 GPR08: 02000100 00000168 4dff0200 00000150 22022442 100a6290 100783f8 10078e18 GPR16: 10078e14 10078e10 100a0000 00000000 00000000 bfe2c9d2 1004d320 bfe2c4b0 GPR24: 10165070 edfd7724 00000060 00000020 ed8157f0 edfd7700 ed8157f0 edfd7700 NIP [c026ea14] sock_rfree+0x30/0x94 LR [c0273d54] skb_release_all+0x98/0x128 Call Trace: [edfc7cb0] [10078e10] 0x10078e10 (unreliable) [edfc7cc0] [c0273d54] skb_release_all+0x98/0x128 [edfc7cd0] [c0273034] __kfree_skb+0x18/0xc8 [edfc7ce0] [c02760d0] skb_free_datagram+0x1c/0x54 [edfc7cf0] [f264d068] packet_recvmsg+0x170/0x1e8 [af_packet] [edfc7d40] [c026b69c] sock_recvmsg+0xb8/0xf0 [edfc7e30] [c026b9d0] sys_recvfrom+0x94/0x100 [edfc7f00] [c026ca08] sys_socketcall+0x114/0x1dc [edfc7f40] [c00124cc] ret_from_syscall+0x0/0x38 johannes
-- Greetings Michael. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html