Commit 842c361b authored by Jakub Kicinski's avatar Jakub Kicinski

Merge branch 'wireguard-fixes-for-6-10-rc7'

Jason A. Donenfeld says:

====================
wireguard fixes for 6.10-rc7

These are four small fixes for WireGuard, which are all marked for
stable:

1) A QEMU command line fix to remove deprecated flags.

2) Use of proper unaligned helpers to avoid unaligned memory access on
   some systems, from Helge.

3) Two patches to annotate intentional data races, so KCSAN and syzbot
   don't get upset.
====================

Link: https://patch.msgid.link/20240704154517.1572127-1-Jason@zx2c4.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 0c754d9d 381a7d45
...@@ -15,8 +15,8 @@ static void swap_endian(u8 *dst, const u8 *src, u8 bits) ...@@ -15,8 +15,8 @@ static void swap_endian(u8 *dst, const u8 *src, u8 bits)
if (bits == 32) { if (bits == 32) {
*(u32 *)dst = be32_to_cpu(*(const __be32 *)src); *(u32 *)dst = be32_to_cpu(*(const __be32 *)src);
} else if (bits == 128) { } else if (bits == 128) {
((u64 *)dst)[0] = be64_to_cpu(((const __be64 *)src)[0]); ((u64 *)dst)[0] = get_unaligned_be64(src);
((u64 *)dst)[1] = be64_to_cpu(((const __be64 *)src)[1]); ((u64 *)dst)[1] = get_unaligned_be64(src + 8);
} }
} }
......
...@@ -124,10 +124,10 @@ static inline int wg_cpumask_choose_online(int *stored_cpu, unsigned int id) ...@@ -124,10 +124,10 @@ static inline int wg_cpumask_choose_online(int *stored_cpu, unsigned int id)
*/ */
static inline int wg_cpumask_next_online(int *last_cpu) static inline int wg_cpumask_next_online(int *last_cpu)
{ {
int cpu = cpumask_next(*last_cpu, cpu_online_mask); int cpu = cpumask_next(READ_ONCE(*last_cpu), cpu_online_mask);
if (cpu >= nr_cpu_ids) if (cpu >= nr_cpu_ids)
cpu = cpumask_first(cpu_online_mask); cpu = cpumask_first(cpu_online_mask);
*last_cpu = cpu; WRITE_ONCE(*last_cpu, cpu);
return cpu; return cpu;
} }
......
...@@ -222,7 +222,7 @@ void wg_packet_send_keepalive(struct wg_peer *peer) ...@@ -222,7 +222,7 @@ void wg_packet_send_keepalive(struct wg_peer *peer)
{ {
struct sk_buff *skb; struct sk_buff *skb;
if (skb_queue_empty(&peer->staged_packet_queue)) { if (skb_queue_empty_lockless(&peer->staged_packet_queue)) {
skb = alloc_skb(DATA_PACKET_HEAD_ROOM + MESSAGE_MINIMUM_LENGTH, skb = alloc_skb(DATA_PACKET_HEAD_ROOM + MESSAGE_MINIMUM_LENGTH,
GFP_ATOMIC); GFP_ATOMIC);
if (unlikely(!skb)) if (unlikely(!skb))
......
...@@ -109,9 +109,9 @@ KERNEL_ARCH := x86_64 ...@@ -109,9 +109,9 @@ KERNEL_ARCH := x86_64
KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage
QEMU_VPORT_RESULT := virtio-serial-device QEMU_VPORT_RESULT := virtio-serial-device
ifeq ($(HOST_ARCH),$(ARCH)) ifeq ($(HOST_ARCH),$(ARCH))
QEMU_MACHINE := -cpu host -machine microvm,accel=kvm,pit=off,pic=off,rtc=off -no-acpi QEMU_MACHINE := -cpu host -machine microvm,accel=kvm,pit=off,pic=off,rtc=off,acpi=off
else else
QEMU_MACHINE := -cpu max -machine microvm -no-acpi QEMU_MACHINE := -cpu max -machine microvm,acpi=off
endif endif
else ifeq ($(ARCH),i686) else ifeq ($(ARCH),i686)
CHOST := i686-linux-musl CHOST := i686-linux-musl
...@@ -120,9 +120,9 @@ KERNEL_ARCH := x86 ...@@ -120,9 +120,9 @@ KERNEL_ARCH := x86
KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage KERNEL_BZIMAGE := $(KERNEL_BUILD_PATH)/arch/x86/boot/bzImage
QEMU_VPORT_RESULT := virtio-serial-device QEMU_VPORT_RESULT := virtio-serial-device
ifeq ($(subst x86_64,i686,$(HOST_ARCH)),$(ARCH)) ifeq ($(subst x86_64,i686,$(HOST_ARCH)),$(ARCH))
QEMU_MACHINE := -cpu host -machine microvm,accel=kvm,pit=off,pic=off,rtc=off -no-acpi QEMU_MACHINE := -cpu host -machine microvm,accel=kvm,pit=off,pic=off,rtc=off,acpi=off
else else
QEMU_MACHINE := -cpu coreduo -machine microvm -no-acpi QEMU_MACHINE := -cpu coreduo -machine microvm,acpi=off
endif endif
else ifeq ($(ARCH),mips64) else ifeq ($(ARCH),mips64)
CHOST := mips64-linux-musl CHOST := mips64-linux-musl
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment