http://bugzilla.novell.com/show_bug.cgi?id=540589 http://bugzilla.novell.com/show_bug.cgi?id=540589#c20 --- Comment #20 from Brandon Philips <bphilips@novell.com> 2010-01-14 22:39:06 UTC --- (In reply to comment #19)
(In reply to comment #16)
... I should have pClonedPkt->head = pClonedPkt->data - pClonedPkt->len;
Hm, yes, after some thinking I tend to agree. However, the driver is such a mess I'm not sure about anything anymore :-(
I don't think that is correct. Isn't ->data + ->len == ->tail?
(In reply to comment #17)
This patch uses the ->head that "pData" is derived from earlier in the call chain. I think this is right.
I'm not sure this is correct. RTPKT_TO_OSPKT(pRxPkt) and RTPKT_TO_OSPKT(pRxBlk->pRxPacket) is the same, because RTPKT_TO_OSPKT is just a cast to (struct sk_buff *) and pRxPkt = RTPKT_TO_OSPKT(pRxBlk->pRxPacket); This makes the statement RTPKT_TO_OSPKT(pRxPkt)->head = RTPKT_TO_OSPKT(pRxBlk->pRxPacket)->head; noop.
Unless I'm lost in the similarly looking identifiers. Which is quite possible.
You are right, got lost in the ugliness. So, I think not touching ->head and ->tail in these cases is fine then because... What they seem to be doing is a bad version of skb_pull(skb, pData - pRxPkt->data) because from the oops in attachment 334984: STARxDoneInterruptHandle() does pRxBlk->pData = pRxPacket->data STARxDoneInterruptHandle() does pHeader = (PHEADER_802_11) (pData+RXWI_SIZE) ; STAHandleRxDataFrame() does pRxBlk->pData = (UCHAR *)pHeader; And then these various functions that the patch fixes up are doing a bad version of skb_pull() to get the skb ->data to the pHeader location. Does that make sense to other people? -- Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.