View | Details | Raw Unified | Return to bug 197143 | Differences between
and this patch

Collapse All | Expand All

(-)sys/dev/wpi/if_wpi.c (-1 / +15 lines)
Lines 195-200 Link Here
195
		    const struct ieee80211_bpf_params *);
195
		    const struct ieee80211_bpf_params *);
196
static void	wpi_start(struct ifnet *);
196
static void	wpi_start(struct ifnet *);
197
static void	wpi_start_locked(struct ifnet *);
197
static void	wpi_start_locked(struct ifnet *);
198
static void	wpi_start_task(void *, int);
198
static void	wpi_watchdog_rfkill(void *);
199
static void	wpi_watchdog_rfkill(void *);
199
static void	wpi_watchdog(void *);
200
static void	wpi_watchdog(void *);
200
static int	wpi_ioctl(struct ifnet *, u_long, caddr_t);
201
static int	wpi_ioctl(struct ifnet *, u_long, caddr_t);
Lines 515-520 Link Here
515
	TASK_INIT(&sc->sc_reinittask, 0, wpi_hw_reset, sc);
516
	TASK_INIT(&sc->sc_reinittask, 0, wpi_hw_reset, sc);
516
	TASK_INIT(&sc->sc_radiooff_task, 0, wpi_radio_off, sc);
517
	TASK_INIT(&sc->sc_radiooff_task, 0, wpi_radio_off, sc);
517
	TASK_INIT(&sc->sc_radioon_task, 0, wpi_radio_on, sc);
518
	TASK_INIT(&sc->sc_radioon_task, 0, wpi_radio_on, sc);
519
	TASK_INIT(&sc->sc_start_task, 0, wpi_start_task, sc);
518
520
519
	wpi_sysctlattach(sc);
521
	wpi_sysctlattach(sc);
520
522
Lines 644-649 Link Here
644
		ieee80211_draintask(ic, &sc->sc_reinittask);
646
		ieee80211_draintask(ic, &sc->sc_reinittask);
645
		ieee80211_draintask(ic, &sc->sc_radiooff_task);
647
		ieee80211_draintask(ic, &sc->sc_radiooff_task);
646
		ieee80211_draintask(ic, &sc->sc_radioon_task);
648
		ieee80211_draintask(ic, &sc->sc_radioon_task);
649
		ieee80211_draintask(ic, &sc->sc_start_task);
647
650
648
		wpi_stop(sc);
651
		wpi_stop(sc);
649
652
Lines 1901-1906 Link Here
1901
	struct mbuf *m;
1904
	struct mbuf *m;
1902
	struct ieee80211_node *ni;
1905
	struct ieee80211_node *ni;
1903
	struct ieee80211vap *vap;
1906
	struct ieee80211vap *vap;
1907
	struct ieee80211com *ic;
1904
	int ackfailcnt = stat->ackfailcnt / 2;	/* wpi_mrr_setup() */
1908
	int ackfailcnt = stat->ackfailcnt / 2;	/* wpi_mrr_setup() */
1905
	int status = le32toh(stat->status);
1909
	int status = le32toh(stat->status);
1906
1910
Lines 1919-1924 Link Here
1919
	m = data->m, data->m = NULL;
1923
	m = data->m, data->m = NULL;
1920
	ni = data->ni, data->ni = NULL;
1924
	ni = data->ni, data->ni = NULL;
1921
	vap = ni->ni_vap;
1925
	vap = ni->ni_vap;
1926
	ic = vap->iv_ic;
1922
1927
1923
	/*
1928
	/*
1924
	 * Update rate control statistics for the node.
1929
	 * Update rate control statistics for the node.
Lines 1943-1949 Link Here
1943
		if (sc->qfullmsk == 0 &&
1948
		if (sc->qfullmsk == 0 &&
1944
		    (ifp->if_drv_flags & IFF_DRV_OACTIVE)) {
1949
		    (ifp->if_drv_flags & IFF_DRV_OACTIVE)) {
1945
			ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
1950
			ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
1946
			wpi_start_locked(ifp);
1951
			ieee80211_runtask(ic, &sc->sc_start_task);
1947
		}
1952
		}
1948
	}
1953
	}
1949
1954
Lines 2789-2794 Link Here
2789
}
2794
}
2790
2795
2791
static void
2796
static void
2797
wpi_start_task(void *arg0, int pending)
2798
{
2799
	struct wpi_softc *sc = arg0;
2800
	struct ifnet *ifp = sc->sc_ifp;
2801
2802
	wpi_start(ifp);
2803
}
2804
2805
static void
2792
wpi_watchdog_rfkill(void *arg)
2806
wpi_watchdog_rfkill(void *arg)
2793
{
2807
{
2794
	struct wpi_softc *sc = arg;
2808
	struct wpi_softc *sc = arg;
(-)sys/dev/wpi/if_wpivar.h (+1 lines)
Lines 209-214 Link Here
209
	struct task		sc_reinittask;
209
	struct task		sc_reinittask;
210
	struct task		sc_radiooff_task;
210
	struct task		sc_radiooff_task;
211
	struct task		sc_radioon_task;
211
	struct task		sc_radioon_task;
212
	struct task		sc_start_task;
212
213
213
	/* Eeprom info. */
214
	/* Eeprom info. */
214
	uint8_t			cap;
215
	uint8_t			cap;

Return to bug 197143