Re: [Madwifi-devel] Madwifi-free compile error
Status: Beta
Brought to you by:
otaku
From: Pavel R. <pr...@gn...> - 2009-01-15 18:58:48
|
On Thu, 2009-01-15 at 12:52 -0500, Louay Sakka wrote: > Ok aniState is null: > > > ar5212AniControl(struct ath_hal *ah, HAL_ANI_CMD cmd, int param) > > typedef int TABLE[]; > struct ath_hal_5212 *ahp = AH5212(ah); > struct ar5212AniState *aniState = ahp->ah_curani; > const struct ar5212AniParams *params = aniState->params; > > > aniState is null: I know. We do it too yearly. Now let's look at the place where it's called: if (!sc->sc_hasintmit && intmit) { WPRINTF(sc, "Interference mitigation was requested, but is not" "supported by the HAL/hardware.\n"); intmit = 0; /* Stop use in future ath_attach(). */ } else { ath_hal_setintmit(ah, sc->sc_useintmit); DPRINTF(sc, ATH_DEBUG_ANY, "Interference mitigation is " "supported. Currently %s.\n", (sc->sc_useintmit ? "enabled" : "disabled")); } Now let's look at the logic carefully. What should the values of sc->sc_hasintmit and intmit be for ath_hal_setintmit() to be called? ath_hal_setintmit() will be called if sc->sc_hasintmit is 1 or intmit is 0. intmit is 0 by default. It means that sc->sc_hasintmit is ignored by default. It's actually 1 in madwifi-free for AR5212, so it doesn't trigger this particular crash. However, it's a great indicator of the quality of the ANI code. It means that we can find more that just a normal share of bugs. I suggest that we make intmit default to -1 and stop calling ath_hal_setintmit() unless the intmit parameter is explicitly specified. This will stop the crash from occurring. Then we can discuss what to do with the ANI code outside HAL. -- Regards, Pavel Roskin |