kernel: 5.4: import wireguard backport
[openwrt/openwrt.git] / target / linux / generic / backport-5.4 / 080-wireguard-0112-netlink-consistently-use-NLA_POLICY_EXACT_LEN.patch
1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2 From: Johannes Berg <johannes.berg@intel.com>
3 Date: Tue, 18 Aug 2020 10:17:31 +0200
4 Subject: [PATCH] netlink: consistently use NLA_POLICY_EXACT_LEN()
5
6 commit 8140860c817f3e9f78bcd1e420b9777ddcbaa629 upstream.
7
8 Change places that open-code NLA_POLICY_EXACT_LEN() to
9 use the macro instead, giving us flexibility in how we
10 handle the details of the macro.
11
12 Signed-off-by: Johannes Berg <johannes.berg@intel.com>
13 Acked-by: Matthieu Baerts <matthieu.baerts@tessares.net>
14 Signed-off-by: David S. Miller <davem@davemloft.net>
15 [Jason: only picked the drivers/net/wireguard/* part]
16 Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
17 ---
18 drivers/net/wireguard/netlink.c | 10 +++++-----
19 1 file changed, 5 insertions(+), 5 deletions(-)
20
21 --- a/drivers/net/wireguard/netlink.c
22 +++ b/drivers/net/wireguard/netlink.c
23 @@ -22,8 +22,8 @@ static struct genl_family genl_family;
24 static const struct nla_policy device_policy[WGDEVICE_A_MAX + 1] = {
25 [WGDEVICE_A_IFINDEX] = { .type = NLA_U32 },
26 [WGDEVICE_A_IFNAME] = { .type = NLA_NUL_STRING, .len = IFNAMSIZ - 1 },
27 - [WGDEVICE_A_PRIVATE_KEY] = { .type = NLA_EXACT_LEN, .len = NOISE_PUBLIC_KEY_LEN },
28 - [WGDEVICE_A_PUBLIC_KEY] = { .type = NLA_EXACT_LEN, .len = NOISE_PUBLIC_KEY_LEN },
29 + [WGDEVICE_A_PRIVATE_KEY] = NLA_POLICY_EXACT_LEN(NOISE_PUBLIC_KEY_LEN),
30 + [WGDEVICE_A_PUBLIC_KEY] = NLA_POLICY_EXACT_LEN(NOISE_PUBLIC_KEY_LEN),
31 [WGDEVICE_A_FLAGS] = { .type = NLA_U32 },
32 [WGDEVICE_A_LISTEN_PORT] = { .type = NLA_U16 },
33 [WGDEVICE_A_FWMARK] = { .type = NLA_U32 },
34 @@ -31,12 +31,12 @@ static const struct nla_policy device_po
35 };
36
37 static const struct nla_policy peer_policy[WGPEER_A_MAX + 1] = {
38 - [WGPEER_A_PUBLIC_KEY] = { .type = NLA_EXACT_LEN, .len = NOISE_PUBLIC_KEY_LEN },
39 - [WGPEER_A_PRESHARED_KEY] = { .type = NLA_EXACT_LEN, .len = NOISE_SYMMETRIC_KEY_LEN },
40 + [WGPEER_A_PUBLIC_KEY] = NLA_POLICY_EXACT_LEN(NOISE_PUBLIC_KEY_LEN),
41 + [WGPEER_A_PRESHARED_KEY] = NLA_POLICY_EXACT_LEN(NOISE_SYMMETRIC_KEY_LEN),
42 [WGPEER_A_FLAGS] = { .type = NLA_U32 },
43 [WGPEER_A_ENDPOINT] = { .type = NLA_MIN_LEN, .len = sizeof(struct sockaddr) },
44 [WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL] = { .type = NLA_U16 },
45 - [WGPEER_A_LAST_HANDSHAKE_TIME] = { .type = NLA_EXACT_LEN, .len = sizeof(struct __kernel_timespec) },
46 + [WGPEER_A_LAST_HANDSHAKE_TIME] = NLA_POLICY_EXACT_LEN(sizeof(struct __kernel_timespec)),
47 [WGPEER_A_RX_BYTES] = { .type = NLA_U64 },
48 [WGPEER_A_TX_BYTES] = { .type = NLA_U64 },
49 [WGPEER_A_ALLOWEDIPS] = { .type = NLA_NESTED },