From 59b42c0e09c7f59cffe967e325c951e02744e2f3 Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Tue, 21 Jun 2011 09:45:33 +0200 Subject: [PATCH] --- yaml --- r: 255871 b: refs/heads/master c: 9720bb3ab0b80659c63ed337eab66104a4156db0 h: refs/heads/master i: 255869: 14f259fc5206750ae4f485860ce96433581bc184 255867: 7c4cc603be486e0821dcce5c5db960f5a53dd281 255863: 6ccacb106692ceb0325c2d775c4076c3fae6d439 255855: 7d9a93c4e9d1ae3e777dd90e9884d5c735a966cc 255839: 54cdac6d8ed0e5c07a56fae15fcfe29bfb5af639 255807: 09d5dcc2db62c732f2a0750c3d0e5f829c3a387f 255743: 7796555be559eaffbfaadb5f27111b6ec8db288c v: v3 --- [refs] | 2 +- trunk/net/wireless/nl80211.c | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 6bfd2314ba35..65085576be87 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a5ffddb70c5cab29fa00e2fdf12217b64b940796 +refs/heads/master: 9720bb3ab0b80659c63ed337eab66104a4156db0 diff --git a/trunk/net/wireless/nl80211.c b/trunk/net/wireless/nl80211.c index 10823e2b60ce..aed6d2ad4c90 100644 --- a/trunk/net/wireless/nl80211.c +++ b/trunk/net/wireless/nl80211.c @@ -3620,7 +3620,8 @@ static int nl80211_stop_sched_scan(struct sk_buff *skb, return __cfg80211_stop_sched_scan(rdev, false); } -static int nl80211_send_bss(struct sk_buff *msg, u32 pid, u32 seq, int flags, +static int nl80211_send_bss(struct sk_buff *msg, struct netlink_callback *cb, + u32 seq, int flags, struct cfg80211_registered_device *rdev, struct wireless_dev *wdev, struct cfg80211_internal_bss *intbss) @@ -3632,11 +3633,13 @@ static int nl80211_send_bss(struct sk_buff *msg, u32 pid, u32 seq, int flags, ASSERT_WDEV_LOCK(wdev); - hdr = nl80211hdr_put(msg, pid, seq, flags, + hdr = nl80211hdr_put(msg, NETLINK_CB(cb->skb).pid, seq, flags, NL80211_CMD_NEW_SCAN_RESULTS); if (!hdr) return -1; + genl_dump_check_consistent(cb, hdr, &nl80211_fam); + NLA_PUT_U32(msg, NL80211_ATTR_GENERATION, rdev->bss_generation); NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, wdev->netdev->ifindex); @@ -3725,11 +3728,12 @@ static int nl80211_dump_scan(struct sk_buff *skb, spin_lock_bh(&rdev->bss_lock); cfg80211_bss_expire(rdev); + cb->seq = rdev->bss_generation; + list_for_each_entry(scan, &rdev->bss_list, list) { if (++idx <= start) continue; - if (nl80211_send_bss(skb, - NETLINK_CB(cb->skb).pid, + if (nl80211_send_bss(skb, cb, cb->nlh->nlmsg_seq, NLM_F_MULTI, rdev, wdev, scan) < 0) { idx--;