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

Collapse All | Expand All

(-)sys/dev/iwn/if_iwn.c (-13 / +8 lines)
Lines 1875-1881 Link Here
1875
		    &paddr, BUS_DMA_NOWAIT);
1875
		    &paddr, BUS_DMA_NOWAIT);
1876
		if (error != 0 && error != EFBIG) {
1876
		if (error != 0 && error != EFBIG) {
1877
			device_printf(sc->sc_dev,
1877
			device_printf(sc->sc_dev,
1878
			    "%s: can't not map mbuf, error %d\n", __func__,
1878
			    "%s: can't map mbuf, error %d\n", __func__,
1879
			    error);
1879
			    error);
1880
			goto fail;
1880
			goto fail;
1881
		}
1881
		}
Lines 4047-4054 Link Here
4047
		r2 = 0;	/* Unused. */
4047
		r2 = 0;	/* Unused. */
4048
	} else {
4048
	} else {
4049
		r1 = IWN_READ(sc, IWN_INT);
4049
		r1 = IWN_READ(sc, IWN_INT);
4050
		if (r1 == 0xffffffff || (r1 & 0xfffffff0) == 0xa5a5a5a0)
4050
		if (r1 == 0xffffffff || (r1 & 0xfffffff0) == 0xa5a5a5a0) {
4051
			IWN_UNLOCK(sc);
4051
			return;	/* Hardware gone! */
4052
			return;	/* Hardware gone! */
4053
		}
4052
		r2 = IWN_READ(sc, IWN_FH_INT);
4054
		r2 = IWN_READ(sc, IWN_FH_INT);
4053
	}
4055
	}
4054
4056
Lines 4519-4525 Link Here
4519
			return error;
4521
			return error;
4520
		}
4522
		}
4521
		/* Too many DMA segments, linearize mbuf. */
4523
		/* Too many DMA segments, linearize mbuf. */
4522
		m1 = m_collapse(m, M_NOWAIT, IWN_MAX_SCATTER);
4524
		m1 = m_collapse(m, M_NOWAIT, IWN_MAX_SCATTER - 1);
4523
		if (m1 == NULL) {
4525
		if (m1 == NULL) {
4524
			device_printf(sc->sc_dev,
4526
			device_printf(sc->sc_dev,
4525
			    "%s: could not defrag mbuf\n", __func__);
4527
			    "%s: could not defrag mbuf\n", __func__);
Lines 4725-4731 Link Here
4725
			return error;
4727
			return error;
4726
		}
4728
		}
4727
		/* Too many DMA segments, linearize mbuf. */
4729
		/* Too many DMA segments, linearize mbuf. */
4728
		m1 = m_collapse(m, M_NOWAIT, IWN_MAX_SCATTER);
4730
		m1 = m_collapse(m, M_NOWAIT, IWN_MAX_SCATTER - 1);
4729
		if (m1 == NULL) {
4731
		if (m1 == NULL) {
4730
			device_printf(sc->sc_dev,
4732
			device_printf(sc->sc_dev,
4731
			    "%s: could not defrag mbuf\n", __func__);
4733
			    "%s: could not defrag mbuf\n", __func__);
Lines 4950-4956 Link Here
4950
		IWN_LOCK(sc);
4952
		IWN_LOCK(sc);
4951
		memset(&sc->last_stat, 0, sizeof(struct iwn_stats));
4953
		memset(&sc->last_stat, 0, sizeof(struct iwn_stats));
4952
		IWN_UNLOCK(sc);
4954
		IWN_UNLOCK(sc);
4953
		error = 0;
4954
		break;
4955
		break;
4955
	default:
4956
	default:
4956
		error = EINVAL;
4957
		error = EINVAL;
Lines 6818-6833 Link Here
6818
	chan->active = htole16(dwell_active);
6819
	chan->active = htole16(dwell_active);
6819
	chan->passive = htole16(dwell_passive);
6820
	chan->passive = htole16(dwell_passive);
6820
6821
6821
	if (IEEE80211_IS_CHAN_5GHZ(c) &&
6822
	if (IEEE80211_IS_CHAN_5GHZ(c))
6822
	    !(c->ic_flags & IEEE80211_CHAN_PASSIVE)) {
6823
		chan->rf_gain = 0x3b;
6823
		chan->rf_gain = 0x3b;
6824
	} else if (IEEE80211_IS_CHAN_5GHZ(c)) {
6824
	else
6825
		chan->rf_gain = 0x3b;
6826
	} else if (!(c->ic_flags & IEEE80211_CHAN_PASSIVE)) {
6827
		chan->rf_gain = 0x28;
6825
		chan->rf_gain = 0x28;
6828
	} else {
6829
		chan->rf_gain = 0x28;
6830
	}
6831
6826
6832
	DPRINTF(sc, IWN_DEBUG_STATE,
6827
	DPRINTF(sc, IWN_DEBUG_STATE,
6833
	    "%s: chan %u flags 0x%x rf_gain 0x%x "
6828
	    "%s: chan %u flags 0x%x rf_gain 0x%x "

Return to bug 196264