linux-next: manual merge of the net tree with the wireless-currenttree

From: Stephen Rothwell
Date: Tue Jul 21 2009 - 22:00:18 EST


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-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/