diff options
author | Ingo Molnar <mingo@elte.hu> | 2011-12-15 08:21:21 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-12-15 08:21:30 +0100 |
commit | 6a54aebf6978e9f296a4d3da3e40af425163c22e (patch) | |
tree | 8217c7114db02d8b69c22fc44880749426949bc3 /net/wireless/scan.c | |
parent | 067491b7313c41f49607fce782d29344d1472587 (diff) | |
parent | dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50 (diff) | |
download | op-kernel-dev-6a54aebf6978e9f296a4d3da3e40af425163c22e.zip op-kernel-dev-6a54aebf6978e9f296a4d3da3e40af425163c22e.tar.gz |
Merge commit 'v3.2-rc5' into sched/core
Merge reason: Pick up the latest fixes.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'net/wireless/scan.c')
-rw-r--r-- | net/wireless/scan.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/net/wireless/scan.c b/net/wireless/scan.c index 0fb1424..dc23b31 100644 --- a/net/wireless/scan.c +++ b/net/wireless/scan.c @@ -259,17 +259,20 @@ static int cmp_ies(u8 num, u8 *ies1, size_t len1, u8 *ies2, size_t len2) { const u8 *ie1 = cfg80211_find_ie(num, ies1, len1); const u8 *ie2 = cfg80211_find_ie(num, ies2, len2); - int r; + /* equal if both missing */ if (!ie1 && !ie2) return 0; - if (!ie1 || !ie2) + /* sort missing IE before (left of) present IE */ + if (!ie1) return -1; + if (!ie2) + return 1; - r = memcmp(ie1 + 2, ie2 + 2, min(ie1[1], ie2[1])); - if (r == 0 && ie1[1] != ie2[1]) + /* sort by length first, then by contents */ + if (ie1[1] != ie2[1]) return ie2[1] - ie1[1]; - return r; + return memcmp(ie1 + 2, ie2 + 2, ie1[1]); } static bool is_bss(struct cfg80211_bss *a, |