mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
53 lines
1.9 KiB
Diff
53 lines
1.9 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Jann Horn <jannh@google.com>
|
||
|
Date: Mon, 22 Feb 2021 17:25:44 +0100
|
||
|
Subject: [PATCH] wireguard: socket: remove bogus __be32 annotation
|
||
|
|
||
|
commit 7f57bd8dc22de35ddd895294aa554003e4f19a72 upstream.
|
||
|
|
||
|
The endpoint->src_if4 has nothing to do with fixed-endian numbers; remove
|
||
|
the bogus annotation.
|
||
|
|
||
|
This was introduced in
|
||
|
https://git.zx2c4.com/wireguard-monolithic-historical/commit?id=14e7d0a499a676ec55176c0de2f9fcbd34074a82
|
||
|
in the historical WireGuard repo because the old code used to
|
||
|
zero-initialize multiple members as follows:
|
||
|
|
||
|
endpoint->src4.s_addr = endpoint->src_if4 = fl.saddr = 0;
|
||
|
|
||
|
Because fl.saddr is fixed-endian and an assignment returns a value with the
|
||
|
type of its left operand, this meant that sparse detected an assignment
|
||
|
between values of different endianness.
|
||
|
|
||
|
Since then, this assignment was already split up into separate statements;
|
||
|
just the cast survived.
|
||
|
|
||
|
Signed-off-by: Jann Horn <jannh@google.com>
|
||
|
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
||
|
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
|
||
|
---
|
||
|
drivers/net/wireguard/socket.c | 4 ++--
|
||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
--- a/drivers/net/wireguard/socket.c
|
||
|
+++ b/drivers/net/wireguard/socket.c
|
||
|
@@ -53,7 +53,7 @@ static int send4(struct wg_device *wg, s
|
||
|
if (unlikely(!inet_confirm_addr(sock_net(sock), NULL, 0,
|
||
|
fl.saddr, RT_SCOPE_HOST))) {
|
||
|
endpoint->src4.s_addr = 0;
|
||
|
- *(__force __be32 *)&endpoint->src_if4 = 0;
|
||
|
+ endpoint->src_if4 = 0;
|
||
|
fl.saddr = 0;
|
||
|
if (cache)
|
||
|
dst_cache_reset(cache);
|
||
|
@@ -63,7 +63,7 @@ static int send4(struct wg_device *wg, s
|
||
|
PTR_ERR(rt) == -EINVAL) || (!IS_ERR(rt) &&
|
||
|
rt->dst.dev->ifindex != endpoint->src_if4)))) {
|
||
|
endpoint->src4.s_addr = 0;
|
||
|
- *(__force __be32 *)&endpoint->src_if4 = 0;
|
||
|
+ endpoint->src_if4 = 0;
|
||
|
fl.saddr = 0;
|
||
|
if (cache)
|
||
|
dst_cache_reset(cache);
|