ath kldunloading hangs the system

Sepherosa Ziehau sepherosa at gmail.com
Tue Jun 19 07:53:58 UTC 2007


On 6/18/07, Harald Schmalzbauer <h.schmalzbauer at omnisec.de> wrote:
> Hello,
>
> it seems the recent wlan changes broke unloading the if_ath.ko.
> I have problems with resuming my laptop with ath, so I loaded it as a module.
> The resume problem still persists but now I cannot unload ath anymore.
> No panic, just system freeze.
>
> Is this a known problem?
>
> Thanks,
>
> -Harry
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>

Please change following code segment, see whether it helps:

1091: static void
1092: ath_stop(struct ifnet *ifp)
1093: {
1094:        struct ath_softc *sc = ifp->if_softc;
1095:
1096:        ATH_LOCK(sc);
1097:        ath_stop_locked(ifp);

      #if 0      <====== add me

1098:        if (!sc->sc_invalid) {
1099:                /*
1100:                 * Set the chip in full sleep mode.  Note that we are
1101:                 * careful to do this only when bringing the interface
1102:                 * completely to a stop.  When the chip is in this state
1103:                 * it must be carefully woken up or references to
1104:                 * registers in the PCI clock domain may freeze the bus
1105:                 * (and system).  This varies by chip and is mostly an
1106:                 * issue with newer parts that go to sleep more quickly.
1107:                 */
1108:                ath_hal_setpower(sc->sc_ah, HAL_PM_FULL_SLEEP);
1109:        }

      #endif     <====== add me

1110:        ATH_UNLOCK(sc);
1111: }


Best Regards,
sephe

-- 
Live Free or Die


More information about the freebsd-current mailing list