On Sun, 2012-07-08 at 01:39 +0300, Eliad Peller wrote: > > + sdata1 = rcu_dereference(local->scan_sdata); > > + sdata2 = rcu_dereference(local->sched_scan_sdata); > > > > - if (skb->len < 24) > > - return RX_CONTINUE; > > + if (likely(!sdata1 && !sdata2)) > > + return; > > > > - presp = ieee80211_is_probe_resp(fc); > > - if (presp) { > > + if (ieee80211_is_probe_resp(mgmt->frame_control)) { > > /* ignore ProbeResp to foreign address */ > > - if (!ether_addr_equal(mgmt->da, sdata->vif.addr)) > > - return RX_DROP_MONITOR; > > + if (!ether_addr_equal(mgmt->da, sdata1->vif.addr) && > > + !ether_addr_equal(mgmt->da, sdata2->vif.addr)) > > + return; > > you should check sdata1 and sdata2 before dereferencing them. Yes, good catch, thanks. It seems I should've crashed it in testing, I'll make sure I tested the right code ... unless, I think our device may be filtering probe responses to foreign addresses, and we don't have sched scan. Yeah, that might do it. Anyway, I'll fix it. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html