From 92eda1e53f008f1acd46848a6105246157037b11 Mon Sep 17 00:00:00 2001 From: Nathan Chancellor Date: Tue, 11 Jun 2019 10:19:32 -0700 Subject: [PATCH 01/16] arm64: Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit commit fa63da2ab046b885a7f70291aafc4e8ce015429b upstream. This is a GCC only option, which warns about ABI changes within GCC, so unconditionally adding it breaks Clang with tons of: warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option] and link time failures: ld.lld: error: undefined symbol: __efistub___stack_chk_guard >>> referenced by arm-stub.c:73 (/home/nathan/cbl/linux/drivers/firmware/efi/libstub/arm-stub.c:73) >>> arm-stub.stub.o:(__efistub_install_memreserve_table) in archive ./drivers/firmware/efi/libstub/lib.a These failures come from the lack of -fno-stack-protector, which is added via cc-option in drivers/firmware/efi/libstub/Makefile. When an unknown flag is added to KBUILD_CFLAGS, clang will noisily warn that it is ignoring the option like above, unlike gcc, who will just error. $ echo "int main() { return 0; }" > tmp.c $ clang -Wno-psabi tmp.c; echo $? warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option] 1 warning generated. 0 $ gcc -Wsometimes-uninitialized tmp.c; echo $? gcc: error: unrecognized command line option ‘-Wsometimes-uninitialized’; did you mean ‘-Wmaybe-uninitialized’? 1 For cc-option to work properly with clang and behave like gcc, -Werror is needed, which was done in commit c3f0d0bc5b01 ("kbuild, LLVMLinux: Add -Werror to cc-option to support clang"). $ clang -Werror -Wno-psabi tmp.c; echo $? error: unknown warning option '-Wno-psabi' [-Werror,-Wunknown-warning-option] 1 As a consequence of this, when an unknown flag is unconditionally added to KBUILD_CFLAGS, it will cause cc-option to always fail and those flags will never get added: $ clang -Werror -Wno-psabi -fno-stack-protector tmp.c; echo $? error: unknown warning option '-Wno-psabi' [-Werror,-Wunknown-warning-option] 1 This can be seen when compiling the whole kernel as some warnings that are normally disabled (see below) show up. The full list of flags missing from drivers/firmware/efi/libstub are the following (gathered from diffing .arm64-stub.o.cmd): -fno-delete-null-pointer-checks -Wno-address-of-packed-member -Wframe-larger-than=2048 -Wno-unused-const-variable -fno-strict-overflow -fno-merge-all-constants -fno-stack-check -Werror=date-time -Werror=incompatible-pointer-types -ffreestanding -fno-stack-protector Use cc-disable-warning so that it gets disabled for GCC and does nothing for Clang. Fixes: ebcc5928c5d9 ("arm64: Silence gcc warnings about arch ABI drift") Link: https://github.com/ClangBuiltLinux/linux/issues/511 Reported-by: Qian Cai Acked-by: Dave Martin Reviewed-by: Nick Desaulniers Signed-off-by: Nathan Chancellor Signed-off-by: Will Deacon Signed-off-by: Greg Kroah-Hartman [sw0312.kim: cherry-pick from stable linux-4.19.y commit 85a3b1ef969b for gcc 9 build] Signed-off-by: Seung-Woo Kim Change-Id: I264a7663478de10d196d8550349098552fe02544 --- arch/arm64/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index 3a9c9a0..ac0fdd6 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -51,7 +51,7 @@ endif KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -KBUILD_CFLAGS += -Wno-psabi +KBUILD_CFLAGS += $(call cc-disable-warning, psabi) KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) KBUILD_CFLAGS += $(call cc-option,-mabi=lp64) -- 2.7.4 From 3a02a84a9e26a701fc9413b0de16ca052e103e8f Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 6 Jan 2020 10:29:08 +0900 Subject: [PATCH 02/16] ARM64: configs: tizen_bcmrpi3_defconfig: Enable USB SERIAL drivers for modem To support usb modem dongle and related devices, enable USB SERIAL drivers and ppp network interface to support the modem. Change-Id: I3caf00b94edc0ad98ae95687bfc8d0b845413cfb Signed-off-by: Seung-Woo Kim --- arch/arm64/configs/tizen_bcmrpi3_defconfig | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm64/configs/tizen_bcmrpi3_defconfig b/arch/arm64/configs/tizen_bcmrpi3_defconfig index e1725b9..993b582 100644 --- a/arch/arm64/configs/tizen_bcmrpi3_defconfig +++ b/arch/arm64/configs/tizen_bcmrpi3_defconfig @@ -174,6 +174,13 @@ CONFIG_DM_CRYPT=y CONFIG_NETDEVICES=y CONFIG_TUN=y # CONFIG_NET_VENDOR_AURORA is not set +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y CONFIG_USB_RTL8152=m CONFIG_USB_LAN78XX=y CONFIG_USB_USBNET=y @@ -289,6 +296,9 @@ CONFIG_USB_DWC2=y CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_CP210X=y +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_GADGET=m CONFIG_USB_DUMMY_HCD=m CONFIG_USB_CONFIGFS=m -- 2.7.4 From 59d8cdc39371152fd03d9b513539760309e9b6d4 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 6 Jan 2020 10:30:22 +0900 Subject: [PATCH 03/16] ARM: configs: tizen_bcm2709_defconfig: Enable USB SERIAL drivers for modem To support usb modem dongle and related devices, enable USB SERIAL drivers and ppp network interface to support the modem. Change-Id: I0f496f38e20f6816653dad354efde1519a54670c Signed-off-by: Seung-Woo Kim --- arch/arm/configs/tizen_bcm2709_defconfig | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/arch/arm/configs/tizen_bcm2709_defconfig b/arch/arm/configs/tizen_bcm2709_defconfig index 9d16315..bc1956a 100644 --- a/arch/arm/configs/tizen_bcm2709_defconfig +++ b/arch/arm/configs/tizen_bcm2709_defconfig @@ -177,6 +177,11 @@ CONFIG_DM_CRYPT=y CONFIG_NETDEVICES=y CONFIG_TUN=y # CONFIG_NET_VENDOR_AURORA is not set +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y CONFIG_USB_LAN78XX=y CONFIG_USB_USBNET=y CONFIG_USB_NET_SMSC95XX=y @@ -308,6 +313,9 @@ CONFIG_USB_DWC2=y CONFIG_USB_SERIAL=y CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_GADGET=m CONFIG_USB_DUMMY_HCD=m CONFIG_USB_CONFIGFS=m -- 2.7.4 From 8078465a50d60841eef0fe19708a8bc2f4a0c8c6 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 6 Jan 2020 16:54:58 +0900 Subject: [PATCH 04/16] ARM64: configs: tizen_bcmrpi3_defconfig: Enable missing NETFILTER options for nether To properly support nether rules, netfilter options are required including udplite, raw, mangle and others. Enable the missing NETFILTER options for nether. Ref: nether rule in https://git.tizen.org/cgit/platform/core/security/nether/tree/conf/nether.rules?h=tizen Change-Id: I9017da2dc9bc74a83488f8b74e843d2ff23395a2 Signed-off-by: Seung-Woo Kim --- arch/arm64/configs/tizen_bcmrpi3_defconfig | 63 +++++++++++++++++++++++++----- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/arch/arm64/configs/tizen_bcmrpi3_defconfig b/arch/arm64/configs/tizen_bcmrpi3_defconfig index 993b582..848bb71 100644 --- a/arch/arm64/configs/tizen_bcmrpi3_defconfig +++ b/arch/arm64/configs/tizen_bcmrpi3_defconfig @@ -75,6 +75,7 @@ CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_XFRM_USER=y +CONFIG_NET_KEY=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -89,7 +90,13 @@ CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y @@ -98,29 +105,70 @@ CONFIG_IPV6_PIMSM_V2=y CONFIG_NETWORK_SECMARK=y CONFIG_NETFILTER=y CONFIG_BRIDGE_NETFILTER=y +CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NF_CONNTRACK=y -# CONFIG_NF_CT_PROTO_DCCP is not set -# CONFIG_NF_CT_PROTO_SCTP is not set -# CONFIG_NF_CT_PROTO_UDPLITE is not set -CONFIG_NETFILTER_XT_MARK=y -CONFIG_NETFILTER_XT_CONNMARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NF_TABLES=y +CONFIG_NF_TABLES_INET=y +CONFIG_NFT_CT=y +CONFIG_NFT_MASQ=y +CONFIG_NFT_NAT=y CONFIG_NETFILTER_XT_TARGET_AUDIT=y +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y CONFIG_NETFILTER_XT_TARGET_LOG=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NETMAP=y CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y CONFIG_NETFILTER_XT_TARGET_SECMARK=y CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_CGROUP=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_NFACCT=y CONFIG_NETFILTER_XT_MATCH_OWNER=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y CONFIG_NETFILTER_XT_MATCH_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NFT_CHAIN_ROUTE_IPV4=y CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_TTL=y CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y CONFIG_IP_NF_NAT=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_RAW=y -CONFIG_NF_LOG_IPV6=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_IP6_NF_SECURITY=y CONFIG_BRIDGE_NF_EBTABLES=y CONFIG_BRIDGE_EBT_BROUTE=y CONFIG_BRIDGE_EBT_T_FILTER=y @@ -368,10 +416,7 @@ CONFIG_SECURITY_SMACK=y CONFIG_SECURITY_SMACK_NETFILTER=y CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y # CONFIG_INTEGRITY is not set -CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_XTS=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_LZO=y CONFIG_CRC_ITU_T=y -- 2.7.4 From b39d05ef772bbca70a3345e3cf77f704a6b21020 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 6 Jan 2020 16:57:23 +0900 Subject: [PATCH 05/16] ARM: configs: tizen_bcm2709_defconfig: Enable missing NETFILTER options for nether To properly support nether rules, netfilter options are required including udplite, raw, mangle and others. Enable the missing NETFILTER options for nether. Ref: nether rule in https://git.tizen.org/cgit/platform/core/security/nether/tree/conf/nether.rules?h=tizen Change-Id: I7cb0b1f669e412540085a05fcbb95d5fc7afaffc Signed-off-by: Seung-Woo Kim --- arch/arm/configs/tizen_bcm2709_defconfig | 65 ++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 11 deletions(-) diff --git a/arch/arm/configs/tizen_bcm2709_defconfig b/arch/arm/configs/tizen_bcm2709_defconfig index bc1956a..60493ec 100644 --- a/arch/arm/configs/tizen_bcm2709_defconfig +++ b/arch/arm/configs/tizen_bcm2709_defconfig @@ -74,6 +74,7 @@ CONFIG_NET=y CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_XFRM_USER=y +CONFIG_NET_KEY=y CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y @@ -88,7 +89,13 @@ CONFIG_IP_MROUTE_MULTIPLE_TABLES=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y CONFIG_SYN_COOKIES=y +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y CONFIG_IPV6_ROUTER_PREF=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y @@ -97,30 +104,71 @@ CONFIG_IPV6_PIMSM_V2=y CONFIG_NETWORK_SECMARK=y CONFIG_NETFILTER=y CONFIG_BRIDGE_NETFILTER=y +CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NF_CONNTRACK=y -# CONFIG_NF_CT_PROTO_DCCP is not set -# CONFIG_NF_CT_PROTO_SCTP is not set -# CONFIG_NF_CT_PROTO_UDPLITE is not set -CONFIG_NETFILTER_XT_MARK=y -CONFIG_NETFILTER_XT_CONNMARK=y +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_EVENTS=y +CONFIG_NF_CT_NETLINK=y +CONFIG_NF_TABLES=y +CONFIG_NF_TABLES_INET=y +CONFIG_NFT_CT=y +CONFIG_NFT_MASQ=y +CONFIG_NFT_NAT=y CONFIG_NETFILTER_XT_TARGET_AUDIT=y +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +CONFIG_NETFILTER_XT_TARGET_CONNMARK=y CONFIG_NETFILTER_XT_TARGET_LED=m CONFIG_NETFILTER_XT_TARGET_LOG=y +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_TARGET_NETMAP=y CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y CONFIG_NETFILTER_XT_TARGET_SECMARK=y CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_CGROUP=y +CONFIG_NETFILTER_XT_MATCH_COMMENT=y +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y +CONFIG_NETFILTER_XT_MATCH_CONNMARK=y +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y +CONFIG_NETFILTER_XT_MATCH_HELPER=y +CONFIG_NETFILTER_XT_MATCH_IPRANGE=y +CONFIG_NETFILTER_XT_MATCH_LENGTH=y CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +CONFIG_NETFILTER_XT_MATCH_NFACCT=y CONFIG_NETFILTER_XT_MATCH_OWNER=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y CONFIG_NETFILTER_XT_MATCH_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +CONFIG_NFT_CHAIN_ROUTE_IPV4=y CONFIG_IP_NF_IPTABLES=y +CONFIG_IP_NF_MATCH_AH=y +CONFIG_IP_NF_MATCH_ECN=y +CONFIG_IP_NF_MATCH_TTL=y CONFIG_IP_NF_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y CONFIG_IP_NF_NAT=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_RAW=y -CONFIG_NF_LOG_IPV6=y +CONFIG_IP_NF_SECURITY=y +CONFIG_IP_NF_ARPTABLES=y +CONFIG_IP_NF_ARPFILTER=y +CONFIG_IP_NF_ARP_MANGLE=y +CONFIG_IP6_NF_IPTABLES=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +CONFIG_IP6_NF_SECURITY=y CONFIG_BRIDGE_NF_EBTABLES=y CONFIG_BRIDGE_EBT_BROUTE=y CONFIG_BRIDGE_EBT_T_FILTER=y @@ -136,7 +184,6 @@ CONFIG_VLAN_8021Q=y CONFIG_NET_SCHED=y CONFIG_NET_EMATCH=y CONFIG_NET_CLS_ACT=y -CONFIG_CGROUP_NET_CLASSID=y CONFIG_HAMRADIO=y CONFIG_BT=y CONFIG_BT_RFCOMM=y @@ -403,11 +450,7 @@ CONFIG_SECURITY_SMACK=y CONFIG_SECURITY_SMACK_NETFILTER=y CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y # CONFIG_INTEGRITY is not set -CONFIG_CRYPTO_AUTHENC=y -CONFIG_CRYPTO_ECHAINIV=y CONFIG_CRYPTO_XTS=y -CONFIG_CRYPTO_MD5=y -CONFIG_CRYPTO_DES=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_LZO=y CONFIG_CRC_ITU_T=y -- 2.7.4 From 1307ca29e127fffb24984456bc1e407888fc3d66 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Mon, 12 Nov 2018 15:26:52 -0800 Subject: [PATCH 06/16] lib/raid6: add option to skip algo benchmarking This is helpful for systems where fast startup time is important. It is especially nice to avoid benchmarking RAID functions that are never used (for example, BTRFS selects RAID6_PQ even if the parity RAID mode is not in use). This saves 250+ milliseconds of boot time on modern x86 and ARM systems with a dozen or more available implementations. The new option is defaulted to 'y' to match the previous behavior of always benchmarking on init. Signed-off-by: Daniel Verkamp Signed-off-by: Shaohua Li [jhoon20.kim: backport from mainline for the fast kernel startup] Change-Id: I38c270c413d60de65f27cf9c95d44bb2e2d07ac2 Signed-off-by: Junghoon Kim --- include/linux/raid/pq.h | 3 +++ lib/Kconfig | 8 ++++++++ lib/raid6/algos.c | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/include/linux/raid/pq.h b/include/linux/raid/pq.h index ea85052..faf7a45 100644 --- a/include/linux/raid/pq.h +++ b/include/linux/raid/pq.h @@ -67,6 +67,9 @@ extern const char raid6_empty_zero_page[PAGE_SIZE]; #define MODULE_DESCRIPTION(desc) #define subsys_initcall(x) #define module_exit(x) + +#define IS_ENABLED(x) (x) +#define CONFIG_RAID6_PQ_BENCHMARK 1 #endif /* __KERNEL__ */ /* Routine choices */ diff --git a/lib/Kconfig b/lib/Kconfig index a3928d4..fcb00bc 100644 --- a/lib/Kconfig +++ b/lib/Kconfig @@ -10,6 +10,14 @@ menu "Library routines" config RAID6_PQ tristate +config RAID6_PQ_BENCHMARK + bool "Automatically choose fastest RAID6 PQ functions" + depends on RAID6_PQ + default y + help + Benchmark all available RAID6 PQ functions on init and choose the + fastest one. + config BITREVERSE tristate diff --git a/lib/raid6/algos.c b/lib/raid6/algos.c index 5065b1e..c343449 100644 --- a/lib/raid6/algos.c +++ b/lib/raid6/algos.c @@ -163,6 +163,11 @@ static inline const struct raid6_calls *raid6_choose_gen( if ((*algo)->valid && !(*algo)->valid()) continue; + if (!IS_ENABLED(CONFIG_RAID6_PQ_BENCHMARK)) { + best = *algo; + break; + } + perf = 0; preempt_disable(); -- 2.7.4 From b4188693e90c03cbc4020fe534555cebf1ca5297 Mon Sep 17 00:00:00 2001 From: Junghoon Kim Date: Mon, 20 Jan 2020 15:24:43 +0900 Subject: [PATCH 07/16] ARM: tizen_bcm2709_defconfig: Disable RAID6_PQ_BENCHMARK Skip the algorithm benchmarking process of RAID6 for the fast kernel startup. The option is not crucial for the rpi boards. Change-Id: If0a4748febb2fad3349b4327624943bdf42454d4 Signed-off-by: Junghoon Kim --- arch/arm/configs/tizen_bcm2709_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/configs/tizen_bcm2709_defconfig b/arch/arm/configs/tizen_bcm2709_defconfig index 60493ec..c01dc9d 100644 --- a/arch/arm/configs/tizen_bcm2709_defconfig +++ b/arch/arm/configs/tizen_bcm2709_defconfig @@ -453,6 +453,7 @@ CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y CONFIG_CRYPTO_XTS=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_LZO=y +# CONFIG_RAID6_PQ_BENCHMARK is not set CONFIG_CRC_ITU_T=y CONFIG_CRC7=m CONFIG_PRINTK_TIME=y -- 2.7.4 From e517c437cb8042252190de5bad08728a3b0524e6 Mon Sep 17 00:00:00 2001 From: Junghoon Kim Date: Mon, 20 Jan 2020 15:28:38 +0900 Subject: [PATCH 08/16] ARM64: tizen_bcmrpi3_defconfig: Disable RAID6_PQ_BENCHMARK Skip the algorithm benchmarking process of RAID6 for the fast kernel startup. The option is not crucial for the rpi boards. Change-Id: I9c959bcf2bbb178e72bc4315a0734d8059ebd46b Signed-off-by: Junghoon Kim --- arch/arm64/configs/tizen_bcmrpi3_defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm64/configs/tizen_bcmrpi3_defconfig b/arch/arm64/configs/tizen_bcmrpi3_defconfig index 848bb71..d55590e 100644 --- a/arch/arm64/configs/tizen_bcmrpi3_defconfig +++ b/arch/arm64/configs/tizen_bcmrpi3_defconfig @@ -419,6 +419,7 @@ CONFIG_SECURITY_SMACK_APPEND_SIGNALS=y CONFIG_CRYPTO_XTS=y CONFIG_CRYPTO_TWOFISH=y CONFIG_CRYPTO_LZO=y +# CONFIG_RAID6_PQ_BENCHMARK is not set CONFIG_CRC_ITU_T=y CONFIG_PRINTK_TIME=y CONFIG_BOOT_PRINTK_DELAY=y -- 2.7.4 From 235c3fbb167a6cb7fea9c2f67e5d63f4bdd87bbb Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 16 Mar 2020 19:06:53 +0900 Subject: [PATCH 09/16] ARM: dts: bcm2710-rpi-3: Change build macro for optee Now, Tizen does not support optee by default. Change build macro for optee related nodes in default case. Change-Id: Ib925414ba6fd96099ca984cc8b665263812b9538 Ref: https://bugs.tizen.org/browse/TRE-2318 Signed-off-by: Seung-Woo Kim --- arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts | 2 +- arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 2 +- arch/arm/boot/dts/bcm2710.dtsi | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts index 9482f54..9811f72 100644 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b-plus.dts @@ -1,6 +1,6 @@ /dts-v1/; -#ifdef RPI364 +#ifdef RPI364_OPTEE /memreserve/ 0x08000000 0x02000000; #endif diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts index 10a2a49..3621562 100644 --- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts +++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts @@ -1,6 +1,6 @@ /dts-v1/; -#ifdef RPI364 +#ifdef RPI364_OPTEE /memreserve/ 0x08000000 0x02000000; #endif diff --git a/arch/arm/boot/dts/bcm2710.dtsi b/arch/arm/boot/dts/bcm2710.dtsi index 59d66fa..e8454ed 100644 --- a/arch/arm/boot/dts/bcm2710.dtsi +++ b/arch/arm/boot/dts/bcm2710.dtsi @@ -27,7 +27,7 @@ <&cpu3>, "clock-frequency:0"; }; -#ifdef RPI364 +#ifdef RPI364_OPTEE firmware { optee { compatible = "linaro,optee-tz"; @@ -42,6 +42,7 @@ #endif }; +#ifdef RPI364_OPTEE &cpu0 { enable-method = "psci"; }; @@ -57,3 +58,4 @@ &cpu3 { enable-method = "psci"; }; +#endif -- 2.7.4 From d7702b7427fcc6707fcd4dfa2ded04eaf3d3f9ee Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 16 Mar 2020 19:08:19 +0900 Subject: [PATCH 10/16] ARM64: tizen_bcmrpi3_defconfig: Disable OPTEE Now, Tizen does not support OPTEE by default. Disable OPTEE config options. Change-Id: I424d38f42ad0e3199bd84517fb477dc212785be8 Ref: https://bugs.tizen.org/browse/TRE-2318 Signed-off-by: Seung-Woo Kim --- arch/arm64/configs/tizen_bcmrpi3_defconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/arch/arm64/configs/tizen_bcmrpi3_defconfig b/arch/arm64/configs/tizen_bcmrpi3_defconfig index d55590e..0f6b66d 100644 --- a/arch/arm64/configs/tizen_bcmrpi3_defconfig +++ b/arch/arm64/configs/tizen_bcmrpi3_defconfig @@ -379,7 +379,6 @@ CONFIG_PWM_BCM2835=y CONFIG_ANDROID=y CONFIG_DAX=y CONFIG_TEE=y -CONFIG_OPTEE=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y -- 2.7.4 From bfde5555874e6e548ea322451423757cf05d2052 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Mon, 16 Mar 2020 19:09:40 +0900 Subject: [PATCH 11/16] rpi3: config_64bit: boot from u-boot instead of spl Now, Tizen does not support OPTEE by default, so u-boot-spl is not required. Boot from u-boot instead of u-boot-spl. Change-Id: Iadaee5290ede214b4f85487eea8e9151f9ea98f9 Ref: https://bugs.tizen.org/browse/TRE-2318 Signed-off-by: Seung-Woo Kim --- rpi3/boot/config_64bit.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rpi3/boot/config_64bit.txt b/rpi3/boot/config_64bit.txt index 5f51835..da9a874 100644 --- a/rpi3/boot/config_64bit.txt +++ b/rpi3/boot/config_64bit.txt @@ -64,13 +64,13 @@ uart_2ndstage=1 arm_control=0x200 # for 64-bit # Kernel binary -kernel=u-boot-spl.bin +kernel=u-boot.bin # Kernel Address 0x0 -kernel_old=1 +#kernel_old=1 # Skip filling ATAGS -disable_commandline_tags=1 +#disable_commandline_tags=1 # enable JTAG flag enable_jtag_gpio=1 -- 2.7.4 From b24be89f3bf7e4721de4deef8e3c40a4e8aba03d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Mon, 11 Feb 2019 23:04:54 +0100 Subject: [PATCH 12/16] brcmfmac: support firmware reporting 160 MHz channels MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit So far 160 MHz channels were treated as 20 MHz ones which was breaking support for 40/80 MHz due to the brcmf_construct_chaninfo() logic and its assumptions. Signed-off-by: Rafał Miłecki Signed-off-by: Kalle Valo [sw0312.kim: backport mainline commit 30519cbe339a to show more 5G channels properly] Signed-off-by: Seung-Woo Kim Change-Id: I62ca12dfd97d0cd3233840d5b569e768dc4a1672 --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 82ec8f9..1dd7a1f 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -6002,7 +6002,9 @@ static int brcmf_construct_chaninfo(struct brcmf_cfg80211_info *cfg, /* assuming the chanspecs order is HT20, * HT40 upper, HT40 lower, and VHT80. */ - if (ch.bw == BRCMU_CHAN_BW_80) { + if (ch.bw == BRCMU_CHAN_BW_160) + channel->flags &= ~IEEE80211_CHAN_NO_160MHZ; + else if (ch.bw == BRCMU_CHAN_BW_80) { channel->flags &= ~IEEE80211_CHAN_NO_80MHZ; } else if (ch.bw == BRCMU_CHAN_BW_40) { brcmf_update_bw40_channel_flag(channel, &ch); -- 2.7.4 From e181eaf6143665695731c1697a5c7e699f4bcbf0 Mon Sep 17 00:00:00 2001 From: Ravi Bangoria Date: Tue, 11 Jun 2019 08:31:09 +0530 Subject: [PATCH 13/16] perf version: Fix segfault due to missing OPT_END() 'perf version' on powerpc segfaults when used with non-supported option: # perf version -a Segmentation fault (core dumped) Fix this. Signed-off-by: Ravi Bangoria Reviewed-by: Kamalesh Babulal Tested-by: Mamatha Inamdar Cc: Jiri Olsa Cc: Kamalesh Babulal Link: http://lkml.kernel.org/r/20190611030109.20228-1-ravi.bangoria@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo [sw0312.kim: cherry-pick mainline commit 916c31fff946 to fix possible seg.fault in Tizen armv7l] Signed-off-by: Seung-Woo Kim Change-Id: If19720350e2992d1f5e58711f1f708a4d4ec5683 --- tools/perf/builtin-version.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/perf/builtin-version.c b/tools/perf/builtin-version.c index 50df168..b02c961 100644 --- a/tools/perf/builtin-version.c +++ b/tools/perf/builtin-version.c @@ -19,6 +19,7 @@ static struct version version; static struct option version_options[] = { OPT_BOOLEAN(0, "build-options", &version.build_options, "display the build options"), + OPT_END(), }; static const char * const version_usage[] = { -- 2.7.4 From a0611c26e7dfedeb087e7407377d093809ab5963 Mon Sep 17 00:00:00 2001 From: Seung-Woo Kim Date: Fri, 17 Apr 2020 12:26:21 +0900 Subject: [PATCH 14/16] packaging: Add build perf with unwind call-graph support To support perf unwind call-graph, add BuildRequires for unwind, dw, elfutils and other related devel packages. Also add definition to remove not necessary perl dependency Change-Id: I8e94ec4642026841255bbec08ae3dea2a8f5b531 Signed-off-by: Seung-Woo Kim --- packaging/linux-rpi3.spec | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packaging/linux-rpi3.spec b/packaging/linux-rpi3.spec index a103e18..7658e30 100644 --- a/packaging/linux-rpi3.spec +++ b/packaging/linux-rpi3.spec @@ -31,6 +31,12 @@ BuildRequires: u-boot-tools >= 2016.03 BuildRequires: bison BuildRequires: flex BuildRequires: libopenssl1.1-devel +BuildRequires: libunwind-devel +BuildRequires: libdw-devel +BuildRequires: libelf-devel +BuildRequires: elfutils +BuildRequires: xz-devel +BuildRequires: binutils-devel %description The Linux Kernel, the operating system core itself @@ -96,8 +102,8 @@ make dtbs %{?_smp_mflags} make modules %{?_smp_mflags} # 1-5. Build perf -make -s -C tools/lib/traceevent %{?_smp_mflags} -make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" %{?_smp_mflags} +make -s -C tools/lib/traceevent %{?_smp_mflags} NO_LIBPERL=1 +make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" %{?_smp_mflags} NO_LIBPERL=1 %install QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT @@ -131,9 +137,10 @@ install -m 644 rpi3/boot/fixup*.dat %{buildroot}/boot/ # 2-5. Install perf install -d %{buildroot}/usr -make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" DESTDIR=%{buildroot}/usr install +make -s -C tools/perf EXTRA_CFLAGS="-fPIE -rdynamic" DESTDIR=%{buildroot}/usr install NO_LIBPERL=1 rm -rf %{buildroot}/usr/etc rm -rf %{buildroot}/usr/lib/debug +rm -rf %{buildroot}/usr/lib/perf rm -rf %{buildroot}/usr/share # 3-1. remove unnecessary files to prepare for devel package -- 2.7.4 From 63e7ba798e69bc981633d70fb0d545426397f991 Mon Sep 17 00:00:00 2001 From: Jaehoon Chung Date: Mon, 22 Jun 2020 16:13:46 +0900 Subject: [PATCH 15/16] ARM64: configs: tizen_bcmrpi3: change BLK_DEV_RAM_SIZE to 32MB Change BLK_DEV_RAM_SIZE from 12MB to 32MB. And also change BLK_DEV_RAM_COUNT from 16 to 2. It doesn't need to keep /dev/ram0-16. Change-Id: I598dba4abc102a7ba51f5419ad6871875b73165c Signed-off-by: Jaehoon Chung --- arch/arm64/configs/tizen_bcmrpi3_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/configs/tizen_bcmrpi3_defconfig b/arch/arm64/configs/tizen_bcmrpi3_defconfig index 0f6b66d..71cf7b9 100644 --- a/arch/arm64/configs/tizen_bcmrpi3_defconfig +++ b/arch/arm64/configs/tizen_bcmrpi3_defconfig @@ -208,7 +208,8 @@ CONFIG_OF_CONFIGFS=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_CRYPTOLOOP=y CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=12288 +CONFIG_BLK_DEV_RAM_COUNT=2 +CONFIG_BLK_DEV_RAM_SIZE=32768 CONFIG_TIZEN_INFORM_REBOOT=y CONFIG_TIZEN_INFORM_PATH="/mnt/inform/reboot-param.bin" CONFIG_SCSI=y -- 2.7.4 From 717dd483d95d5722936953819b3a7c493d71a3d3 Mon Sep 17 00:00:00 2001 From: Jaehoon Chung Date: Mon, 22 Jun 2020 16:14:37 +0900 Subject: [PATCH 16/16] ARM: configs: tizen_bcm2709: change BLK_DEV_RAM_SIZE to 32MB Change BLK_DEV_RAM_SIZE from 12MB to 32MB. And also change BLK_DEV_RAM_COUNT from 16 to 2. It doesn't need to keep /dev/ram0-16. Change-Id: If6acb3813061827a260e5b6414a34e06cfc0965b Signed-off-by: Jaehoon Chung --- arch/arm/configs/tizen_bcm2709_defconfig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/configs/tizen_bcm2709_defconfig b/arch/arm/configs/tizen_bcm2709_defconfig index c01dc9d..1502d5c 100644 --- a/arch/arm/configs/tizen_bcm2709_defconfig +++ b/arch/arm/configs/tizen_bcm2709_defconfig @@ -210,7 +210,8 @@ CONFIG_OF_CONFIGFS=y CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_CRYPTOLOOP=y CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=12288 +CONFIG_BLK_DEV_RAM_COUNT=2 +CONFIG_BLK_DEV_RAM_SIZE=32768 CONFIG_TIZEN_INFORM_REBOOT=y CONFIG_TIZEN_INFORM_PATH="/mnt/inform/reboot-param.bin" CONFIG_SCSI=y -- 2.7.4