From f3d07d1a17ad4982625c45effa4a61218f9bcc61 Mon Sep 17 00:00:00 2001 From: agb Date: Thu, 20 Mar 2008 01:57:27 +0000 Subject: [PATCH] Revert r10553 "fix channel change bugs," causes kernel oopses. Closes #3213. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10628 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../madwifi/patches/332-reset_beacons.patch | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/package/madwifi/patches/332-reset_beacons.patch b/package/madwifi/patches/332-reset_beacons.patch index caf3cc14f..e34746ee6 100644 --- a/package/madwifi/patches/332-reset_beacons.patch +++ b/package/madwifi/patches/332-reset_beacons.patch @@ -1,8 +1,8 @@ Index: madwifi-trunk-r3314/ath/if_ath.c =================================================================== ---- madwifi-trunk-r3314.orig/ath/if_ath.c 2008-02-26 20:23:58.477203701 +0100 -+++ madwifi-trunk-r3314/ath/if_ath.c 2008-02-26 20:23:59.241247240 +0100 -@@ -1594,6 +1594,16 @@ +--- madwifi-trunk-r3314.orig/ath/if_ath.c 2008-02-20 22:22:50.203268987 +0100 ++++ madwifi-trunk-r3314/ath/if_ath.c 2008-02-20 22:23:25.745294410 +0100 +@@ -1592,6 +1592,16 @@ ath_init(dev); } @@ -19,16 +19,16 @@ Index: madwifi-trunk-r3314/ath/if_ath.c /* Channel Availability Check is running, or a channel has already found to be * unavailable. */ static int -@@ -2476,7 +2486,7 @@ +@@ -2474,7 +2484,7 @@ */ sc->sc_curchan.channel = ic->ic_curchan->ic_freq; sc->sc_curchan.channelFlags = ath_chan2flags(ic->ic_curchan); - if (!ath_hal_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_FALSE, &status)) { -+ if (!ath_hw_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_TRUE, &status)) { ++ if (!ath_hw_reset(ah, sc->sc_opmode, &sc->sc_curchan, AH_FALSE, &status)) { EPRINTF(sc, "unable to reset hardware: '%s' (HAL status %u) " "(freq %u flags 0x%x)\n", ath_get_hal_status_desc(status), status, -@@ -2775,7 +2785,7 @@ +@@ -2773,7 +2783,7 @@ ath_draintxq(sc); /* stop xmit side */ ath_stoprecv(sc); /* stop recv side */ /* NB: indicate channel change so we do a full reset */ @@ -37,17 +37,18 @@ Index: madwifi-trunk-r3314/ath/if_ath.c EPRINTF(sc, "Unable to reset hardware: '%s' (HAL status %u)\n", ath_get_hal_status_desc(status), status); -@@ -8848,8 +8858,7 @@ +@@ -8848,8 +8858,8 @@ * needed to do the reset with chanchange = AH_FALSE in order * to receive traffic when peforming high velocity channel * changes. */ - if (!ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status) || - !ath_hal_reset(ah, sc->sc_opmode, &hchan, AH_FALSE, &status)) { -+ if (!ath_hw_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status)) { ++ if (!ath_hw_reset(ah, sc->sc_opmode, &hchan, AH_TRUE, &status) || ++ !ath_hw_reset(ah, sc->sc_opmode, &hchan, AH_FALSE, &status)) { EPRINTF(sc, "Unable to reset channel %u (%u MHz) " "flags 0x%x '%s' (HAL status %u)\n", ieee80211_chan2ieee(ic, chan), chan->ic_freq, -@@ -8905,7 +8914,7 @@ +@@ -8905,7 +8915,7 @@ * re configure beacons when it is a turbo mode switch. * HW seems to turn off beacons during turbo mode switch. */ @@ -56,7 +57,7 @@ Index: madwifi-trunk-r3314/ath/if_ath.c ath_beacon_config(sc, NULL); /* * Re-enable interrupts. -@@ -11456,7 +11465,7 @@ +@@ -11455,7 +11465,7 @@ ieee80211_cancel_scan(vap); /* anything current */ ieee80211_wme_updateparams(vap); /* reset the WNIC */ -- 2.20.1