Hi David, Today's linux-next merge of the net tree got a conflict in net/wireless/scan.c between commit 9e81eccf199d910e5ea8db377a43478e4eccd033 ("cfg80211: double free in __cfg80211_scan_done") from the wireless-current tree and commit 667503ddcb96f3b10211f997fe55907fa7509841 ("cfg80211: fix locking") from the net tree. Overlapping additions. I fixed it up (I think - see below) and can carry the fix as ncessary. -- Cheers, Stephen Rothwell sfr@xxxxxxxxxxxxxxxx diff --cc net/wireless/scan.c index 9271118,4f552c3..0000000 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c @@@ -35,8 -48,10 +48,8 @@@ void __cfg80211_scan_done(struct work_s else nl80211_send_scan_done(wiphy_to_dev(request->wiphy), dev); - wiphy_to_dev(request->wiphy)->scan_req = NULL; - #ifdef CONFIG_WIRELESS_EXT - if (!aborted) { + if (!request->aborted) { memset(&wrqu, 0, sizeof(wrqu)); wireless_send_event(dev, SIOCGIWSCAN, &wrqu, NULL); @@@ -46,9 -61,24 +59,25 @@@ dev_put(dev); out: + wiphy_to_dev(request->wiphy)->scan_req = NULL; + cfg80211_unlock_rdev(rdev); kfree(request); } + + void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted) + { + struct net_device *dev = dev_get_by_index(&init_net, request->ifidx); + if (WARN_ON(!dev)) { + kfree(request); + return; + } + + WARN_ON(request != wiphy_to_dev(request->wiphy)->scan_req); + + request->aborted = aborted; + schedule_work(&wiphy_to_dev(request->wiphy)->scan_done_wk); + dev_put(dev); + } EXPORT_SYMBOL(cfg80211_scan_done); static void bss_release(struct kref *ref) -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html