cvs commit: src/sys/dev/usb if_ural.c
Robert Watson
rwatson at FreeBSD.org
Thu Jul 27 11:51:41 UTC 2006
On Wed, 26 Jul 2006, Sam Leffler wrote:
> sam 2006-07-26 03:30:50 UTC
>
> FreeBSD src repository
>
> Modified files:
> sys/dev/usb if_ural.c
> Log:
> support for 802.11 packet injection via bpf
>
> Reviewed by: arch@
> MFC after: 1 month
---------------------------------------
@@ -209,6 +211,9 @@
*/
if (ic->ic_reset == NULL)
ic->ic_reset = ieee80211_default_reset;
+
+ KASSERT(ifp->if_spare2 == NULL, ("oops, hosed"));
+ ifp->if_spare2 = ic; /* XXX temp backpointer */
}
---------------------------------------
Please don't use spare pointers without properly allocating them (i.e.,
renaming them). I ran into this this morning when merging these changes into
the rwatson_ifnet branch, where if_spare2 was renamed to if_startmbuf.
However, if the above change is MFC'd as is, people may well find the problem
through run-time corruption when the network stack tries to execute the ic
contents thinking that it's a non-NULL if_startmbuf function pointer, which is
a lot harder to debug. The point of spare fields is that they be spare -- if
they are no longer spare, they should not be left marked as spare, or they
will get reused with unfortunate ABI consequences. I don't mind if this spare
is allocated (if_softc2, if_driver, or the like), as we have one more spare
pointer I can use in 6.x, but the current use of the spare field is
problematic and should not be MFC'd unless cleaned up.
Robert N M Watson
Computer Laboratory
University of Cambridge
More information about the cvs-src
mailing list