diff options
author | 2016-12-08 17:24:25 +0000 | |
---|---|---|
committer | 2016-12-08 17:24:25 +0000 | |
commit | e621338f183aaf02b88593bdcba8c4e3e0430e96 (patch) | |
tree | fe987232fdb865b51d809bbbda73e576e4d8f21a | |
parent | Return ENODEV if playback is requested on devices with no DACs or (diff) | |
download | wireguard-openbsd-e621338f183aaf02b88593bdcba8c4e3e0430e96.tar.xz wireguard-openbsd-e621338f183aaf02b88593bdcba8c4e3e0430e96.zip |
iwm(4) was stripping some bits from the MCS index value before passing
it to bpf for tcpdump(8). Fix it so MCS >= 8 get passed on correctly.
ok phessler@
-rw-r--r-- | sys/dev/pci/if_iwm.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c index f890d5b4f74..baac7627b4e 100644 --- a/sys/dev/pci/if_iwm.c +++ b/sys/dev/pci/if_iwm.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_iwm.c,v 1.150 2016/12/06 12:57:20 stsp Exp $ */ +/* $OpenBSD: if_iwm.c,v 1.151 2016/12/08 17:24:25 stsp Exp $ */ /* * Copyright (c) 2014, 2016 genua gmbh <info@genua.de> @@ -3321,7 +3321,8 @@ iwm_rx_rx_mpdu(struct iwm_softc *sc, struct iwm_rx_packet *pkt, if (phy_info->phy_flags & htole16(IWM_RX_RES_PHY_FLAGS_OFDM_HT)) { uint8_t mcs = (phy_info->rate_n_flags & - htole32(IWM_RATE_HT_MCS_RATE_CODE_MSK)); + htole32(IWM_RATE_HT_MCS_RATE_CODE_MSK | + IWM_RATE_HT_MCS_NSS_MSK)); tap->wr_rate = (0x80 | mcs); } else { uint8_t rate = (phy_info->rate_n_flags & |