From owner-cvs-all@FreeBSD.ORG Thu Jul 27 11:51:41 2006 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9054B16A4DD; Thu, 27 Jul 2006 11:51:41 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from cyrus.watson.org (cyrus.watson.org [209.31.154.42]) by mx1.FreeBSD.org (Postfix) with ESMTP id 421DB43D49; Thu, 27 Jul 2006 11:51:41 +0000 (GMT) (envelope-from rwatson@FreeBSD.org) Received: from fledge.watson.org (fledge.watson.org [209.31.154.41]) by cyrus.watson.org (Postfix) with ESMTP id 7080046B0E; Thu, 27 Jul 2006 07:51:39 -0400 (EDT) Date: Thu, 27 Jul 2006 12:51:39 +0100 (BST) From: Robert Watson X-X-Sender: robert@fledge.watson.org To: Sam Leffler In-Reply-To: <200607260330.k6Q3UooP047077@repoman.freebsd.org> Message-ID: <20060727124542.V4612@fledge.watson.org> References: <200607260330.k6Q3UooP047077@repoman.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/dev/usb if_ural.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 Jul 2006 11:51:41 -0000 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