mirror of
https://github.com/hanwckf/immortalwrt-mt798x.git
synced 2025-01-09 18:59:13 +08:00
Merge Official Source
This commit is contained in:
commit
71add3d053
@ -0,0 +1,30 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Fri, 14 Aug 2020 16:13:45 +0200
|
||||
Subject: [PATCH] backports: add netif_receive_skb_list
|
||||
|
||||
It will be needed by pending mac80211 changes
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/backport-include/linux/netdevice.h
|
||||
+++ b/backport-include/linux/netdevice.h
|
||||
@@ -372,6 +372,18 @@ static inline int _bp_netdev_upper_dev_l
|
||||
macro_dispatcher(netdev_upper_dev_link, __VA_ARGS__)(__VA_ARGS__)
|
||||
#endif
|
||||
|
||||
+#if LINUX_VERSION_IS_LESS(4,19,0)
|
||||
+static inline void netif_receive_skb_list(struct list_head *head)
|
||||
+{
|
||||
+ struct sk_buff *skb, *next;
|
||||
+
|
||||
+ list_for_each_entry_safe(skb, next, head, list) {
|
||||
+ skb_list_del_init(skb);
|
||||
+ netif_receive_skb(skb);
|
||||
+ }
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#if LINUX_VERSION_IS_LESS(5,0,0)
|
||||
static inline int backport_dev_open(struct net_device *dev, struct netlink_ext_ack *extack)
|
||||
{
|
@ -0,0 +1,24 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Fri, 14 Aug 2020 16:13:55 +0200
|
||||
Subject: [PATCH] backports: add skb_list_del_init
|
||||
|
||||
It will be needed by pending mac80211 changes
|
||||
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/backport-include/linux/skbuff.h
|
||||
+++ b/backport-include/linux/skbuff.h
|
||||
@@ -384,6 +384,12 @@ static inline void skb_mark_not_on_list(
|
||||
{
|
||||
skb->next = NULL;
|
||||
}
|
||||
+
|
||||
+static inline void skb_list_del_init(struct sk_buff *skb)
|
||||
+{
|
||||
+ __list_del_entry(&skb->list);
|
||||
+ skb_mark_not_on_list(skb);
|
||||
+}
|
||||
#endif /* 4.19.10 <= x < 4.20 */
|
||||
#endif
|
||||
|
@ -0,0 +1,59 @@
|
||||
From d3f703c4359ff06619b2322b91f69710453e6b6d Mon Sep 17 00:00:00 2001
|
||||
From: Victor Kamensky <kamensky@cisco.com>
|
||||
Date: Tue, 11 Feb 2020 11:24:33 -0800
|
||||
Subject: [PATCH] mips: vdso: fix 'jalr t9' crash in vdso code
|
||||
|
||||
Observed that when kernel is built with Yocto mips64-poky-linux-gcc,
|
||||
and mips64-poky-linux-gnun32-gcc toolchain, resulting vdso contains
|
||||
'jalr t9' instructions in its code and since in vdso case nobody
|
||||
sets GOT table code crashes when instruction reached. On other hand
|
||||
observed that when kernel is built mips-poky-linux-gcc toolchain, the
|
||||
same 'jalr t9' instruction are replaced with PC relative function
|
||||
calls using 'bal' instructions.
|
||||
|
||||
The difference boils down to -mrelax-pic-calls and -mexplicit-relocs
|
||||
gcc options that gets different default values depending on gcc
|
||||
target triplets and corresponding binutils. -mrelax-pic-calls got
|
||||
enabled by default only in mips-poky-linux-gcc case. MIPS binutils
|
||||
ld relies on R_MIPS_JALR relocation to convert 'jalr t9' into 'bal'
|
||||
and such relocation is generated only if -mrelax-pic-calls option
|
||||
is on.
|
||||
|
||||
Please note 'jalr t9' conversion to 'bal' can happen only to static
|
||||
functions. These static PIC calls use mips local GOT entries that
|
||||
are supposed to be filled with start of DSO value by run-time linker
|
||||
(missing in VDSO case) and they do not have dynamic relocations.
|
||||
Global mips GOT entries must have dynamic relocations and they should
|
||||
be prevented by cmd_vdso_check Makefile rule.
|
||||
|
||||
Solution call out -mrelax-pic-calls and -mexplicit-relocs options
|
||||
explicitly while compiling MIPS vdso code. That would get correct
|
||||
and consistent between different toolchains behaviour.
|
||||
|
||||
Reported-by: Bruce Ashfield <bruce.ashfield@gmail.com>
|
||||
Signed-off-by: Victor Kamensky <kamensky@cisco.com>
|
||||
Signed-off-by: Paul Burton <paulburton@kernel.org>
|
||||
Cc: linux-mips@vger.kernel.org
|
||||
Cc: Ralf Baechle <ralf@linux-mips.org>
|
||||
Cc: James Hogan <jhogan@kernel.org>
|
||||
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
|
||||
Cc: richard.purdie@linuxfoundation.org
|
||||
---
|
||||
arch/mips/vdso/Makefile | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
|
||||
index aa89a41dc5dd..848baeaef1f8 100644
|
||||
--- a/arch/mips/vdso/Makefile
|
||||
+++ b/arch/mips/vdso/Makefile
|
||||
@@ -33,6 +33,7 @@ endif
|
||||
cflags-vdso := $(ccflags-vdso) \
|
||||
$(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \
|
||||
-O3 -g -fPIC -fno-strict-aliasing -fno-common -fno-builtin -G 0 \
|
||||
+ -mrelax-pic-calls -mexplicit-relocs \
|
||||
-fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \
|
||||
$(call cc-option, -fno-asynchronous-unwind-tables) \
|
||||
$(call cc-option, -fno-stack-protector)
|
||||
--
|
||||
2.17.1
|
||||
|
Loading…
x
Reference in New Issue
Block a user