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
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to