summaryrefslogtreecommitdiff
path: root/patches/collateral-evolutions/network/0002-disable-dump-adjust-on-old-kernels.patch
blob: 64e4f91f97dc7935cf3f4d59ec7e4a434799aa10 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
On older kernels, we can't do this workaround, so if you use
an old 64-bit kernel with compat you'd better upgrade.

For more details of this work around refer to this commit
upstream that deals with the code added:

commit 645e77def93f1dd0e211c7244fbe152dac8a7100
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Mar 1 14:03:49 2013 +0100

    nl80211: increase wiphy dump size dynamically
    
    Given a device with many channels capabilities the wiphy
    information can still overflow even though its size in
    3.9 was reduced to 3.8 levels. For new userspace and
    kernel 3.10 we're going to implement a new "split dump"
    protocol that can use multiple messages per wiphy.
    
    For now though, add a workaround to be able to send more
    information to userspace. Since generic netlink doesn't
    have a way to set the minimum dump size globally, and we
    wouldn't really want to set it globally anyway, increase
    the size only when needed, as described in the comments.
    As userspace might not be prepared for large buffers, we
    can only use 4k.
    
    Also increase the size for the get_wiphy command.

--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1846,6 +1846,7 @@ static int nl80211_dump_wiphy(struct sk_
 						 cb->nlh->nlmsg_seq,
 						 NLM_F_MULTI, state);
 			if (ret < 0) {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
 				/*
 				 * If sending the wiphy data didn't fit (ENOBUFS
 				 * or EMSGSIZE returned), this SKB is still
@@ -1867,6 +1868,7 @@ static int nl80211_dump_wiphy(struct sk_
 					rtnl_unlock();
 					return 1;
 				}
+#endif
 				idx--;
 				break;
 			}