From owner-p4-projects@FreeBSD.ORG Wed Feb 28 12:32:39 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 29FF516A404; Wed, 28 Feb 2007 12:32:39 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D8EE016A401 for ; Wed, 28 Feb 2007 12:32:38 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id C8EF113C4A5 for ; Wed, 28 Feb 2007 12:32:38 +0000 (UTC) (envelope-from sephe@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l1SCWcVI030851 for ; Wed, 28 Feb 2007 12:32:38 GMT (envelope-from sephe@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l1SCWcMD030847 for perforce@freebsd.org; Wed, 28 Feb 2007 12:32:38 GMT (envelope-from sephe@FreeBSD.org) Date: Wed, 28 Feb 2007 12:32:38 GMT Message-Id: <200702281232.l1SCWcMD030847@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to sephe@FreeBSD.org using -f From: Sepherosa Ziehau To: Perforce Change Reviews Cc: Subject: PERFORCE change 115163 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Feb 2007 12:32:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=115163 Change 115163 by sephe@sephe_zealot:sam_wifi on 2007/02/28 12:31:47 Add sc_newstate_arg to ural_softc, through it we can pass ieee80211_new_state() 'arg' along following code path: ural_newstate()->ural_task()->ieee80211_newstate() 'arg' is quite important to let ieee80211_newstate() make correct decision during certain state changes, e.g. RUN->AUTH Reviewed-by: sam@ Affected files ... .. //depot/projects/wifi/sys/dev/usb/if_ural.c#16 edit .. //depot/projects/wifi/sys/dev/usb/if_uralvar.h#8 edit Differences ... ==== //depot/projects/wifi/sys/dev/usb/if_ural.c#16 (text+ko) ==== @@ -733,13 +733,14 @@ } static void -ural_task(void *arg) +ural_task(void *xarg) { - struct ural_softc *sc = arg; + struct ural_softc *sc = xarg; struct ieee80211com *ic = &sc->sc_ic; enum ieee80211_state ostate; struct ieee80211_node *ni; struct mbuf *m; + int arg = sc->sc_newstate_arg; ostate = ic->ic_state; @@ -799,7 +800,7 @@ } RAL_UNLOCK(sc); - sc->sc_newstate(ic, sc->sc_state, -1); + sc->sc_newstate(ic, sc->sc_state, arg); } static void @@ -836,6 +837,7 @@ /* do it in a process context */ sc->sc_state = nstate; + sc->sc_newstate_arg = arg; usb_add_task(sc->sc_udev, &sc->sc_task, USB_TASKQ_DRIVER); return 0; ==== //depot/projects/wifi/sys/dev/usb/if_uralvar.h#8 (text+ko) ==== @@ -103,6 +103,7 @@ usbd_pipe_handle sc_tx_pipeh; enum ieee80211_state sc_state; + int sc_newstate_arg; int sc_scan_action; /* should be an enum */ struct usb_task sc_task; struct usb_task sc_scantask;