From owner-p4-projects@FreeBSD.ORG Tue May 29 01:53:26 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 0757616A46D; Tue, 29 May 2007 01:53:26 +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 B466116A46B for ; Tue, 29 May 2007 01:53:25 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id A4CEF13C4B7 for ; Tue, 29 May 2007 01:53:25 +0000 (UTC) (envelope-from thompsa@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l4T1rPXu023474 for ; Tue, 29 May 2007 01:53:25 GMT (envelope-from thompsa@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l4T1rPTB023458 for perforce@freebsd.org; Tue, 29 May 2007 01:53:25 GMT (envelope-from thompsa@freebsd.org) Date: Tue, 29 May 2007 01:53:25 GMT Message-Id: <200705290153.l4T1rPTB023458@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to thompsa@freebsd.org using -f From: Andrew Thompson To: Perforce Change Reviews Cc: Subject: PERFORCE change 120531 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: Tue, 29 May 2007 01:53:26 -0000 http://perforce.freebsd.org/chv.cgi?CH=120531 Change 120531 by thompsa@thompsa_heff on 2007/05/29 01:52:31 - Make sure that net80211 initiates all scan aborts - Remove call to net80211 on IWI_SCAN_ABORTED Affected files ... .. //depot/projects/wifi/sys/dev/iwi/if_iwi.c#28 edit Differences ... ==== //depot/projects/wifi/sys/dev/iwi/if_iwi.c#28 (text+ko) ==== @@ -162,7 +162,6 @@ static int iwi_config(struct iwi_softc *); static int iwi_get_firmware(struct iwi_softc *); static void iwi_put_firmware(struct iwi_softc *); -static void iwi_scanabort(void *, int); static int iwi_scanchan(struct iwi_softc *, unsigned long); static void iwi_scan_start(struct ieee80211com *); static void iwi_scan_end(struct ieee80211com *); @@ -275,7 +274,6 @@ #endif TASK_INIT(&sc->sc_radiontask, 0, iwi_radio_on, sc); TASK_INIT(&sc->sc_radiofftask, 0, iwi_radio_off, sc); - TASK_INIT(&sc->sc_scanaborttask, 0, iwi_scanabort, sc); TASK_INIT(&sc->sc_setwmetask, 0, iwi_wme_setparams, sc); TASK_INIT(&sc->sc_downtask, 0, iwi_down, sc); TASK_INIT(&sc->sc_restarttask, 0, iwi_restart, sc); @@ -969,7 +967,7 @@ taskqueue_enqueue(sc->sc_tq, &sc->sc_downtask); if (ic->ic_state == IEEE80211_S_SCAN && (sc->flags & IWI_FLAG_SCANNING)) - taskqueue_enqueue(sc->sc_tq, &sc->sc_scanaborttask); + ieee80211_cancel_scan(ic); break; case IEEE80211_S_ASSOC: default: @@ -1385,14 +1383,8 @@ sc->sc_scan_timer = 0; sc->flags &= ~IWI_FLAG_SCANNING; - switch (scan->status) { - case IWI_SCAN_COMPLETED: + if (scan->status == IWI_SCAN_COMPLETED) ieee80211_scan_next(ic); - break; - case IWI_SCAN_ABORTED: - ieee80211_cancel_scan(ic); - break; - } break; @@ -2651,19 +2643,6 @@ *st = (*st & 0x0f) | ((scan_type & 0xf) << 4); } -static void -iwi_scanabort(void *arg, int npending) -{ - struct iwi_softc *sc = arg; - IWI_LOCK_DECL; - - IWI_LOCK(sc); - /* NB: make sure we're still scanning */ - if (sc->flags & IWI_FLAG_SCANNING) - iwi_cmd(sc, IWI_CMD_ABORT_SCAN, NULL, 0); - IWI_UNLOCK(sc); -} - /* * Scan on ic_curchan according to ic_scan (essid, active/passive, dwell ...) */ @@ -3451,7 +3430,9 @@ break; case IWI_SCAN_END: sc->flags &= ~IWI_FLAG_CHANNEL_SCAN; - iwi_scanabort(sc, 0); + /* NB: make sure we're still scanning */ + if (sc->flags & IWI_FLAG_SCANNING) + iwi_cmd(sc, IWI_CMD_ABORT_SCAN, NULL, 0); break; case IWI_SCAN_CURCHAN: if (!(sc->flags & IWI_FLAG_CHANNEL_SCAN)) { @@ -3459,12 +3440,9 @@ __func__)); return; } - if (iwi_scanchan(sc, sc->sc_maxdwell)) { - iwi_scanabort(sc, 0); - IWI_UNLOCK(sc); + if (iwi_scanchan(sc, sc->sc_maxdwell)) ieee80211_cancel_scan(ic); - return; - } + break; } done: