Re: ath kldunloading hangs the system

From: Sepherosa Ziehau <sepherosa_at_gmail.com>
Date: Tue, 19 Jun 2007 15:53:57 +0800
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
Received on Tue Jun 19 2007 - 05:53:58 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:12 UTC