Index: sys/dev/rtwn/if_rtwn.c
===================================================================
--- sys/dev/rtwn/if_rtwn.c	(revision 302191)
+++ sys/dev/rtwn/if_rtwn.c	(working copy)
@@ -1498,6 +1498,8 @@
 		counter_u64_add(ic->ic_ierrors, 1);
 		return;
 	}
+	bus_dmamap_sync(sc->rx_ring.data_dmat, rx_data->map,
+	    BUS_DMASYNC_POSTREAD);
 	bus_dmamap_unload(sc->rx_ring.data_dmat, rx_data->map);
 
 	error = bus_dmamap_load(sc->rx_ring.data_dmat, rx_data->map,
@@ -2484,8 +2486,8 @@
 	/* Initialize Rx filter. */
 	/* TODO: use better filter for monitor mode. */
 	rtwn_write_4(sc, R92C_RCR,
-	    R92C_RCR_AAP | R92C_RCR_APM | R92C_RCR_AM | R92C_RCR_AB |
-	    R92C_RCR_APP_ICV | R92C_RCR_AMF | R92C_RCR_HTC_LOC_CTRL |
+	    R92C_RCR_APM | R92C_RCR_AM | R92C_RCR_AB |
+	    R92C_RCR_APP_ICV | R92C_RCR_HTC_LOC_CTRL |
 	    R92C_RCR_APP_MIC | R92C_RCR_APP_PHYSTS);
 	/* Accept all multicast frames. */
 	rtwn_write_4(sc, R92C_MAR + 0, 0xffffffff);
@@ -2494,8 +2496,8 @@
 	rtwn_write_2(sc, R92C_RXFLTMAP0, 0xffff);
 	/* Reject all control frames. */
 	rtwn_write_2(sc, R92C_RXFLTMAP1, 0x0000);
-	/* Accept all data frames. */
-	rtwn_write_2(sc, R92C_RXFLTMAP2, 0xffff);
+	/* Reject all data frames. */
+	rtwn_write_2(sc, R92C_RXFLTMAP2, 0x0000);
 }
 
 static void
