Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Jun 2007 15:53:57 +0800
From:      "Sepherosa Ziehau" <sepherosa@gmail.com>
To:        "Harald Schmalzbauer" <h.schmalzbauer@omnisec.de>
Cc:        freebsd-current@freebsd.org
Subject:   Re: ath kldunloading hangs the system
Message-ID:  <ea7b9c170706190053w6937203ax547674d8a338b009@mail.gmail.com>
In-Reply-To: <200706181052.03209.h.schmalzbauer@omnisec.de>
References:  <200706181052.03209.h.schmalzbauer@omnisec.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On 6/18/07, Harald Schmalzbauer <h.schmalzbauer@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@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ea7b9c170706190053w6937203ax547674d8a338b009>