1 |
commit: 8405112f9e37d099beb627a54af37cae60647ec3 |
2 |
Author: Sergey Popov <pinkbyte <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Jan 9 12:22:49 2020 +0000 |
4 |
Commit: Sergey Popov <pinkbyte <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Jan 9 12:25:34 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8405112f |
7 |
|
8 |
net-dialup/accel-ppp: backport compatibility patch for new kernels |
9 |
|
10 |
Closes: https://bugs.gentoo.org/704306 |
11 |
Signed-off-by: Sergey Popov <pinkbyte <AT> gentoo.org> |
12 |
Package-Manager: Portage-2.3.66, Repoman-2.3.11 |
13 |
|
14 |
net-dialup/accel-ppp/Manifest | 1 - |
15 |
net-dialup/accel-ppp/accel-ppp-1.12.0.ebuild | 3 +- |
16 |
.../files/accel-ppp-1.12.0-kernel-5.2.patch | 282 +++++++++++++++++++++ |
17 |
3 files changed, 284 insertions(+), 2 deletions(-) |
18 |
|
19 |
diff --git a/net-dialup/accel-ppp/Manifest b/net-dialup/accel-ppp/Manifest |
20 |
index e8ecf5cc9a3..2272c95bf67 100644 |
21 |
--- a/net-dialup/accel-ppp/Manifest |
22 |
+++ b/net-dialup/accel-ppp/Manifest |
23 |
@@ -1,2 +1 @@ |
24 |
-DIST accel-ppp-1.11.1_p20180320.tar.bz2 1634359 BLAKE2B 97ca709ef3740c2ac1d75f6fba3acbf9229c3cb48f3a55735eaa14b74c2b0af96d637cbb145bc9e98a5b245704806cdc3d8f9d8692809626e0f73d73702c4a0a SHA512 a8a2420332c02087e45bbaab25831ae5d2d370fd56b29db77c267083badc22b90ca4b0ec7335e13250ac8f150002b2a3c343cfba6c2378932778777dc936d914 |
25 |
DIST accel-ppp-1.12.0.tar 6758400 BLAKE2B 776c0946decec2d88a0dfeb8e840573ae8d53d53d0fe921604667eaf4a5658e7d0cfa57f0b54eb61fcdf62b7a62a94ee405a01ad2a66ab76042d59cc3f79d42b SHA512 f1d3b31ca36395a429214b7599a43755317d89391c5631dfd02df79ed8dd51c39f75fc56ac625fbc6e7d5b0f9c85699c5da612eb4e8af9eae8ad2d9b13a187ba |
26 |
|
27 |
diff --git a/net-dialup/accel-ppp/accel-ppp-1.12.0.ebuild b/net-dialup/accel-ppp/accel-ppp-1.12.0.ebuild |
28 |
index f2e7d2b54cc..e60b57f2e25 100644 |
29 |
--- a/net-dialup/accel-ppp/accel-ppp-1.12.0.ebuild |
30 |
+++ b/net-dialup/accel-ppp/accel-ppp-1.12.0.ebuild |
31 |
@@ -1,4 +1,4 @@ |
32 |
-# Copyright 1999-2019 Gentoo Authors |
33 |
+# Copyright 1999-2020 Gentoo Authors |
34 |
# Distributed under the terms of the GNU General Public License v2 |
35 |
|
36 |
EAPI=7 |
37 |
@@ -31,6 +31,7 @@ REQUIRED_USE="valgrind? ( debug )" |
38 |
|
39 |
PATCHES=( |
40 |
"${FILESDIR}/${PN}-1.11.1-socklen.patch" |
41 |
+ "${FILESDIR}/${PV}-kernel-5.2.patch" |
42 |
) |
43 |
|
44 |
pkg_setup() { |
45 |
|
46 |
diff --git a/net-dialup/accel-ppp/files/accel-ppp-1.12.0-kernel-5.2.patch b/net-dialup/accel-ppp/files/accel-ppp-1.12.0-kernel-5.2.patch |
47 |
new file mode 100644 |
48 |
index 00000000000..8300908a2d2 |
49 |
--- /dev/null |
50 |
+++ b/net-dialup/accel-ppp/files/accel-ppp-1.12.0-kernel-5.2.patch |
51 |
@@ -0,0 +1,282 @@ |
52 |
+From 4d837cc3bd92493732f2c598560e9e83c82f9b9e Mon Sep 17 00:00:00 2001 |
53 |
+From: Dmitry Kozlov <xeb@××××.ru> |
54 |
+Date: Tue, 24 Dec 2019 14:50:04 +0300 |
55 |
+Subject: [PATCH] ipoe,vlan_mon: add support for kernels 5.2+ |
56 |
+ |
57 |
+--- |
58 |
+ drivers/ipoe/ipoe.c | 58 +++++++++++++++++++++++++++++-------- |
59 |
+ drivers/vlan_mon/vlan_mon.c | 37 +++++++++++++++++------ |
60 |
+ 2 files changed, 74 insertions(+), 21 deletions(-) |
61 |
+ |
62 |
+diff --git a/drivers/ipoe/ipoe.c b/drivers/ipoe/ipoe.c |
63 |
+index f3acb3f5..6ac6d77a 100644 |
64 |
+--- a/drivers/ipoe/ipoe.c |
65 |
++++ b/drivers/ipoe/ipoe.c |
66 |
+@@ -174,6 +174,10 @@ static struct genl_multicast_group ipoe_nl_mcg; |
67 |
+ #define NETIF_F_HW_VLAN_FILTER NETIF_F_HW_VLAN_CTAG_FILTER |
68 |
+ #endif |
69 |
+ |
70 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
71 |
++#define nla_nest_start_noflag(skb, attr) nla_nest_start(skb, attr) |
72 |
++#endif |
73 |
++ |
74 |
+ static inline int hash_addr(__be32 addr) |
75 |
+ { |
76 |
+ #ifdef __LITTLE_ENDIAN |
77 |
+@@ -255,8 +259,13 @@ static int check_nat_required(struct sk_buff *skb, struct net_device *link) |
78 |
+ if (IS_ERR(rt)) |
79 |
+ return 0; |
80 |
+ |
81 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
82 |
+ if (rt->rt_gateway || (rt->dst.dev != link && rt->dst.dev != skb->dev)) |
83 |
+ r = 1; |
84 |
++#else |
85 |
++ if (rt->rt_gw4 || (rt->dst.dev != link && rt->dst.dev != skb->dev)) |
86 |
++ r = 1; |
87 |
++#endif |
88 |
+ |
89 |
+ ip_rt_put(rt); |
90 |
+ |
91 |
+@@ -616,7 +625,7 @@ static void ipoe_process_queue(struct work_struct *w) |
92 |
+ } |
93 |
+ |
94 |
+ if (report_skb) { |
95 |
+- ns = nla_nest_start(report_skb, id++); |
96 |
++ ns = nla_nest_start_noflag(report_skb, id++); |
97 |
+ if (!ns) |
98 |
+ goto nl_err; |
99 |
+ |
100 |
+@@ -1729,7 +1738,7 @@ static int ipoe_nl_cmd_del_net(struct sk_buff *skb, struct genl_info *info) |
101 |
+ return 0; |
102 |
+ } |
103 |
+ |
104 |
+-static struct nla_policy ipoe_nl_policy[IPOE_ATTR_MAX + 1] = { |
105 |
++static const struct nla_policy ipoe_nl_policy[IPOE_ATTR_MAX + 1] = { |
106 |
+ [IPOE_ATTR_NONE] = { .type = NLA_UNSPEC, }, |
107 |
+ [IPOE_ATTR_ADDR] = { .type = NLA_U32, }, |
108 |
+ [IPOE_ATTR_PEER_ADDR] = { .type = NLA_U32, }, |
109 |
+@@ -1741,71 +1750,93 @@ static struct nla_policy ipoe_nl_policy[IPOE_ATTR_MAX + 1] = { |
110 |
+ [IPOE_ATTR_LINK_IFINDEX]= { .type = NLA_U32, }, |
111 |
+ }; |
112 |
+ |
113 |
+-static struct genl_ops ipoe_nl_ops[] = { |
114 |
++static const struct genl_ops ipoe_nl_ops[] = { |
115 |
+ { |
116 |
+ .cmd = IPOE_CMD_NOOP, |
117 |
+ .doit = ipoe_nl_cmd_noop, |
118 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
119 |
+ .policy = ipoe_nl_policy, |
120 |
++#endif |
121 |
+ /* can be retrieved by unprivileged users */ |
122 |
+ }, |
123 |
+ { |
124 |
+ .cmd = IPOE_CMD_CREATE, |
125 |
+ .doit = ipoe_nl_cmd_create, |
126 |
+- .policy = ipoe_nl_policy, |
127 |
+ .flags = GENL_ADMIN_PERM, |
128 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
129 |
++ .policy = ipoe_nl_policy, |
130 |
++#endif |
131 |
+ }, |
132 |
+ { |
133 |
+ .cmd = IPOE_CMD_DELETE, |
134 |
+ .doit = ipoe_nl_cmd_delete, |
135 |
+- .policy = ipoe_nl_policy, |
136 |
+ .flags = GENL_ADMIN_PERM, |
137 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
138 |
++ .policy = ipoe_nl_policy, |
139 |
++#endif |
140 |
+ }, |
141 |
+ { |
142 |
+ .cmd = IPOE_CMD_MODIFY, |
143 |
+ .doit = ipoe_nl_cmd_modify, |
144 |
+- .policy = ipoe_nl_policy, |
145 |
+ .flags = GENL_ADMIN_PERM, |
146 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
147 |
++ .policy = ipoe_nl_policy, |
148 |
++#endif |
149 |
+ }, |
150 |
+ { |
151 |
+ .cmd = IPOE_CMD_GET, |
152 |
+ .dumpit = ipoe_nl_cmd_dump_sessions, |
153 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
154 |
+ .policy = ipoe_nl_policy, |
155 |
++#endif |
156 |
+ }, |
157 |
+ { |
158 |
+ .cmd = IPOE_CMD_ADD_IF, |
159 |
+ .doit = ipoe_nl_cmd_add_interface, |
160 |
+- .policy = ipoe_nl_policy, |
161 |
+ .flags = GENL_ADMIN_PERM, |
162 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
163 |
++ .policy = ipoe_nl_policy, |
164 |
++#endif |
165 |
+ }, |
166 |
+ { |
167 |
+ .cmd = IPOE_CMD_DEL_IF, |
168 |
+ .doit = ipoe_nl_cmd_del_interface, |
169 |
+- .policy = ipoe_nl_policy, |
170 |
+ .flags = GENL_ADMIN_PERM, |
171 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
172 |
++ .policy = ipoe_nl_policy, |
173 |
++#endif |
174 |
+ }, |
175 |
+ { |
176 |
+ .cmd = IPOE_CMD_ADD_EXCLUDE, |
177 |
+ .doit = ipoe_nl_cmd_add_exclude, |
178 |
+- .policy = ipoe_nl_policy, |
179 |
+ .flags = GENL_ADMIN_PERM, |
180 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
181 |
++ .policy = ipoe_nl_policy, |
182 |
++#endif |
183 |
+ }, |
184 |
+ { |
185 |
+ .cmd = IPOE_CMD_DEL_EXCLUDE, |
186 |
+ .doit = ipoe_nl_cmd_del_exclude, |
187 |
+- .policy = ipoe_nl_policy, |
188 |
+ .flags = GENL_ADMIN_PERM, |
189 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
190 |
++ .policy = ipoe_nl_policy, |
191 |
++#endif |
192 |
+ }, |
193 |
+ { |
194 |
+ .cmd = IPOE_CMD_ADD_NET, |
195 |
+ .doit = ipoe_nl_cmd_add_net, |
196 |
+- .policy = ipoe_nl_policy, |
197 |
+ .flags = GENL_ADMIN_PERM, |
198 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
199 |
++ .policy = ipoe_nl_policy, |
200 |
++#endif |
201 |
+ }, |
202 |
+ { |
203 |
+ .cmd = IPOE_CMD_DEL_NET, |
204 |
+ .doit = ipoe_nl_cmd_del_net, |
205 |
+- .policy = ipoe_nl_policy, |
206 |
+ .flags = GENL_ADMIN_PERM, |
207 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
208 |
++ .policy = ipoe_nl_policy, |
209 |
++#endif |
210 |
+ }, |
211 |
+ }; |
212 |
+ |
213 |
+@@ -1834,6 +1865,9 @@ static struct genl_family ipoe_nl_family = { |
214 |
+ .mcgrps = ipoe_nl_mcgs, |
215 |
+ .n_mcgrps = ARRAY_SIZE(ipoe_nl_mcgs), |
216 |
+ #endif |
217 |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0) |
218 |
++ .policy = ipoe_nl_policy, |
219 |
++#endif |
220 |
+ }; |
221 |
+ |
222 |
+ static const struct net_device_ops ipoe_netdev_ops = { |
223 |
+diff --git a/drivers/vlan_mon/vlan_mon.c b/drivers/vlan_mon/vlan_mon.c |
224 |
+index b6476d4c..271f2ff1 100644 |
225 |
+--- a/drivers/vlan_mon/vlan_mon.c |
226 |
++++ b/drivers/vlan_mon/vlan_mon.c |
227 |
+@@ -43,6 +43,10 @@ |
228 |
+ #define vlan_tx_tag_present(skb) skb_vlan_tag_present(skb) |
229 |
+ #endif |
230 |
+ |
231 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
232 |
++#define nla_nest_start_noflag(skb, attr) nla_nest_start(skb, attr) |
233 |
++#endif |
234 |
++ |
235 |
+ struct vlan_dev { |
236 |
+ unsigned int magic; |
237 |
+ int ifindex; |
238 |
+@@ -198,13 +202,13 @@ static void vlan_do_notify(struct work_struct *w) |
239 |
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0) && RHEL_MAJOR < 7 |
240 |
+ header = genlmsg_put(report_skb, 0, vlan_mon_nl_mcg.id, &vlan_mon_nl_family, 0, VLAN_MON_NOTIFY); |
241 |
+ #else |
242 |
+- header = genlmsg_put(report_skb, 0, vlan_mon_nl_family.mcgrp_offset, &vlan_mon_nl_family, 0, VLAN_MON_NOTIFY); |
243 |
++ header = genlmsg_put(report_skb, 0, 0, &vlan_mon_nl_family, 0, VLAN_MON_NOTIFY); |
244 |
+ #endif |
245 |
+ } |
246 |
+ |
247 |
+ //pr_info("notify %i vlan %i\n", id, n->vid); |
248 |
+ |
249 |
+- ns = nla_nest_start(report_skb, id++); |
250 |
++ ns = nla_nest_start_noflag(report_skb, id++); |
251 |
+ if (!ns) |
252 |
+ goto nl_err; |
253 |
+ |
254 |
+@@ -616,7 +620,7 @@ static int vlan_mon_nl_cmd_check_busy(struct sk_buff *skb, struct genl_info *inf |
255 |
+ return ret; |
256 |
+ } |
257 |
+ |
258 |
+-static struct nla_policy vlan_mon_nl_policy[VLAN_MON_ATTR_MAX + 1] = { |
259 |
++static const struct nla_policy vlan_mon_nl_policy[VLAN_MON_ATTR_MAX + 1] = { |
260 |
+ [VLAN_MON_ATTR_NONE] = { .type = NLA_UNSPEC, }, |
261 |
+ [VLAN_MON_ATTR_VLAN_MASK] = { .type = NLA_BINARY, .len = 4096/8 }, |
262 |
+ [VLAN_MON_ATTR_PROTO] = { .type = NLA_U16, }, |
263 |
+@@ -624,42 +628,54 @@ static struct nla_policy vlan_mon_nl_policy[VLAN_MON_ATTR_MAX + 1] = { |
264 |
+ [VLAN_MON_ATTR_VID] = { .type = NLA_U16, }, |
265 |
+ }; |
266 |
+ |
267 |
+-static struct genl_ops vlan_mon_nl_ops[] = { |
268 |
++static const struct genl_ops vlan_mon_nl_ops[] = { |
269 |
+ { |
270 |
+ .cmd = VLAN_MON_CMD_NOOP, |
271 |
+ .doit = vlan_mon_nl_cmd_noop, |
272 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
273 |
+ .policy = vlan_mon_nl_policy, |
274 |
++#endif |
275 |
+ /* can be retrieved by unprivileged users */ |
276 |
+ }, |
277 |
+ { |
278 |
+ .cmd = VLAN_MON_CMD_ADD, |
279 |
+ .doit = vlan_mon_nl_cmd_add_vlan_mon, |
280 |
+- .policy = vlan_mon_nl_policy, |
281 |
+ .flags = GENL_ADMIN_PERM, |
282 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
283 |
++ .policy = vlan_mon_nl_policy, |
284 |
++#endif |
285 |
+ }, |
286 |
+ { |
287 |
+ .cmd = VLAN_MON_CMD_ADD_VID, |
288 |
+ .doit = vlan_mon_nl_cmd_add_vlan_mon_vid, |
289 |
+- .policy = vlan_mon_nl_policy, |
290 |
+ .flags = GENL_ADMIN_PERM, |
291 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
292 |
++ .policy = vlan_mon_nl_policy, |
293 |
++#endif |
294 |
+ }, |
295 |
+ { |
296 |
+ .cmd = VLAN_MON_CMD_DEL, |
297 |
+ .doit = vlan_mon_nl_cmd_del_vlan_mon, |
298 |
+- .policy = vlan_mon_nl_policy, |
299 |
+ .flags = GENL_ADMIN_PERM, |
300 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
301 |
++ .policy = vlan_mon_nl_policy, |
302 |
++#endif |
303 |
+ }, |
304 |
+ { |
305 |
+ .cmd = VLAN_MON_CMD_CHECK_BUSY, |
306 |
+ .doit = vlan_mon_nl_cmd_check_busy, |
307 |
+- .policy = vlan_mon_nl_policy, |
308 |
+ .flags = GENL_ADMIN_PERM, |
309 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
310 |
++ .policy = vlan_mon_nl_policy, |
311 |
++#endif |
312 |
+ }, |
313 |
+ { |
314 |
+ .cmd = VLAN_MON_CMD_DEL_VID, |
315 |
+ .doit = vlan_mon_nl_cmd_del_vlan_mon_vid, |
316 |
+- .policy = vlan_mon_nl_policy, |
317 |
+ .flags = GENL_ADMIN_PERM, |
318 |
++#if LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0) |
319 |
++ .policy = vlan_mon_nl_policy, |
320 |
++#endif |
321 |
+ }, |
322 |
+ }; |
323 |
+ |
324 |
+@@ -688,6 +704,9 @@ static struct genl_family vlan_mon_nl_family = { |
325 |
+ .mcgrps = vlan_mon_nl_mcgs, |
326 |
+ .n_mcgrps = ARRAY_SIZE(vlan_mon_nl_mcgs), |
327 |
+ #endif |
328 |
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5,2,0) |
329 |
++ .policy = vlan_mon_nl_policy, |
330 |
++#endif |
331 |
+ }; |
332 |
+ |
333 |
+ static struct packet_type vlan_pt __read_mostly = { |