From f6f8ffd05c0aacb64b320229677901ae028372fa Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Tue, 19 Mar 2024 12:24:33 +0100 Subject: [PATCH 1/2] Rebase on a 6.6.22 kernel Rebase on the latest LTS kernel. No major changes needed in the downstream patches this time. Signed-off-by: Sergio Lopez --- Makefile | 6 +- ...able-DMA-API-if-memory-is-restricted.patch | 8 +- .../0013-x86-sev-write-AP-reset-vector.patch | 12 +-- ...ver-to-retrieve-secrets-from-cmdline.patch | 20 ++--- ...015-x86-sev-Avoid-using-native_cpuid.patch | 8 +- ...01-krunfw-Don-t-panic-when-init-dies.patch | 14 ++-- ...nfw-Ignore-run_cmd-on-orderly-reboot.patch | 10 +-- ...ralize-recvmsg-and-drop-transport-dg.patch | 28 +++---- ...vsock-refactor-transport-lookup-code.patch | 12 +-- ...ck-support-multi-transport-datagrams.patch | 36 ++++---- .../0006-vsock-make-vsock-bind-reusable.patch | 20 ++--- ...add-VIRTIO_VSOCK_F_DGRAM-feature-bit.patch | 6 +- .../0008-virtio-vsock-support-dgrams.patch | 82 +++++++++---------- .../0009-tests-add-vsock-dgram-tests.patch | 29 ++++--- ...-Socket-Impersonation-implementation.patch | 30 ++++--- ...i-allow-hijacking-sockets-tsi_hijack.patch | 16 ++-- 16 files changed, 167 insertions(+), 170 deletions(-) diff --git a/Makefile b/Makefile index 5ab5d2b..b568fe9 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -KERNEL_VERSION = linux-6.4.7 +KERNEL_VERSION = linux-6.6.22 KERNEL_REMOTE = https://cdn.kernel.org/pub/linux/kernel/v6.x/$(KERNEL_VERSION).tar.xz KERNEL_TARBALL = tarballs/$(KERNEL_VERSION).tar.xz KERNEL_SOURCES = $(KERNEL_VERSION) @@ -6,8 +6,8 @@ KERNEL_PATCHES = $(shell find patches/ -name "0*.patch" | sort) KERNEL_C_BUNDLE = kernel.c ABI_VERSION = 4 -FULL_VERSION = 4.0.0 -TIMESTAMP = "Thu Aug 3 03:08:49 PM CEST 2023" +FULL_VERSION = 4.1.0 +TIMESTAMP = "Mon Mar 18 10:18:40 AM CET 2024" KERNEL_FLAGS = KBUILD_BUILD_TIMESTAMP=$(TIMESTAMP) KERNEL_FLAGS += KBUILD_BUILD_USER=root diff --git a/patches-sev/0012-virtio-enable-DMA-API-if-memory-is-restricted.patch b/patches-sev/0012-virtio-enable-DMA-API-if-memory-is-restricted.patch index 0910cb3..c0f162b 100644 --- a/patches-sev/0012-virtio-enable-DMA-API-if-memory-is-restricted.patch +++ b/patches-sev/0012-virtio-enable-DMA-API-if-memory-is-restricted.patch @@ -1,4 +1,4 @@ -From 941ff3c4ec793ddd9553142553f253c0c60958b8 Mon Sep 17 00:00:00 2001 +From eb36cefd65edcdcf7151428b99c028f43e23a835 Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Fri, 10 Sep 2021 13:05:01 +0200 Subject: [PATCH 12/15] virtio: enable DMA API if memory is restricted @@ -32,7 +32,7 @@ index 3893dc29eb26..1c1821200ff4 100644 if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1)) diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c -index c5310eaf8b46..a41287dc476d 100644 +index 49299b1f9ec7..10b42919cdf5 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -6,6 +6,7 @@ @@ -43,7 +43,7 @@ index c5310eaf8b46..a41287dc476d 100644 #include #include #include -@@ -274,6 +275,9 @@ static bool vring_use_dma_api(const struct virtio_device *vdev) +@@ -282,6 +283,9 @@ static bool vring_use_dma_api(const struct virtio_device *vdev) if (!virtio_has_dma_quirk(vdev)) return true; @@ -54,5 +54,5 @@ index c5310eaf8b46..a41287dc476d 100644 /* * In theory, it's possible to have a buggy QEMU-supposed -- -2.40.0 +2.43.0 diff --git a/patches-sev/0013-x86-sev-write-AP-reset-vector.patch b/patches-sev/0013-x86-sev-write-AP-reset-vector.patch index 62ce72d..c17acf1 100644 --- a/patches-sev/0013-x86-sev-write-AP-reset-vector.patch +++ b/patches-sev/0013-x86-sev-write-AP-reset-vector.patch @@ -1,4 +1,4 @@ -From 7431e96b6b322993fbd027d104758bfde209aaf4 Mon Sep 17 00:00:00 2001 +From 33ec7f77be813f455a9215591ad9972752051074 Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Thu, 20 Oct 2022 10:23:16 +0200 Subject: [PATCH 13/15] x86/sev: write AP reset vector @@ -12,11 +12,11 @@ Signed-off-by: Sergio Lopez 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/sev.c b/arch/x86/kernel/sev.c -index b031244d6d2d..19e4964fcc93 100644 +index d87c6ff1f513..f16277f67536 100644 --- a/arch/x86/kernel/sev.c +++ b/arch/x86/kernel/sev.c -@@ -1146,6 +1146,29 @@ void snp_set_wakeup_secondary_cpu(void) - apic->wakeup_secondary_cpu = wakeup_cpu_via_vmgexit; +@@ -1128,6 +1128,29 @@ void __init snp_set_wakeup_secondary_cpu(void) + apic_update_callback(wakeup_secondary_cpu, wakeup_cpu_via_vmgexit); } +#define KRUN_AP_RESET_VECTOR 0xfffffff4 @@ -45,7 +45,7 @@ index b031244d6d2d..19e4964fcc93 100644 int __init sev_es_setup_ap_jump_table(struct real_mode_header *rmh) { u16 startup_cs, startup_ip; -@@ -1157,7 +1180,7 @@ int __init sev_es_setup_ap_jump_table(struct real_mode_header *rmh) +@@ -1139,7 +1162,7 @@ int __init sev_es_setup_ap_jump_table(struct real_mode_header *rmh) /* On UP guests there is no jump table so this is not a failure */ if (!jump_table_addr) @@ -55,5 +55,5 @@ index b031244d6d2d..19e4964fcc93 100644 /* Check if AP Jump Table is page-aligned */ if (jump_table_addr & ~PAGE_MASK) -- -2.40.0 +2.43.0 diff --git a/patches-sev/0014-Implement-driver-to-retrieve-secrets-from-cmdline.patch b/patches-sev/0014-Implement-driver-to-retrieve-secrets-from-cmdline.patch index 04c7368..7857e22 100644 --- a/patches-sev/0014-Implement-driver-to-retrieve-secrets-from-cmdline.patch +++ b/patches-sev/0014-Implement-driver-to-retrieve-secrets-from-cmdline.patch @@ -1,4 +1,4 @@ -From 4403669abfc3ba23c88b73539166133f3288cae4 Mon Sep 17 00:00:00 2001 +From 98629d2518028a03fb272870b30379e57ff0f5c7 Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Wed, 3 Aug 2022 12:35:12 +0200 Subject: [PATCH 14/15] Implement driver to retrieve secrets from cmdline @@ -28,10 +28,10 @@ Signed-off-by: Sergio Lopez create mode 100644 drivers/virt/coco/cmdline_secret/cmdline_secret.c diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c -index 16babff771bd..752f34387bff 100644 +index b098b1fa2470..743e50066bfe 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c -@@ -882,7 +882,9 @@ void __init setup_arch(char **cmdline_p) +@@ -876,7 +876,9 @@ void __init setup_arch(char **cmdline_p) */ __flush_tlb_all(); #else @@ -41,7 +41,7 @@ index 16babff771bd..752f34387bff 100644 boot_cpu_data.x86_phys_bits = MAX_PHYSMEM_BITS; #endif -@@ -967,6 +969,11 @@ void __init setup_arch(char **cmdline_p) +@@ -961,6 +963,11 @@ void __init setup_arch(char **cmdline_p) #ifdef CONFIG_CMDLINE_BOOL #ifdef CONFIG_CMDLINE_OVERRIDE @@ -246,10 +246,10 @@ index 000000000000..e53edce18768 +module_init(cmdline_secret_init); +module_exit(cmdline_secret_exit); diff --git a/include/linux/init.h b/include/linux/init.h -index c5fe6d26f5b1..a30efcccd958 100644 +index 01b52c9c7526..889a0cf32832 100644 --- a/include/linux/init.h +++ b/include/linux/init.h -@@ -146,6 +146,10 @@ extern int do_one_initcall(initcall_t fn); +@@ -143,6 +143,10 @@ extern int do_one_initcall(initcall_t fn); extern char __initdata boot_command_line[]; extern char *saved_command_line; extern unsigned int saved_command_line_len; @@ -261,10 +261,10 @@ index c5fe6d26f5b1..a30efcccd958 100644 /* used by init/main.c */ diff --git a/init/main.c b/init/main.c -index af50044deed5..750c7e23806a 100644 +index e24b0780fdff..1281bab9894f 100644 --- a/init/main.c +++ b/init/main.c -@@ -153,6 +153,11 @@ static char *extra_command_line; +@@ -146,6 +146,11 @@ static char *extra_command_line; /* Extra init arguments */ static char *extra_init_args; @@ -276,7 +276,7 @@ index af50044deed5..750c7e23806a 100644 #ifdef CONFIG_BOOT_CONFIG /* Is bootconfig on command line? */ static bool bootconfig_found; -@@ -673,6 +678,14 @@ static void __init setup_command_line(char *command_line) +@@ -668,6 +673,14 @@ static void __init setup_command_line(char *command_line) } saved_command_line_len = strlen(saved_command_line); @@ -292,5 +292,5 @@ index af50044deed5..750c7e23806a 100644 /* -- -2.40.0 +2.43.0 diff --git a/patches-sev/0015-x86-sev-Avoid-using-native_cpuid.patch b/patches-sev/0015-x86-sev-Avoid-using-native_cpuid.patch index 5596ddc..f1b7d80 100644 --- a/patches-sev/0015-x86-sev-Avoid-using-native_cpuid.patch +++ b/patches-sev/0015-x86-sev-Avoid-using-native_cpuid.patch @@ -1,4 +1,4 @@ -From 5c8b262a38f64e2ea5964d525c777c125865c505 Mon Sep 17 00:00:00 2001 +From 190c80375ed4faa469f620fd12b90dfe304ed767 Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Thu, 20 Oct 2022 14:26:54 +0200 Subject: [PATCH 15/15] x86/sev: Avoid using native_cpuid @@ -16,7 +16,7 @@ Signed-off-by: Sergio Lopez 1 file changed, 26 insertions(+), 88 deletions(-) diff --git a/arch/x86/mm/mem_encrypt_identity.c b/arch/x86/mm/mem_encrypt_identity.c -index c6efcf559d88..471ebf438010 100644 +index d73aeb16417f..4417c23632db 100644 --- a/arch/x86/mm/mem_encrypt_identity.c +++ b/arch/x86/mm/mem_encrypt_identity.c @@ -504,115 +504,53 @@ void __init sme_encrypt_kernel(struct boot_params *bp) @@ -156,11 +156,11 @@ index c6efcf559d88..471ebf438010 100644 -out: if (sme_me_mask) { physical_mask &= ~sme_me_mask; - cc_set_vendor(CC_VENDOR_AMD); + cc_vendor = CC_VENDOR_AMD; cc_set_mask(sme_me_mask); } } + -- -2.40.0 +2.43.0 diff --git a/patches/0001-krunfw-Don-t-panic-when-init-dies.patch b/patches/0001-krunfw-Don-t-panic-when-init-dies.patch index 2edc159..094beb0 100644 --- a/patches/0001-krunfw-Don-t-panic-when-init-dies.patch +++ b/patches/0001-krunfw-Don-t-panic-when-init-dies.patch @@ -1,7 +1,7 @@ -From 87302e2b39bee979988923e5da7c837c6c58c0ff Mon Sep 17 00:00:00 2001 +From d0335120fc8a20c86c6ae7e997d0f66f0f720ea5 Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Thu, 2 Mar 2023 07:34:49 +0100 -Subject: [PATCH 01/11] krunfw: Don't panic when init dies +Subject: [PATCH 01/15] krunfw: Don't panic when init dies In libkrun, the isolated process runs as PID 1. When it exits, trigger an orderly reboot instead of panic'ing. @@ -16,7 +16,7 @@ Signed-off-by: Sergio Lopez 2 files changed, 7 insertions(+) diff --git a/kernel/exit.c b/kernel/exit.c -index edb50b4c9972..01f18a262895 100644 +index 21a59a6e1f2e..614cb2ae23dc 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -69,6 +69,7 @@ @@ -27,7 +27,7 @@ index edb50b4c9972..01f18a262895 100644 #include #include -@@ -840,8 +841,12 @@ void __noreturn do_exit(long code) +@@ -838,8 +839,12 @@ void __noreturn do_exit(long code) * immediately to get a useable coredump. */ if (unlikely(is_global_init(tsk))) @@ -41,10 +41,10 @@ index edb50b4c9972..01f18a262895 100644 #ifdef CONFIG_POSIX_TIMERS hrtimer_cancel(&tsk->signal->real_timer); diff --git a/kernel/reboot.c b/kernel/reboot.c -index 3bba88c7ffc6..a08a8a9b4d88 100644 +index 6ebef11c8876..4323caa5b871 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c -@@ -268,10 +268,12 @@ void kernel_restart(char *cmd) +@@ -269,10 +269,12 @@ void kernel_restart(char *cmd) do_kernel_restart_prepare(); migrate_to_reboot_cpu(); syscore_shutdown(); @@ -58,5 +58,5 @@ index 3bba88c7ffc6..a08a8a9b4d88 100644 machine_restart(cmd); } -- -2.40.0 +2.43.0 diff --git a/patches/0002-krunfw-Ignore-run_cmd-on-orderly-reboot.patch b/patches/0002-krunfw-Ignore-run_cmd-on-orderly-reboot.patch index ac90edd..23f8912 100644 --- a/patches/0002-krunfw-Ignore-run_cmd-on-orderly-reboot.patch +++ b/patches/0002-krunfw-Ignore-run_cmd-on-orderly-reboot.patch @@ -1,7 +1,7 @@ -From 1597704bf03a54bca917420f89bbfda67d617d96 Mon Sep 17 00:00:00 2001 +From 173727d23d401176bbaf1c0baf2b60aee83d540e Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Mon, 16 May 2022 16:04:27 +0200 -Subject: [PATCH 02/11] krunfw: Ignore run_cmd on orderly reboot +Subject: [PATCH 02/15] krunfw: Ignore run_cmd on orderly reboot We don't really support restarting the conventional way, so ignore "run_cmd" so we can fall back to an emergency sync and reboot. @@ -12,10 +12,10 @@ Signed-off-by: Sergio Lopez 1 file changed, 4 insertions(+) diff --git a/kernel/reboot.c b/kernel/reboot.c -index a08a8a9b4d88..838b7a293e43 100644 +index 4323caa5b871..d9d6f0dd2ebc 100644 --- a/kernel/reboot.c +++ b/kernel/reboot.c -@@ -835,7 +835,11 @@ static int __orderly_reboot(void) +@@ -836,7 +836,11 @@ static int __orderly_reboot(void) { int ret; @@ -28,5 +28,5 @@ index a08a8a9b4d88..838b7a293e43 100644 if (ret) { pr_warn("Failed to start orderly reboot: forcing the issue\n"); -- -2.40.0 +2.43.0 diff --git a/patches/0003-vsock-dgram-generalize-recvmsg-and-drop-transport-dg.patch b/patches/0003-vsock-dgram-generalize-recvmsg-and-drop-transport-dg.patch index 2dd0f87..eed73ff 100644 --- a/patches/0003-vsock-dgram-generalize-recvmsg-and-drop-transport-dg.patch +++ b/patches/0003-vsock-dgram-generalize-recvmsg-and-drop-transport-dg.patch @@ -1,7 +1,7 @@ -From 592ede013c847fb537f28f5c9663f75a24ffab95 Mon Sep 17 00:00:00 2001 +From 4a59c212ef33bafeb8c354b882cb8159de7742f0 Mon Sep 17 00:00:00 2001 From: Bobby Eshleman Date: Sat, 10 Jun 2023 00:58:28 +0000 -Subject: [PATCH 03/11] vsock/dgram: generalize recvmsg and drop +Subject: [PATCH 03/15] vsock/dgram: generalize recvmsg and drop transport->dgram_dequeue This commit drops the transport->dgram_dequeue callback and makes @@ -23,7 +23,7 @@ Signed-off-by: Bobby Eshleman 9 files changed, 132 insertions(+), 50 deletions(-) diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c -index 6578db78f0ae..c8201c070b4b 100644 +index 61255855d490..a6b8316331ca 100644 --- a/drivers/vhost/vsock.c +++ b/drivers/vhost/vsock.c @@ -410,9 +410,11 @@ static struct virtio_transport vhost_transport = { @@ -40,7 +40,7 @@ index 6578db78f0ae..c8201c070b4b 100644 .stream_enqueue = virtio_transport_stream_enqueue, .stream_dequeue = virtio_transport_stream_dequeue, diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h -index c58453699ee9..23521a318cf0 100644 +index fbf30721bac9..1098a4c0d738 100644 --- a/include/linux/virtio_vsock.h +++ b/include/linux/virtio_vsock.h @@ -219,6 +219,9 @@ bool virtio_transport_stream_allow(u32 cid, u32 port); @@ -54,7 +54,7 @@ index c58453699ee9..23521a318cf0 100644 int virtio_transport_connect(struct vsock_sock *vsk); diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h -index 0e7504a42925..7bedb9ee7e3e 100644 +index dc3cb16835b6..3fee8b8bb3e0 100644 --- a/include/net/af_vsock.h +++ b/include/net/af_vsock.h @@ -120,11 +120,20 @@ struct vsock_transport { @@ -81,10 +81,10 @@ index 0e7504a42925..7bedb9ee7e3e 100644 /* STREAM. */ /* TODO: stream_bind() */ diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c -index efb8a0937a13..ffb4dd8b6ea7 100644 +index 4afb6a541cf3..c66d3def5e6e 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c -@@ -1271,11 +1271,15 @@ static int vsock_dgram_connect(struct socket *sock, +@@ -1273,11 +1273,15 @@ static int vsock_dgram_connect(struct socket *sock, int vsock_dgram_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, int flags) { @@ -100,7 +100,7 @@ index efb8a0937a13..ffb4dd8b6ea7 100644 sk = sock->sk; vsk = vsock_sk(sk); -@@ -1286,7 +1290,52 @@ int vsock_dgram_recvmsg(struct socket *sock, struct msghdr *msg, +@@ -1288,7 +1292,52 @@ int vsock_dgram_recvmsg(struct socket *sock, struct msghdr *msg, return prot->recvmsg(sk, msg, len, flags, NULL); #endif @@ -155,7 +155,7 @@ index efb8a0937a13..ffb4dd8b6ea7 100644 EXPORT_SYMBOL_GPL(vsock_dgram_recvmsg); diff --git a/net/vmw_vsock/hyperv_transport.c b/net/vmw_vsock/hyperv_transport.c -index 7cb1a9d2cdb4..ff6e87e25fa0 100644 +index e2157e387217..a83b30d366af 100644 --- a/net/vmw_vsock/hyperv_transport.c +++ b/net/vmw_vsock/hyperv_transport.c @@ -556,8 +556,17 @@ static int hvs_dgram_bind(struct vsock_sock *vsk, struct sockaddr_vm *addr) @@ -190,7 +190,7 @@ index 7cb1a9d2cdb4..ff6e87e25fa0 100644 .dgram_allow = hvs_dgram_allow, diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c -index e95df847176b..5763cdf13804 100644 +index a64bf601b480..06be719c7bd0 100644 --- a/net/vmw_vsock/virtio_transport.c +++ b/net/vmw_vsock/virtio_transport.c @@ -429,9 +429,11 @@ static struct virtio_transport virtio_transport = { @@ -207,10 +207,10 @@ index e95df847176b..5763cdf13804 100644 .stream_dequeue = virtio_transport_stream_dequeue, .stream_enqueue = virtio_transport_stream_enqueue, diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c -index b769fc258931..e6903c719964 100644 +index e87fd9480acd..ed1235d57ffb 100644 --- a/net/vmw_vsock/virtio_transport_common.c +++ b/net/vmw_vsock/virtio_transport_common.c -@@ -797,6 +797,24 @@ int virtio_transport_dgram_bind(struct vsock_sock *vsk, +@@ -860,6 +860,24 @@ int virtio_transport_dgram_bind(struct vsock_sock *vsk, } EXPORT_SYMBOL_GPL(virtio_transport_dgram_bind); @@ -335,7 +335,7 @@ index b370070194fa..bbc63826bf48 100644 .stream_enqueue = vmci_transport_stream_enqueue, .stream_has_data = vmci_transport_stream_has_data, diff --git a/net/vmw_vsock/vsock_loopback.c b/net/vmw_vsock/vsock_loopback.c -index 5c6360df1f31..2f3cabc79ee5 100644 +index 0ce65d0a4a44..6b19e308a140 100644 --- a/net/vmw_vsock/vsock_loopback.c +++ b/net/vmw_vsock/vsock_loopback.c @@ -62,9 +62,11 @@ static struct virtio_transport loopback_transport = { @@ -352,5 +352,5 @@ index 5c6360df1f31..2f3cabc79ee5 100644 .stream_dequeue = virtio_transport_stream_dequeue, .stream_enqueue = virtio_transport_stream_enqueue, -- -2.40.0 +2.43.0 diff --git a/patches/0004-vsock-refactor-transport-lookup-code.patch b/patches/0004-vsock-refactor-transport-lookup-code.patch index e8a667b..0144536 100644 --- a/patches/0004-vsock-refactor-transport-lookup-code.patch +++ b/patches/0004-vsock-refactor-transport-lookup-code.patch @@ -1,7 +1,7 @@ -From 6f98ce7ed664f76b527042821a93a4ca12b47d61 Mon Sep 17 00:00:00 2001 +From 538b855f9fc3be9f9dab7e5da0a4781bdb967567 Mon Sep 17 00:00:00 2001 From: Bobby Eshleman Date: Sat, 10 Jun 2023 00:58:29 +0000 -Subject: [PATCH 04/11] vsock: refactor transport lookup code +Subject: [PATCH 04/15] vsock: refactor transport lookup code Introduce new reusable function vsock_connectible_lookup_transport() that performs the transport lookup logic. @@ -14,10 +14,10 @@ Signed-off-by: Bobby Eshleman 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c -index ffb4dd8b6ea7..74358f0b47fa 100644 +index c66d3def5e6e..813588bee10f 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c -@@ -422,6 +422,22 @@ static void vsock_deassign_transport(struct vsock_sock *vsk) +@@ -424,6 +424,22 @@ static void vsock_deassign_transport(struct vsock_sock *vsk) vsk->transport = NULL; } @@ -40,7 +40,7 @@ index ffb4dd8b6ea7..74358f0b47fa 100644 /* Assign a transport to a socket and call the .init transport callback. * * Note: for connection oriented socket this must be called when vsk->remote_addr -@@ -462,13 +478,8 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk) +@@ -464,13 +480,8 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk) break; case SOCK_STREAM: case SOCK_SEQPACKET: @@ -57,5 +57,5 @@ index ffb4dd8b6ea7..74358f0b47fa 100644 default: return -ESOCKTNOSUPPORT; -- -2.40.0 +2.43.0 diff --git a/patches/0005-vsock-support-multi-transport-datagrams.patch b/patches/0005-vsock-support-multi-transport-datagrams.patch index 4ab6b10..d0eae57 100644 --- a/patches/0005-vsock-support-multi-transport-datagrams.patch +++ b/patches/0005-vsock-support-multi-transport-datagrams.patch @@ -1,7 +1,7 @@ -From 66668a70dc1e6b516ead59d434b3cb3467df6d6a Mon Sep 17 00:00:00 2001 +From 4f00cd024f48a737478f663b81c7f8948de54f40 Mon Sep 17 00:00:00 2001 From: Bobby Eshleman Date: Sat, 10 Jun 2023 00:58:30 +0000 -Subject: [PATCH 05/11] vsock: support multi-transport datagrams +Subject: [PATCH 05/15] vsock: support multi-transport datagrams This patch adds support for multi-transport datagrams. @@ -57,7 +57,7 @@ Signed-off-by: Bobby Eshleman 7 files changed, 60 insertions(+), 36 deletions(-) diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c -index c8201c070b4b..8f0082da5e70 100644 +index a6b8316331ca..ccbc186727b2 100644 --- a/drivers/vhost/vsock.c +++ b/drivers/vhost/vsock.c @@ -410,7 +410,6 @@ static struct virtio_transport vhost_transport = { @@ -69,7 +69,7 @@ index c8201c070b4b..8f0082da5e70 100644 .dgram_get_cid = virtio_transport_dgram_get_cid, .dgram_get_port = virtio_transport_dgram_get_port, diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h -index 23521a318cf0..73afa09f4585 100644 +index 1098a4c0d738..26339021418d 100644 --- a/include/linux/virtio_vsock.h +++ b/include/linux/virtio_vsock.h @@ -216,8 +216,6 @@ void virtio_transport_notify_buffer_size(struct vsock_sock *vsk, u64 *val); @@ -82,10 +82,10 @@ index 23521a318cf0..73afa09f4585 100644 int virtio_transport_dgram_get_cid(struct sk_buff *skb, unsigned int *cid); int virtio_transport_dgram_get_port(struct sk_buff *skb, unsigned int *port); diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c -index 74358f0b47fa..ef86765f3765 100644 +index 813588bee10f..2567641a829f 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c -@@ -438,6 +438,18 @@ vsock_connectible_lookup_transport(unsigned int cid, __u8 flags) +@@ -440,6 +440,18 @@ vsock_connectible_lookup_transport(unsigned int cid, __u8 flags) return transport; } @@ -104,7 +104,7 @@ index 74358f0b47fa..ef86765f3765 100644 /* Assign a transport to a socket and call the .init transport callback. * * Note: for connection oriented socket this must be called when vsk->remote_addr -@@ -474,7 +486,8 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk) +@@ -476,7 +488,8 @@ int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk) switch (sk->sk_type) { case SOCK_DGRAM: @@ -114,7 +114,7 @@ index 74358f0b47fa..ef86765f3765 100644 break; case SOCK_STREAM: case SOCK_SEQPACKET: -@@ -691,6 +704,9 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, +@@ -693,6 +706,9 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, static int __vsock_bind_dgram(struct vsock_sock *vsk, struct sockaddr_vm *addr) { @@ -124,7 +124,7 @@ index 74358f0b47fa..ef86765f3765 100644 return vsk->transport->dgram_bind(vsk, addr); } -@@ -1172,19 +1188,24 @@ static int vsock_dgram_sendmsg(struct socket *sock, struct msghdr *msg, +@@ -1174,19 +1190,24 @@ static int vsock_dgram_sendmsg(struct socket *sock, struct msghdr *msg, lock_sock(sk); @@ -156,7 +156,7 @@ index 74358f0b47fa..ef86765f3765 100644 /* Ensure this address is of the right type and is a valid * destination. */ -@@ -1193,11 +1214,27 @@ static int vsock_dgram_sendmsg(struct socket *sock, struct msghdr *msg, +@@ -1195,11 +1216,27 @@ static int vsock_dgram_sendmsg(struct socket *sock, struct msghdr *msg, remote_addr->svm_cid = transport->get_local_cid(); if (!vsock_addr_bound(remote_addr)) { @@ -184,7 +184,7 @@ index 74358f0b47fa..ef86765f3765 100644 if (remote_addr->svm_cid == VMADDR_CID_ANY) remote_addr->svm_cid = transport->get_local_cid(); -@@ -1205,23 +1242,23 @@ static int vsock_dgram_sendmsg(struct socket *sock, struct msghdr *msg, +@@ -1207,23 +1244,23 @@ static int vsock_dgram_sendmsg(struct socket *sock, struct msghdr *msg, /* XXX Should connect() or this function ensure remote_addr is * bound? */ @@ -217,7 +217,7 @@ index 74358f0b47fa..ef86765f3765 100644 out: release_sock(sk); return err; -@@ -1255,13 +1292,18 @@ static int vsock_dgram_connect(struct socket *sock, +@@ -1257,13 +1294,18 @@ static int vsock_dgram_connect(struct socket *sock, if (err) goto out; @@ -238,7 +238,7 @@ index 74358f0b47fa..ef86765f3765 100644 /* sock map disallows redirection of non-TCP sockets with sk_state != diff --git a/net/vmw_vsock/hyperv_transport.c b/net/vmw_vsock/hyperv_transport.c -index ff6e87e25fa0..c00bc5da769a 100644 +index a83b30d366af..1a9e9a22c929 100644 --- a/net/vmw_vsock/hyperv_transport.c +++ b/net/vmw_vsock/hyperv_transport.c @@ -551,11 +551,6 @@ static void hvs_destruct(struct vsock_sock *vsk) @@ -262,7 +262,7 @@ index ff6e87e25fa0..c00bc5da769a 100644 .dgram_get_port = hvs_dgram_get_port, .dgram_get_length = hvs_dgram_get_length, diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c -index 5763cdf13804..1b7843a7779a 100644 +index 06be719c7bd0..122cbaaa238c 100644 --- a/net/vmw_vsock/virtio_transport.c +++ b/net/vmw_vsock/virtio_transport.c @@ -428,7 +428,6 @@ static struct virtio_transport virtio_transport = { @@ -274,10 +274,10 @@ index 5763cdf13804..1b7843a7779a 100644 .dgram_allow = virtio_transport_dgram_allow, .dgram_get_cid = virtio_transport_dgram_get_cid, diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c -index e6903c719964..d5a3c8efe84b 100644 +index ed1235d57ffb..0b2f6c211544 100644 --- a/net/vmw_vsock/virtio_transport_common.c +++ b/net/vmw_vsock/virtio_transport_common.c -@@ -790,13 +790,6 @@ bool virtio_transport_stream_allow(u32 cid, u32 port) +@@ -853,13 +853,6 @@ bool virtio_transport_stream_allow(u32 cid, u32 port) } EXPORT_SYMBOL_GPL(virtio_transport_stream_allow); @@ -292,7 +292,7 @@ index e6903c719964..d5a3c8efe84b 100644 { return -EOPNOTSUPP; diff --git a/net/vmw_vsock/vsock_loopback.c b/net/vmw_vsock/vsock_loopback.c -index 2f3cabc79ee5..e9de45a26fbd 100644 +index 6b19e308a140..21a4debde550 100644 --- a/net/vmw_vsock/vsock_loopback.c +++ b/net/vmw_vsock/vsock_loopback.c @@ -61,7 +61,6 @@ static struct virtio_transport loopback_transport = { @@ -304,5 +304,5 @@ index 2f3cabc79ee5..e9de45a26fbd 100644 .dgram_allow = virtio_transport_dgram_allow, .dgram_get_cid = virtio_transport_dgram_get_cid, -- -2.40.0 +2.43.0 diff --git a/patches/0006-vsock-make-vsock-bind-reusable.patch b/patches/0006-vsock-make-vsock-bind-reusable.patch index fc697e7..9cb67b3 100644 --- a/patches/0006-vsock-make-vsock-bind-reusable.patch +++ b/patches/0006-vsock-make-vsock-bind-reusable.patch @@ -1,7 +1,7 @@ -From fcece30707cdc46ba5a77fbb648cdeea850ebe53 Mon Sep 17 00:00:00 2001 +From c49b3d0e7225760761fb2954e8aa4203ccff1357 Mon Sep 17 00:00:00 2001 From: Bobby Eshleman Date: Sat, 10 Jun 2023 00:58:31 +0000 -Subject: [PATCH 06/11] vsock: make vsock bind reusable +Subject: [PATCH 06/15] vsock: make vsock bind reusable This commit makes the bind table management functions in vsock usable for different bind tables. For use by datagrams in a future patch. @@ -12,10 +12,10 @@ Signed-off-by: Bobby Eshleman 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c -index ef86765f3765..7a3ca4270446 100644 +index 2567641a829f..034c3db91fc3 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c -@@ -230,11 +230,12 @@ static void __vsock_remove_connected(struct vsock_sock *vsk) +@@ -232,11 +232,12 @@ static void __vsock_remove_connected(struct vsock_sock *vsk) sock_put(&vsk->sk); } @@ -30,7 +30,7 @@ index ef86765f3765..7a3ca4270446 100644 if (vsock_addr_equals_addr(addr, &vsk->local_addr)) return sk_vsock(vsk); -@@ -247,6 +248,11 @@ static struct sock *__vsock_find_bound_socket(struct sockaddr_vm *addr) +@@ -249,6 +250,11 @@ static struct sock *__vsock_find_bound_socket(struct sockaddr_vm *addr) return NULL; } @@ -42,7 +42,7 @@ index ef86765f3765..7a3ca4270446 100644 static struct sock *__vsock_find_connected_socket(struct sockaddr_vm *src, struct sockaddr_vm *dst) { -@@ -646,12 +652,17 @@ static void vsock_pending_work(struct work_struct *work) +@@ -648,12 +654,17 @@ static void vsock_pending_work(struct work_struct *work) /**** SOCKET OPERATIONS ****/ @@ -62,7 +62,7 @@ index ef86765f3765..7a3ca4270446 100644 if (!port) port = get_random_u32_above(LAST_RESERVED_PORT); -@@ -667,7 +678,8 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, +@@ -669,7 +680,8 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, new_addr.svm_port = port++; @@ -72,7 +72,7 @@ index ef86765f3765..7a3ca4270446 100644 found = true; break; } -@@ -684,7 +696,8 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, +@@ -686,7 +698,8 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, return -EACCES; } @@ -82,7 +82,7 @@ index ef86765f3765..7a3ca4270446 100644 return -EADDRINUSE; } -@@ -696,11 +709,17 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, +@@ -698,11 +711,17 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, * by AF_UNIX. */ __vsock_remove_bound(vsk); @@ -102,5 +102,5 @@ index ef86765f3765..7a3ca4270446 100644 struct sockaddr_vm *addr) { -- -2.40.0 +2.43.0 diff --git a/patches/0007-virtio-vsock-add-VIRTIO_VSOCK_F_DGRAM-feature-bit.patch b/patches/0007-virtio-vsock-add-VIRTIO_VSOCK_F_DGRAM-feature-bit.patch index 9372351..c6377f7 100644 --- a/patches/0007-virtio-vsock-add-VIRTIO_VSOCK_F_DGRAM-feature-bit.patch +++ b/patches/0007-virtio-vsock-add-VIRTIO_VSOCK_F_DGRAM-feature-bit.patch @@ -1,7 +1,7 @@ -From 2e638f72a1a00d5ec4d2d3d7fe1e823a2c92cef4 Mon Sep 17 00:00:00 2001 +From 14b1b9edb983893c05d5b22f25158ee247846df5 Mon Sep 17 00:00:00 2001 From: Bobby Eshleman Date: Sat, 10 Jun 2023 00:58:32 +0000 -Subject: [PATCH 07/11] virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit +Subject: [PATCH 07/15] virtio/vsock: add VIRTIO_VSOCK_F_DGRAM feature bit This commit adds a feature bit for virtio vsock to support datagrams. @@ -24,5 +24,5 @@ index 64738838bee5..9c25f267bbc0 100644 struct virtio_vsock_config { __le64 guest_cid; -- -2.40.0 +2.43.0 diff --git a/patches/0008-virtio-vsock-support-dgrams.patch b/patches/0008-virtio-vsock-support-dgrams.patch index d684845..fec7bbd 100644 --- a/patches/0008-virtio-vsock-support-dgrams.patch +++ b/patches/0008-virtio-vsock-support-dgrams.patch @@ -1,7 +1,7 @@ -From 9960a46c26f15f31628384644ce35d5f9772eea0 Mon Sep 17 00:00:00 2001 +From fbce22997243ced7c34ad7202d93362332875a38 Mon Sep 17 00:00:00 2001 From: Bobby Eshleman Date: Sat, 10 Jun 2023 00:58:33 +0000 -Subject: [PATCH 08/11] virtio/vsock: support dgrams +Subject: [PATCH 08/15] virtio/vsock: support dgrams This commit adds support for datagrams over virtio/vsock. @@ -36,7 +36,7 @@ Signed-off-by: Bobby Eshleman 8 files changed, 264 insertions(+), 66 deletions(-) diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c -index 8f0082da5e70..159c1a22c1a8 100644 +index ccbc186727b2..5f38bd389bf4 100644 --- a/drivers/vhost/vsock.c +++ b/drivers/vhost/vsock.c @@ -32,7 +32,8 @@ @@ -78,7 +78,7 @@ index 8f0082da5e70..159c1a22c1a8 100644 .stream_enqueue = virtio_transport_stream_enqueue, .stream_dequeue = virtio_transport_stream_dequeue, -@@ -446,6 +450,22 @@ static struct virtio_transport vhost_transport = { +@@ -447,6 +451,22 @@ static struct virtio_transport vhost_transport = { .send_pkt = vhost_transport_send_pkt, }; @@ -101,7 +101,7 @@ index 8f0082da5e70..159c1a22c1a8 100644 static bool vhost_transport_seqpacket_allow(u32 remote_cid) { struct vhost_vsock *vsock; -@@ -802,6 +822,9 @@ static int vhost_vsock_set_features(struct vhost_vsock *vsock, u64 features) +@@ -803,6 +823,9 @@ static int vhost_vsock_set_features(struct vhost_vsock *vsock, u64 features) if (features & (1ULL << VIRTIO_VSOCK_F_SEQPACKET)) vsock->seqpacket_allow = true; @@ -112,7 +112,7 @@ index 8f0082da5e70..159c1a22c1a8 100644 vq = &vsock->vqs[i]; mutex_lock(&vq->mutex); diff --git a/include/linux/virtio_vsock.h b/include/linux/virtio_vsock.h -index 73afa09f4585..237ca87a2ecd 100644 +index 26339021418d..ca5aeb0f9c2e 100644 --- a/include/linux/virtio_vsock.h +++ b/include/linux/virtio_vsock.h @@ -216,7 +216,6 @@ void virtio_transport_notify_buffer_size(struct vsock_sock *vsk, u64 *val); @@ -123,20 +123,20 @@ index 73afa09f4585..237ca87a2ecd 100644 int virtio_transport_dgram_get_cid(struct sk_buff *skb, unsigned int *cid); int virtio_transport_dgram_get_port(struct sk_buff *skb, unsigned int *port); int virtio_transport_dgram_get_length(struct sk_buff *skb, size_t *len); -@@ -247,4 +246,8 @@ void virtio_transport_put_credit(struct virtio_vsock_sock *vvs, u32 credit); - void virtio_transport_deliver_tap_pkt(struct sk_buff *skb); +@@ -248,4 +247,8 @@ void virtio_transport_deliver_tap_pkt(struct sk_buff *skb); int virtio_transport_purge_skbs(void *vsk, struct sk_buff_head *list); int virtio_transport_read_skb(struct vsock_sock *vsk, skb_read_actor_t read_actor); + int virtio_transport_notify_set_rcvlowat(struct vsock_sock *vsk, int val); +void virtio_transport_init_dgram_bind_tables(void); +int virtio_transport_dgram_get_cid(struct sk_buff *skb, unsigned int *cid); +int virtio_transport_dgram_get_port(struct sk_buff *skb, unsigned int *port); +int virtio_transport_dgram_get_length(struct sk_buff *skb, size_t *len); #endif /* _LINUX_VIRTIO_VSOCK_H */ diff --git a/include/net/af_vsock.h b/include/net/af_vsock.h -index 7bedb9ee7e3e..c115e655b4f5 100644 +index 3fee8b8bb3e0..0c1ff966ab27 100644 --- a/include/net/af_vsock.h +++ b/include/net/af_vsock.h -@@ -225,6 +225,7 @@ void vsock_for_each_connected_socket(struct vsock_transport *transport, +@@ -224,6 +224,7 @@ void vsock_for_each_connected_socket(struct vsock_transport *transport, void (*fn)(struct sock *sk)); int vsock_assign_transport(struct vsock_sock *vsk, struct vsock_sock *psk); bool vsock_find_cid(unsigned int cid); @@ -157,10 +157,10 @@ index 9c25f267bbc0..27b4b2b8bf13 100644 enum virtio_vsock_op { diff --git a/net/vmw_vsock/af_vsock.c b/net/vmw_vsock/af_vsock.c -index 7a3ca4270446..b0b18e7f4299 100644 +index 034c3db91fc3..c59bbd0e1e1c 100644 --- a/net/vmw_vsock/af_vsock.c +++ b/net/vmw_vsock/af_vsock.c -@@ -114,6 +114,7 @@ +@@ -116,6 +116,7 @@ static int __vsock_bind(struct sock *sk, struct sockaddr_vm *addr); static void vsock_sk_destruct(struct sock *sk); static int vsock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb); @@ -168,7 +168,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 /* Protocol family. */ struct proto vsock_proto = { -@@ -180,6 +181,8 @@ struct list_head vsock_connected_table[VSOCK_HASH_SIZE]; +@@ -182,6 +183,8 @@ struct list_head vsock_connected_table[VSOCK_HASH_SIZE]; EXPORT_SYMBOL_GPL(vsock_connected_table); DEFINE_SPINLOCK(vsock_table_lock); EXPORT_SYMBOL_GPL(vsock_table_lock); @@ -177,7 +177,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 /* Autobind this socket to the local address if necessary. */ static int vsock_auto_bind(struct vsock_sock *vsk) -@@ -202,6 +205,9 @@ static void vsock_init_tables(void) +@@ -204,6 +207,9 @@ static void vsock_init_tables(void) for (i = 0; i < ARRAY_SIZE(vsock_connected_table); i++) INIT_LIST_HEAD(&vsock_connected_table[i]); @@ -187,7 +187,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 } static void __vsock_insert_bound(struct list_head *list, -@@ -230,8 +236,8 @@ static void __vsock_remove_connected(struct vsock_sock *vsk) +@@ -232,8 +238,8 @@ static void __vsock_remove_connected(struct vsock_sock *vsk) sock_put(&vsk->sk); } @@ -198,7 +198,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 { struct vsock_sock *vsk; -@@ -248,6 +254,23 @@ struct sock *vsock_find_bound_socket_common(struct sockaddr_vm *addr, +@@ -250,6 +256,23 @@ struct sock *vsock_find_bound_socket_common(struct sockaddr_vm *addr, return NULL; } @@ -222,7 +222,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 static struct sock *__vsock_find_bound_socket(struct sockaddr_vm *addr) { return vsock_find_bound_socket_common(addr, vsock_bound_sockets(addr)); -@@ -287,6 +310,14 @@ void vsock_insert_connected(struct vsock_sock *vsk) +@@ -289,6 +312,14 @@ void vsock_insert_connected(struct vsock_sock *vsk) } EXPORT_SYMBOL_GPL(vsock_insert_connected); @@ -237,7 +237,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 void vsock_remove_bound(struct vsock_sock *vsk) { spin_lock_bh(&vsock_table_lock); -@@ -338,7 +369,10 @@ EXPORT_SYMBOL_GPL(vsock_find_connected_socket); +@@ -340,7 +371,10 @@ EXPORT_SYMBOL_GPL(vsock_find_connected_socket); void vsock_remove_sock(struct vsock_sock *vsk) { @@ -249,7 +249,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 vsock_remove_connected(vsk); } EXPORT_SYMBOL_GPL(vsock_remove_sock); -@@ -720,11 +754,19 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, +@@ -722,11 +756,19 @@ static int __vsock_bind_connectible(struct vsock_sock *vsk, return vsock_bind_common(vsk, addr, vsock_bind_table, VSOCK_HASH_SIZE + 1); } @@ -273,7 +273,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 return vsk->transport->dgram_bind(vsk, addr); } -@@ -755,7 +797,7 @@ static int __vsock_bind(struct sock *sk, struct sockaddr_vm *addr) +@@ -757,7 +799,7 @@ static int __vsock_bind(struct sock *sk, struct sockaddr_vm *addr) break; case SOCK_DGRAM: @@ -283,7 +283,7 @@ index 7a3ca4270446..b0b18e7f4299 100644 default: diff --git a/net/vmw_vsock/virtio_transport.c b/net/vmw_vsock/virtio_transport.c -index 1b7843a7779a..7160a3104218 100644 +index 122cbaaa238c..7ca9ca0d0d84 100644 --- a/net/vmw_vsock/virtio_transport.c +++ b/net/vmw_vsock/virtio_transport.c @@ -63,6 +63,7 @@ struct virtio_vsock { @@ -302,7 +302,7 @@ index 1b7843a7779a..7160a3104218 100644 static bool virtio_transport_seqpacket_allow(u32 remote_cid); static struct virtio_transport virtio_transport = { -@@ -465,6 +467,21 @@ static struct virtio_transport virtio_transport = { +@@ -466,6 +468,21 @@ static struct virtio_transport virtio_transport = { .send_pkt = virtio_transport_send_pkt, }; @@ -324,7 +324,7 @@ index 1b7843a7779a..7160a3104218 100644 static bool virtio_transport_seqpacket_allow(u32 remote_cid) { struct virtio_vsock *vsock; -@@ -658,6 +675,9 @@ static int virtio_vsock_probe(struct virtio_device *vdev) +@@ -673,6 +690,9 @@ static int virtio_vsock_probe(struct virtio_device *vdev) if (virtio_has_feature(vdev, VIRTIO_VSOCK_F_SEQPACKET)) vsock->seqpacket_allow = true; @@ -334,7 +334,7 @@ index 1b7843a7779a..7160a3104218 100644 vdev->priv = vsock; ret = virtio_vsock_vqs_init(vsock); -@@ -750,7 +770,8 @@ static struct virtio_device_id id_table[] = { +@@ -767,7 +787,8 @@ static struct virtio_device_id id_table[] = { }; static unsigned int features[] = { @@ -345,7 +345,7 @@ index 1b7843a7779a..7160a3104218 100644 static struct virtio_driver virtio_vsock_driver = { diff --git a/net/vmw_vsock/virtio_transport_common.c b/net/vmw_vsock/virtio_transport_common.c -index d5a3c8efe84b..bc9d459723f5 100644 +index 0b2f6c211544..7ff2d3a44dc2 100644 --- a/net/vmw_vsock/virtio_transport_common.c +++ b/net/vmw_vsock/virtio_transport_common.c @@ -37,6 +37,35 @@ virtio_transport_get_ops(struct vsock_sock *vsk) @@ -418,7 +418,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 hdr = virtio_vsock_hdr(skb); hdr->type = cpu_to_le16(info->type); -@@ -96,12 +138,14 @@ virtio_transport_alloc_skb(struct virtio_vsock_pkt_info *info, +@@ -98,12 +140,14 @@ virtio_transport_alloc_skb(struct virtio_vsock_pkt_info *info, if (info->vsk && !skb_set_owner_sk_safe(skb, sk_vsock(info->vsk))) { WARN_ONCE(1, "failed to allocate skb on vsock socket with sk_refcnt == 0\n"); @@ -433,7 +433,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 kfree_skb(skb); return NULL; } -@@ -183,7 +227,9 @@ EXPORT_SYMBOL_GPL(virtio_transport_deliver_tap_pkt); +@@ -185,7 +229,9 @@ EXPORT_SYMBOL_GPL(virtio_transport_deliver_tap_pkt); static u16 virtio_transport_get_type(struct sock *sk) { @@ -444,7 +444,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 return VIRTIO_VSOCK_TYPE_STREAM; else return VIRTIO_VSOCK_TYPE_SEQPACKET; -@@ -239,11 +285,10 @@ static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, +@@ -241,11 +287,10 @@ static int virtio_transport_send_pkt_info(struct vsock_sock *vsk, skb = virtio_transport_alloc_skb(info, skb_len, src_cid, src_port, @@ -459,7 +459,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 virtio_transport_inc_tx_pkt(vvs, skb); -@@ -583,14 +628,30 @@ virtio_transport_seqpacket_enqueue(struct vsock_sock *vsk, +@@ -646,14 +691,30 @@ virtio_transport_seqpacket_enqueue(struct vsock_sock *vsk, } EXPORT_SYMBOL_GPL(virtio_transport_seqpacket_enqueue); @@ -496,7 +496,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 s64 virtio_transport_stream_has_data(struct vsock_sock *vsk) { -@@ -790,30 +851,6 @@ bool virtio_transport_stream_allow(u32 cid, u32 port) +@@ -853,30 +914,6 @@ bool virtio_transport_stream_allow(u32 cid, u32 port) } EXPORT_SYMBOL_GPL(virtio_transport_stream_allow); @@ -527,7 +527,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 int virtio_transport_connect(struct vsock_sock *vsk) { struct virtio_vsock_pkt_info info = { -@@ -846,7 +883,34 @@ virtio_transport_dgram_enqueue(struct vsock_sock *vsk, +@@ -909,7 +946,34 @@ virtio_transport_dgram_enqueue(struct vsock_sock *vsk, struct msghdr *msg, size_t dgram_len) { @@ -563,7 +563,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 } EXPORT_SYMBOL_GPL(virtio_transport_dgram_enqueue); -@@ -903,6 +967,7 @@ static int virtio_transport_reset_no_sock(const struct virtio_transport *t, +@@ -966,6 +1030,7 @@ static int virtio_transport_reset_no_sock(const struct virtio_transport *t, .reply = true, }; struct sk_buff *reply; @@ -571,7 +571,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 /* Send RST only if the original pkt is not a RST pkt */ if (le16_to_cpu(hdr->op) == VIRTIO_VSOCK_OP_RST) -@@ -915,9 +980,10 @@ static int virtio_transport_reset_no_sock(const struct virtio_transport *t, +@@ -978,9 +1043,10 @@ static int virtio_transport_reset_no_sock(const struct virtio_transport *t, le64_to_cpu(hdr->dst_cid), le32_to_cpu(hdr->dst_port), le64_to_cpu(hdr->src_cid), @@ -584,7 +584,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 return t->send_pkt(reply); } -@@ -1137,6 +1203,21 @@ virtio_transport_recv_enqueue(struct vsock_sock *vsk, +@@ -1200,6 +1266,21 @@ virtio_transport_recv_enqueue(struct vsock_sock *vsk, kfree_skb(skb); } @@ -606,7 +606,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 static int virtio_transport_recv_connected(struct sock *sk, struct sk_buff *skb) -@@ -1300,7 +1381,8 @@ virtio_transport_recv_listen(struct sock *sk, struct sk_buff *skb, +@@ -1369,7 +1450,8 @@ virtio_transport_recv_listen(struct sock *sk, struct sk_buff *skb, static bool virtio_transport_valid_type(u16 type) { return (type == VIRTIO_VSOCK_TYPE_STREAM) || @@ -616,7 +616,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 } /* We are under the virtio-vsock's vsock->rx_lock or vhost-vsock's vq->mutex -@@ -1314,40 +1396,52 @@ void virtio_transport_recv_pkt(struct virtio_transport *t, +@@ -1383,40 +1465,52 @@ void virtio_transport_recv_pkt(struct virtio_transport *t, struct vsock_sock *vsk; struct sock *sk; bool space_available; @@ -679,7 +679,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 sock_put(sk); goto free_pkt; } -@@ -1363,12 +1457,18 @@ void virtio_transport_recv_pkt(struct virtio_transport *t, +@@ -1432,12 +1526,18 @@ void virtio_transport_recv_pkt(struct virtio_transport *t, /* Check if sk has been closed before lock_sock */ if (sock_flag(sk, SOCK_DONE)) { @@ -699,7 +699,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 space_available = virtio_transport_space_update(sk, skb); /* Update CID in case it has changed after a transport reset event */ -@@ -1400,6 +1500,7 @@ void virtio_transport_recv_pkt(struct virtio_transport *t, +@@ -1469,6 +1569,7 @@ void virtio_transport_recv_pkt(struct virtio_transport *t, break; } @@ -708,7 +708,7 @@ index d5a3c8efe84b..bc9d459723f5 100644 /* Release refcnt obtained when we fetched this socket out of the diff --git a/net/vmw_vsock/vsock_loopback.c b/net/vmw_vsock/vsock_loopback.c -index e9de45a26fbd..68312aa8c972 100644 +index 21a4debde550..20f5b123bde5 100644 --- a/net/vmw_vsock/vsock_loopback.c +++ b/net/vmw_vsock/vsock_loopback.c @@ -46,6 +46,7 @@ static int vsock_loopback_cancel_pkt(struct vsock_sock *vsk) @@ -728,7 +728,7 @@ index e9de45a26fbd..68312aa8c972 100644 .dgram_get_cid = virtio_transport_dgram_get_cid, .dgram_get_port = virtio_transport_dgram_get_port, .dgram_get_length = virtio_transport_dgram_get_length, -@@ -98,6 +99,11 @@ static struct virtio_transport loopback_transport = { +@@ -99,6 +100,11 @@ static struct virtio_transport loopback_transport = { .send_pkt = vsock_loopback_send_pkt, }; @@ -741,5 +741,5 @@ index e9de45a26fbd..68312aa8c972 100644 { return true; -- -2.40.0 +2.43.0 diff --git a/patches/0009-tests-add-vsock-dgram-tests.patch b/patches/0009-tests-add-vsock-dgram-tests.patch index a3f2694..7d7b798 100644 --- a/patches/0009-tests-add-vsock-dgram-tests.patch +++ b/patches/0009-tests-add-vsock-dgram-tests.patch @@ -1,7 +1,7 @@ -From cfb09dcb50c5b668f0ec958ee03603367a6a4147 Mon Sep 17 00:00:00 2001 +From 194e1c83af3be2413357eb4dd1075bf1823084ee Mon Sep 17 00:00:00 2001 From: Jiang Wang Date: Sat, 10 Jun 2023 00:58:35 +0000 -Subject: [PATCH 09/11] tests: add vsock dgram tests +Subject: [PATCH 09/15] tests: add vsock dgram tests This patch adds tests for vsock datagram. @@ -10,8 +10,8 @@ Signed-off-by: Jiang Wang --- tools/testing/vsock/util.c | 141 +++++++++- tools/testing/vsock/util.h | 6 + - tools/testing/vsock/vsock_test.c | 432 +++++++++++++++++++++++++++++++ - 3 files changed, 578 insertions(+), 1 deletion(-) + tools/testing/vsock/vsock_test.c | 431 +++++++++++++++++++++++++++++++ + 3 files changed, 577 insertions(+), 1 deletion(-) diff --git a/tools/testing/vsock/util.c b/tools/testing/vsock/util.c index 01b636d3039a..811e70d7cf1e 100644 @@ -218,11 +218,11 @@ index fb99208a95ea..a69e128d120c 100644 const struct test_opts *opts); void list_tests(const struct test_case *test_cases); diff --git a/tools/testing/vsock/vsock_test.c b/tools/testing/vsock/vsock_test.c -index ac1bd3ac1533..ded82d39ee5d 100644 +index 5dc7767039f6..7c66e934341a 100644 --- a/tools/testing/vsock/vsock_test.c +++ b/tools/testing/vsock/vsock_test.c -@@ -1053,6 +1053,413 @@ static void test_stream_virtio_skb_merge_server(const struct test_opts *opts) - close(fd); +@@ -1177,6 +1177,413 @@ static void test_seqpacket_msg_peek_server(const struct test_opts *opts) + return test_msg_peek_server(opts, true); } +static void test_dgram_sendto_client(const struct test_opts *opts) @@ -635,11 +635,11 @@ index ac1bd3ac1533..ded82d39ee5d 100644 static struct test_case test_cases[] = { { .name = "SOCK_STREAM connection reset", -@@ -1128,6 +1535,31 @@ static struct test_case test_cases[] = { - .run_client = test_stream_virtio_skb_merge_client, - .run_server = test_stream_virtio_skb_merge_server, - }, -+ { +@@ -1256,6 +1663,30 @@ static struct test_case test_cases[] = { + .name = "SOCK_SEQPACKET MSG_PEEK", + .run_client = test_seqpacket_msg_peek_client, + .run_server = test_seqpacket_msg_peek_server, ++ }, + .name = "SOCK_DGRAM client sendto", + .run_client = test_dgram_sendto_client, + .run_server = test_dgram_sendto_server, @@ -663,10 +663,9 @@ index ac1bd3ac1533..ded82d39ee5d 100644 + .name = "SOCK_DGRAM msg bounds", + .run_client = test_dgram_msg_bounds_client, + .run_server = test_dgram_msg_bounds_server, -+ }, + }, {}, }; - -- -2.40.0 +2.43.0 diff --git a/patches/0010-Transparent-Socket-Impersonation-implementation.patch b/patches/0010-Transparent-Socket-Impersonation-implementation.patch index 5e7bc1e..d1913a1 100644 --- a/patches/0010-Transparent-Socket-Impersonation-implementation.patch +++ b/patches/0010-Transparent-Socket-Impersonation-implementation.patch @@ -1,7 +1,7 @@ -From e863c50073e55fa7f88471ab3ca505a3e9bbbc0c Mon Sep 17 00:00:00 2001 +From 7dd9b9b40956914e455f8bb9ac9fd449bbe2c173 Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Thu, 19 May 2022 22:38:26 +0200 -Subject: [PATCH 10/11] Transparent Socket Impersonation implementation +Subject: [PATCH 10/15] Transparent Socket Impersonation implementation Transparent Socket Impersonation (AF_TSI) is an address family that provides sockets presenting two simultaneous personalities, AF_INET @@ -28,19 +28,19 @@ Signed-off-by: Sergio Lopez net/socket.c | 1 + net/tsi/Kconfig | 7 + net/tsi/Makefile | 4 + - net/tsi/af_tsi.c | 1282 ++++++++++++++++++++++++++++++++++++++++ + net/tsi/af_tsi.c | 1280 ++++++++++++++++++++++++++++++++++++++++ net/tsi/af_tsi.h | 100 ++++ - 8 files changed, 1399 insertions(+), 1 deletion(-) + 8 files changed, 1397 insertions(+), 1 deletion(-) create mode 100644 net/tsi/Kconfig create mode 100644 net/tsi/Makefile create mode 100644 net/tsi/af_tsi.c create mode 100644 net/tsi/af_tsi.h diff --git a/include/linux/socket.h b/include/linux/socket.h -index 13c3a237b9c9..5fdca5e4e768 100644 +index cfcb7e2c3813..b5891faf7996 100644 --- a/include/linux/socket.h +++ b/include/linux/socket.h -@@ -238,8 +238,9 @@ struct ucred { +@@ -239,8 +239,9 @@ struct ucred { #define AF_MCTP 45 /* Management component * transport protocol */ @@ -51,7 +51,7 @@ index 13c3a237b9c9..5fdca5e4e768 100644 /* Protocol families, same as address families. */ #define PF_UNSPEC AF_UNSPEC -@@ -290,6 +291,7 @@ struct ucred { +@@ -291,6 +292,7 @@ struct ucred { #define PF_SMC AF_SMC #define PF_XDP AF_XDP #define PF_MCTP AF_MCTP @@ -60,10 +60,10 @@ index 13c3a237b9c9..5fdca5e4e768 100644 /* Maximum queue length specifiable by listen. */ diff --git a/net/Kconfig b/net/Kconfig -index 7d39c1773eb4..be92fdfc3bb9 100644 +index d532ec33f1fe..cce74ff2a107 100644 --- a/net/Kconfig +++ b/net/Kconfig -@@ -262,6 +262,7 @@ source "net/switchdev/Kconfig" +@@ -267,6 +267,7 @@ source "net/switchdev/Kconfig" source "net/l3mdev/Kconfig" source "net/qrtr/Kconfig" source "net/ncsi/Kconfig" @@ -81,10 +81,10 @@ index 4c4dc535453d..b07f65c0ef56 100644 obj-$(CONFIG_NET_HANDSHAKE) += handshake/ +obj-$(CONFIG_TSI) += tsi/ diff --git a/net/socket.c b/net/socket.c -index b7e01d0fe082..683a9cde976c 100644 +index 8d83c4bb163b..91ef12312a0a 100644 --- a/net/socket.c +++ b/net/socket.c -@@ -215,6 +215,7 @@ static const char * const pf_family_names[] = { +@@ -218,6 +218,7 @@ static const char * const pf_family_names[] = { [PF_SMC] = "PF_SMC", [PF_XDP] = "PF_XDP", [PF_MCTP] = "PF_MCTP", @@ -117,10 +117,10 @@ index 000000000000..8b3cf74116a5 +tsi-y := af_tsi.o diff --git a/net/tsi/af_tsi.c b/net/tsi/af_tsi.c new file mode 100644 -index 000000000000..38a383634ccd +index 000000000000..eda6c4ba7961 --- /dev/null +++ b/net/tsi/af_tsi.c -@@ -0,0 +1,1282 @@ +@@ -0,0 +1,1280 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Transparent Socket Impersonation Driver @@ -1255,7 +1255,6 @@ index 000000000000..38a383634ccd + .sendmsg = tsi_stream_sendmsg, + .recvmsg = tsi_stream_recvmsg, + .mmap = sock_no_mmap, -+ .sendpage = sock_no_sendpage, +}; + +static const struct proto_ops tsi_dgram_ops = { @@ -1276,7 +1275,6 @@ index 000000000000..38a383634ccd + .sendmsg = tsi_dgram_sendmsg, + .recvmsg = tsi_dgram_recvmsg, + .mmap = sock_no_mmap, -+ .sendpage = sock_no_sendpage, +}; + +static int tsi_create(struct net *net, struct socket *sock, @@ -1510,5 +1508,5 @@ index 000000000000..cf381734bebe + +#endif -- -2.40.0 +2.43.0 diff --git a/patches/0011-tsi-allow-hijacking-sockets-tsi_hijack.patch b/patches/0011-tsi-allow-hijacking-sockets-tsi_hijack.patch index e2b8087..e49ea15 100644 --- a/patches/0011-tsi-allow-hijacking-sockets-tsi_hijack.patch +++ b/patches/0011-tsi-allow-hijacking-sockets-tsi_hijack.patch @@ -1,7 +1,7 @@ -From 4a30a9b50081ae8863e02d206ba316bf4444ca4a Mon Sep 17 00:00:00 2001 +From cd93675f1948f2ba865e4feb05c1c161ed33105a Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Thu, 19 May 2022 22:42:01 +0200 -Subject: [PATCH 11/11] tsi: allow hijacking sockets (tsi_hijack) +Subject: [PATCH 11/15] tsi: allow hijacking sockets (tsi_hijack) Add a kernel command line option (tsi_hijack) enabling users to request the kernel to hijack AF_INET(SOCK_STREAM || SOCK_DGRAM) @@ -14,10 +14,10 @@ Signed-off-by: Sergio Lopez 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/net/socket.c b/net/socket.c -index 683a9cde976c..ef01c056a178 100644 +index 91ef12312a0a..7a1305a4159b 100644 --- a/net/socket.c +++ b/net/socket.c -@@ -113,6 +113,10 @@ unsigned int sysctl_net_busy_read __read_mostly; +@@ -115,6 +115,10 @@ unsigned int sysctl_net_busy_read __read_mostly; unsigned int sysctl_net_busy_poll __read_mostly; #endif @@ -28,7 +28,7 @@ index 683a9cde976c..ef01c056a178 100644 static ssize_t sock_read_iter(struct kiocb *iocb, struct iov_iter *to); static ssize_t sock_write_iter(struct kiocb *iocb, struct iov_iter *from); static int sock_mmap(struct file *file, struct vm_area_struct *vma); -@@ -1459,6 +1463,10 @@ int sock_wake_async(struct socket_wq *wq, int how, int band) +@@ -1483,6 +1487,10 @@ int sock_wake_async(struct socket_wq *wq, int how, int band) } EXPORT_SYMBOL(sock_wake_async); @@ -39,7 +39,7 @@ index 683a9cde976c..ef01c056a178 100644 /** * __sock_create - creates a socket * @net: net namespace -@@ -1529,6 +1537,15 @@ int __sock_create(struct net *net, int family, int type, int protocol, +@@ -1553,6 +1561,15 @@ int __sock_create(struct net *net, int family, int type, int protocol, request_module("net-pf-%d", family); #endif @@ -56,7 +56,7 @@ index 683a9cde976c..ef01c056a178 100644 pf = rcu_dereference(net_families[family]); err = -EAFNOSUPPORT; diff --git a/net/tsi/af_tsi.c b/net/tsi/af_tsi.c -index 38a383634ccd..91c9c5cb2285 100644 +index eda6c4ba7961..6cf01d7ce8f5 100644 --- a/net/tsi/af_tsi.c +++ b/net/tsi/af_tsi.c @@ -474,7 +474,7 @@ static int tsi_accept(struct socket *sock, struct socket *newsock, int flags, @@ -69,5 +69,5 @@ index 38a383634ccd..91c9c5cb2285 100644 int err; -- -2.40.0 +2.43.0 From fea271fa97a181c2576c013dc961c3c2e58309e3 Mon Sep 17 00:00:00 2001 From: Sergio Lopez Date: Wed, 20 Mar 2024 12:24:32 +0100 Subject: [PATCH 2/2] aarch64: enable blk, gpu, snd and net Enable various virtio devices that have been incorporated into libkrun. Also enable ext4 to be used through virtio-blk. Signed-off-by: Sergio Lopez --- config-libkrunfw_aarch64 | 590 ++++++++++++++++++++++++++++----------- 1 file changed, 431 insertions(+), 159 deletions(-) diff --git a/config-libkrunfw_aarch64 b/config-libkrunfw_aarch64 index 5b463e3..1d5fb2b 100644 --- a/config-libkrunfw_aarch64 +++ b/config-libkrunfw_aarch64 @@ -1,23 +1,24 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.0.2 Kernel Configuration +# Linux/arm64 6.6.22 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.2.1 20220819 (Red Hat 12.2.1-2)" +CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6)" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=120201 +CONFIG_GCC_VERSION=130201 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y -CONFIG_AS_VERSION=23800 +CONFIG_AS_VERSION=24000 CONFIG_LD_IS_BFD=y -CONFIG_LD_VERSION=23800 +CONFIG_LD_VERSION=24000 CONFIG_LLD_VERSION=0 CONFIG_CC_CAN_LINK=y CONFIG_CC_CAN_LINK_STATIC=y CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_GCC_ASM_GOTO_OUTPUT_WORKAROUND=y CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y -CONFIG_PAHOLE_VERSION=124 +CONFIG_PAHOLE_VERSION=125 CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_TABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y @@ -58,7 +59,6 @@ CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_GENERIC_IRQ_IPI=y CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_MSI_IRQ_DOMAIN=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # CONFIG_GENERIC_IRQ_DEBUGFS is not set @@ -130,7 +130,6 @@ CONFIG_CPU_ISOLATION=y # CONFIG_TREE_RCU=y # CONFIG_RCU_EXPERT is not set -CONFIG_SRCU=y CONFIG_TREE_SRCU=y CONFIG_TASKS_RCU_GENERIC=y CONFIG_TASKS_TRACE_RCU=y @@ -138,13 +137,13 @@ CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_RCU_NOCB_CPU=y # CONFIG_RCU_NOCB_CPU_DEFAULT_ALL is not set +# CONFIG_RCU_LAZY is not set # end of RCU Subsystem # CONFIG_IKCONFIG is not set CONFIG_IKHEADERS=y CONFIG_LOG_BUF_SHIFT=16 CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=12 # CONFIG_PRINTK_INDEX is not set CONFIG_GENERIC_SCHED_CLOCK=y @@ -154,16 +153,16 @@ CONFIG_GENERIC_SCHED_CLOCK=y # end of Scheduler features CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y CONFIG_CC_HAS_INT128=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_GCC12_NO_ARRAY_BOUNDS=y +CONFIG_GCC11_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y CONFIG_PAGE_COUNTER=y # CONFIG_CGROUP_FAVOR_DYNMODS is not set CONFIG_MEMCG=y -CONFIG_MEMCG_SWAP=y CONFIG_MEMCG_KMEM=y CONFIG_BLK_CGROUP=y CONFIG_CGROUP_WRITEBACK=y @@ -171,6 +170,7 @@ CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y CONFIG_CFS_BANDWIDTH=y # CONFIG_RT_GROUP_SCHED is not set +CONFIG_SCHED_MM_CID=y CONFIG_CGROUP_PIDS=y # CONFIG_CGROUP_RDMA is not set CONFIG_CGROUP_FREEZER=y @@ -192,7 +192,6 @@ CONFIG_PID_NS=y CONFIG_NET_NS=y # CONFIG_CHECKPOINT_RESTORE is not set CONFIG_SCHED_AUTOGROUP=y -# CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y # CONFIG_BLK_DEV_INITRD is not set # CONFIG_BOOT_CONFIG is not set @@ -200,6 +199,7 @@ CONFIG_INITRAMFS_PRESERVE_MTIME=y CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_LD_ORPHAN_WARN=y +CONFIG_LD_ORPHAN_WARN_LEVEL="warn" CONFIG_SYSCTL=y CONFIG_HAVE_UID16=y CONFIG_SYSCTL_EXCEPTION_TRACE=y @@ -225,10 +225,12 @@ CONFIG_IO_URING=y CONFIG_ADVISE_SYSCALLS=y CONFIG_MEMBARRIER=y CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_SELFTEST is not set CONFIG_KALLSYMS_BASE_RELATIVE=y CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_KCMP=y CONFIG_RSEQ=y -# CONFIG_EMBEDDED is not set +CONFIG_CACHESTAT_SYSCALL=y CONFIG_HAVE_PERF_EVENTS=y # @@ -238,10 +240,18 @@ CONFIG_PERF_EVENTS=y # end of Kernel Performance Events And Counters CONFIG_PROFILING=y + +# +# Kexec and crash features +# +CONFIG_CRASH_CORE=y +# CONFIG_KEXEC_FILE is not set +# CONFIG_CRASH_DUMP is not set +# end of Kexec and crash features # end of General setup CONFIG_ARM64=y -CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y CONFIG_64BIT=y CONFIG_MMU=y CONFIG_ARM64_PAGE_SHIFT=12 @@ -260,13 +270,13 @@ CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_GENERIC_CSUM=y CONFIG_GENERIC_CALIBRATE_DELAY=y -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y CONFIG_SMP=y CONFIG_KERNEL_MODE_NEON=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_PGTABLE_LEVELS=4 CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_BUILTIN_RETURN_ADDRESS_STRIPS_PAC=y # # Platform selection @@ -275,32 +285,28 @@ CONFIG_ARCH_PROC_KCORE_TEXT=y # CONFIG_ARCH_SUNXI is not set # CONFIG_ARCH_ALPINE is not set # CONFIG_ARCH_APPLE is not set -# CONFIG_ARCH_BCM2835 is not set -# CONFIG_ARCH_BCM4908 is not set -# CONFIG_ARCH_BCM_IPROC is not set -# CONFIG_ARCH_BCMBCA is not set +# CONFIG_ARCH_BCM is not set # CONFIG_ARCH_BERLIN is not set # CONFIG_ARCH_BITMAIN is not set -# CONFIG_ARCH_BRCMSTB is not set # CONFIG_ARCH_EXYNOS is not set # CONFIG_ARCH_SPARX5 is not set # CONFIG_ARCH_K3 is not set -# CONFIG_ARCH_LAYERSCAPE is not set # CONFIG_ARCH_LG1K is not set # CONFIG_ARCH_HISI is not set # CONFIG_ARCH_KEEMBAY is not set # CONFIG_ARCH_MEDIATEK is not set # CONFIG_ARCH_MESON is not set # CONFIG_ARCH_MVEBU is not set -# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_NXP is not set +# CONFIG_ARCH_MA35 is not set # CONFIG_ARCH_NPCM is not set # CONFIG_ARCH_QCOM is not set # CONFIG_ARCH_REALTEK is not set # CONFIG_ARCH_RENESAS is not set # CONFIG_ARCH_ROCKCHIP is not set -# CONFIG_ARCH_S32 is not set # CONFIG_ARCH_SEATTLE is not set # CONFIG_ARCH_INTEL_SOCFPGA is not set +# CONFIG_ARCH_STM32 is not set # CONFIG_ARCH_SYNQUACER is not set # CONFIG_ARCH_TEGRA is not set # CONFIG_ARCH_SPRD is not set @@ -320,6 +326,7 @@ CONFIG_ARCH_VEXPRESS=y # # ARM errata workarounds via the alternatives framework # +CONFIG_AMPERE_ERRATUM_AC03_CPU_38=y CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y CONFIG_ARM64_ERRATUM_826319=y CONFIG_ARM64_ERRATUM_827319=y @@ -337,17 +344,23 @@ CONFIG_ARM64_ERRATUM_1165522=y CONFIG_ARM64_ERRATUM_1319367=y CONFIG_ARM64_ERRATUM_1530923=y CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y +CONFIG_ARM64_ERRATUM_2441007=y CONFIG_ARM64_ERRATUM_1286807=y CONFIG_ARM64_ERRATUM_1463225=y CONFIG_ARM64_ERRATUM_1542419=y CONFIG_ARM64_ERRATUM_1508412=y CONFIG_ARM64_ERRATUM_2051678=y CONFIG_ARM64_ERRATUM_2077057=y +CONFIG_ARM64_ERRATUM_2658417=y CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=y CONFIG_ARM64_ERRATUM_2054223=y CONFIG_ARM64_ERRATUM_2067961=y CONFIG_ARM64_ERRATUM_2441009=y CONFIG_ARM64_ERRATUM_2457168=y +CONFIG_ARM64_ERRATUM_2645198=y +CONFIG_ARM64_WORKAROUND_SPECULATIVE_UNPRIV_LOAD=y +CONFIG_ARM64_ERRATUM_2966298=y +CONFIG_ARM64_ERRATUM_3117295=y CONFIG_CAVIUM_ERRATUM_22375=y CONFIG_CAVIUM_ERRATUM_23154=y CONFIG_CAVIUM_ERRATUM_27456=y @@ -360,6 +373,7 @@ CONFIG_QCOM_FALKOR_ERRATUM_1009=y CONFIG_QCOM_QDF2400_ERRATUM_0065=y CONFIG_QCOM_FALKOR_ERRATUM_E1041=y CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y +CONFIG_ROCKCHIP_ERRATUM_3588001=y CONFIG_SOCIONEXT_SYNQUACER_PREITS=y # end of ARM errata workarounds via the alternatives framework @@ -389,10 +403,13 @@ CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_CC_HAVE_SHADOW_CALL_STACK=y CONFIG_PARAVIRT=y CONFIG_PARAVIRT_TIME_ACCOUNTING=y -# CONFIG_KEXEC_FILE is not set -# CONFIG_CRASH_DUMP is not set +CONFIG_ARCH_SUPPORTS_KEXEC_FILE=y +CONFIG_ARCH_SUPPORTS_KEXEC_SIG=y +CONFIG_ARCH_SUPPORTS_KEXEC_IMAGE_VERIFY_SIG=y +CONFIG_ARCH_DEFAULT_KEXEC_IMAGE_VERIFY_SIG=y +CONFIG_ARCH_SUPPORTS_CRASH_DUMP=y # CONFIG_XEN is not set -CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_ARCH_FORCE_MAX_ORDER=10 CONFIG_UNMAP_KERNEL_AT_EL0=y CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y CONFIG_RODATA_FULL_DEFAULT_ENABLED=y @@ -400,6 +417,7 @@ CONFIG_ARM64_SW_TTBR0_PAN=y CONFIG_ARM64_TAGGED_ADDR_ABI=y CONFIG_COMPAT=y CONFIG_KUSER_HELPERS=y +# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set CONFIG_ARMV8_DEPRECATED=y CONFIG_SWP_EMULATION=y CONFIG_CP15_BARRIER_EMULATION=y @@ -410,7 +428,6 @@ CONFIG_SETEND_EMULATION=y # CONFIG_ARM64_HW_AFDBM=y CONFIG_ARM64_PAN=y -CONFIG_AS_HAS_LDAPR=y CONFIG_AS_HAS_LSE_ATOMICS=y CONFIG_ARM64_LSE_ATOMICS=y CONFIG_ARM64_USE_LSE_ATOMICS=y @@ -433,8 +450,9 @@ CONFIG_ARM64_PTR_AUTH=y CONFIG_ARM64_PTR_AUTH_KERNEL=y CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y -CONFIG_AS_HAS_PAC=y +CONFIG_AS_HAS_ARMV8_3=y CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y +CONFIG_AS_HAS_LDAPR=y # end of ARMv8.3 architectural features # @@ -468,7 +486,6 @@ CONFIG_ARM64_SME=y CONFIG_RELOCATABLE=y # CONFIG_RANDOMIZE_BASE is not set CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y -CONFIG_ARCH_NR_GPIO=0 # end of Kernel Features # @@ -510,35 +527,13 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set -CONFIG_ARM64_CRYPTO=y -CONFIG_CRYPTO_SHA256_ARM64=y -CONFIG_CRYPTO_SHA512_ARM64=y -CONFIG_CRYPTO_SHA1_ARM64_CE=y -CONFIG_CRYPTO_SHA2_ARM64_CE=y -CONFIG_CRYPTO_SHA512_ARM64_CE=y -CONFIG_CRYPTO_SHA3_ARM64=y -CONFIG_CRYPTO_SM3_ARM64_CE=y -CONFIG_CRYPTO_SM4_ARM64_CE=y -# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set -# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set -CONFIG_CRYPTO_GHASH_ARM64_CE=y -# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set -CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64=y -CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64_CE_CCM=y -CONFIG_CRYPTO_AES_ARM64_CE_BLK=y -CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y -CONFIG_CRYPTO_CHACHA20_NEON=y -CONFIG_CRYPTO_POLY1305_NEON=y -CONFIG_CRYPTO_NHPOLY1305_NEON=y -CONFIG_CRYPTO_AES_ARM64_BS=y # # General architecture-dependent options # -CONFIG_CRASH_CORE=y CONFIG_ARCH_HAS_SUBPAGE_FAULTS=y +CONFIG_HOTPLUG_CORE_SYNC=y +CONFIG_HOTPLUG_CORE_SYNC_DEAD=y CONFIG_JUMP_LABEL=y # CONFIG_STATIC_KEYS_SELFTEST is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y @@ -571,7 +566,9 @@ CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y CONFIG_MMU_GATHER_TABLE_FREE=y CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_MMU_LAZY_TLB_REFCOUNT=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HAS_NMI_SAFE_THIS_CPU_OPS=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y @@ -597,8 +594,12 @@ CONFIG_HAVE_MOVE_PUD=y CONFIG_HAVE_MOVE_PMD=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_ARCH_MMAP_RND_BITS=18 @@ -640,6 +641,8 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set +CONFIG_FUNCTION_ALIGNMENT_4B=y +CONFIG_FUNCTION_ALIGNMENT=4 # end of General architecture-dependent options CONFIG_RT_MUTEXES=y @@ -693,7 +696,6 @@ CONFIG_EFI_PARTITION=y # CONFIG_CMDLINE_PARTITION is not set # end of Partition Types -CONFIG_BLOCK_COMPAT=y CONFIG_BLK_MQ_VIRTIO=y CONFIG_BLK_PM=y @@ -795,6 +797,7 @@ CONFIG_ZPOOL=y CONFIG_SWAP=y CONFIG_ZSWAP=y # CONFIG_ZSWAP_DEFAULT_ON is not set +# CONFIG_ZSWAP_EXCLUSIVE_LOADS_DEFAULT_ON is not set # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y # CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set @@ -810,17 +813,19 @@ CONFIG_ZBUD=y CONFIG_Z3FOLD=y CONFIG_ZSMALLOC=y # CONFIG_ZSMALLOC_STAT is not set +CONFIG_ZSMALLOC_CHAIN_SIZE=8 # # SLAB allocator options # -# CONFIG_SLAB is not set +# CONFIG_SLAB_DEPRECATED is not set CONFIG_SLUB=y CONFIG_SLAB_MERGE_DEFAULT=y CONFIG_SLAB_FREELIST_RANDOM=y CONFIG_SLAB_FREELIST_HARDENED=y # CONFIG_SLUB_STATS is not set CONFIG_SLUB_CPU_PARTIAL=y +# CONFIG_RANDOM_KMALLOC_CACHES is not set # end of SLAB allocator options CONFIG_SHUFFLE_PAGE_ALLOCATOR=y @@ -839,11 +844,13 @@ CONFIG_MEMORY_HOTPLUG=y CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y CONFIG_MEMORY_HOTREMOVE=y CONFIG_MHP_MEMMAP_ON_MEMORY=y +CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y CONFIG_MEMORY_BALLOON=y CONFIG_BALLOON_COMPACTION=y CONFIG_COMPACTION=y +CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 CONFIG_PAGE_REPORTING=y CONFIG_MIGRATION=y CONFIG_DEVICE_MIGRATION=y @@ -856,7 +863,6 @@ CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y CONFIG_ARCH_WANTS_THP_SWAP=y # CONFIG_TRANSPARENT_HUGEPAGE is not set -CONFIG_FRONTSWAP=y CONFIG_CMA=y CONFIG_CMA_DEBUGFS=y # CONFIG_CMA_SYSFS is not set @@ -873,14 +879,21 @@ CONFIG_ZONE_DEVICE=y CONFIG_GET_FREE_REGION=y CONFIG_DEVICE_PRIVATE=y CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_USES_PG_ARCH_X=y CONFIG_VM_EVENT_COUNTERS=y # CONFIG_PERCPU_STATS is not set # CONFIG_GUP_TEST is not set +# CONFIG_DMAPOOL_TEST is not set CONFIG_ARCH_HAS_PTE_SPECIAL=y +CONFIG_MEMFD_CREATE=y CONFIG_SECRETMEM=y # CONFIG_ANON_VMA_NAME is not set CONFIG_USERFAULTFD=y CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y +# CONFIG_LRU_GEN is not set +CONFIG_ARCH_SUPPORTS_PER_VMA_LOCK=y +CONFIG_PER_VMA_LOCK=y +CONFIG_LOCK_MM_AND_FIND_VMA=y # # Data Access Monitoring @@ -890,11 +903,15 @@ CONFIG_HAVE_ARCH_USERFAULTFD_MINOR=y # end of Memory Management options CONFIG_NET=y +CONFIG_NET_INGRESS=y +CONFIG_NET_EGRESS=y +CONFIG_NET_XGRESS=y # # Networking options # -# CONFIG_PACKET is not set +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set CONFIG_UNIX=y CONFIG_UNIX_SCM=y CONFIG_AF_UNIX_OOB=y @@ -917,6 +934,7 @@ CONFIG_NET_FOU=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set +CONFIG_INET_TABLE_PERTURB_ORDER=16 CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_INET_UDP_DIAG=y @@ -942,7 +960,6 @@ CONFIG_NETWORK_PHY_TIMESTAMPING=y # CONFIG_BRIDGE is not set # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set -# CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set @@ -969,6 +986,7 @@ CONFIG_VIRTIO_VSOCKETS_COMMON=y # CONFIG_NET_NCSI is not set CONFIG_TSI=y CONFIG_PCPU_DEV_REFCNT=y +CONFIG_MAX_SKB_FRAGS=17 CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_SOCK_RX_QUEUE_MAPPING=y @@ -1033,6 +1051,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y # Firmware loader # CONFIG_FW_LOADER=y +CONFIG_FW_LOADER_DEBUG=y CONFIG_FW_LOADER_PAGED_BUF=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_FW_LOADER_USER_HELPER is not set @@ -1049,7 +1068,10 @@ CONFIG_REGMAP=y CONFIG_REGMAP_I2C=y CONFIG_REGMAP_MMIO=y CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set CONFIG_GENERIC_ARCH_TOPOLOGY=y +# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set # end of Generic Driver Options # @@ -1062,6 +1084,11 @@ CONFIG_MHI_BUS=y # CONFIG_MHI_BUS_EP is not set # end of Bus devices +# +# Cache Drivers +# +# end of Cache Drivers + CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y @@ -1333,14 +1360,33 @@ CONFIG_SCSI_SRP_ATTRS=y # CONFIG_SCSI_DH is not set # end of SCSI device support -CONFIG_HAVE_PATA_PLATFORM=y # CONFIG_ATA is not set # CONFIG_MD is not set # CONFIG_TARGET_CORE is not set CONFIG_NETDEVICES=y -# CONFIG_NET_CORE is not set +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_WIREGUARD is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_GENEVE is not set +# CONFIG_BAREUDP is not set +# CONFIG_GTP is not set +# CONFIG_MACSEC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_TUN is not set +# CONFIG_TUN_VNET_CROSS_LE is not set +# CONFIG_VETH is not set +CONFIG_VIRTIO_NET=y +# CONFIG_NLMON is not set +# CONFIG_MHI_NET is not set # CONFIG_ETHERNET is not set # CONFIG_PHYLIB is not set +# CONFIG_PSE_CONTROLLER is not set # CONFIG_MDIO_DEVICE is not set # @@ -1364,7 +1410,7 @@ CONFIG_NETDEVICES=y # end of Wireless WAN # CONFIG_NETDEVSIM is not set -# CONFIG_NET_FAILOVER is not set +CONFIG_NET_FAILOVER=y # CONFIG_ISDN is not set # @@ -1434,6 +1480,7 @@ CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_LEGACY_PTYS is not set +CONFIG_LEGACY_TIOCSTI=y CONFIG_LDISC_AUTOLOAD=y # @@ -1459,7 +1506,7 @@ CONFIG_SERIAL_8250_FSL=y # CONFIG_SERIAL_AMBA_PL010 is not set CONFIG_SERIAL_AMBA_PL011=y CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y +# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set # CONFIG_SERIAL_UARTLITE is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y @@ -1485,6 +1532,7 @@ CONFIG_HVC_DRIVER=y # CONFIG_SERIAL_DEV_BUS is not set CONFIG_VIRTIO_CONSOLE=y # CONFIG_IPMI_HANDLER is not set +# CONFIG_SSIF_IPMI_BMC is not set # CONFIG_IPMB_DEVICE_INTERFACE is not set CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_TIMERIOMEM=y @@ -1494,6 +1542,7 @@ CONFIG_HW_RANDOM_VIRTIO=y # CONFIG_HW_RANDOM_XIPHERA is not set CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y CONFIG_DEVMEM=y +CONFIG_DEVPORT=y CONFIG_TCG_TPM=y CONFIG_HW_RANDOM_TPM=y CONFIG_TCG_TIS_CORE=y @@ -1506,8 +1555,6 @@ CONFIG_TCG_TIS_I2C_INFINEON=y CONFIG_TCG_VTPM_PROXY=y # CONFIG_TCG_TIS_ST33ZP24_I2C is not set # CONFIG_XILLYBUS is not set -CONFIG_RANDOM_TRUST_CPU=y -CONFIG_RANDOM_TRUST_BOOTLOADER=y # end of Character devices # @@ -1551,6 +1598,7 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=y # CONFIG_I2C_EMEV2 is not set CONFIG_I2C_GPIO=y # CONFIG_I2C_GPIO_FAULT_INJECTOR is not set +# CONFIG_I2C_HISI is not set # CONFIG_I2C_NOMADIK is not set # CONFIG_I2C_OCORES is not set CONFIG_I2C_PCA_PLATFORM=y @@ -1608,6 +1656,7 @@ CONFIG_PTP_1588_CLOCK_OPTIONAL=y CONFIG_PTP_1588_CLOCK_KVM=y CONFIG_PTP_1588_CLOCK_IDT82P33=y CONFIG_PTP_1588_CLOCK_IDTCM=y +# CONFIG_PTP_1588_CLOCK_MOCK is not set # end of PTP clock support # CONFIG_PINCTRL is not set @@ -1629,6 +1678,7 @@ CONFIG_GPIO_DWAPB=y # CONFIG_GPIO_FTGPIO010 is not set CONFIG_GPIO_GENERIC_PLATFORM=y # CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HISI is not set # CONFIG_GPIO_HLWD is not set # CONFIG_GPIO_LOGICVC is not set CONFIG_GPIO_MB86S7X=y @@ -1643,8 +1693,9 @@ CONFIG_GPIO_XGENE=y # # I2C GPIO expanders # -# CONFIG_GPIO_ADP5588 is not set # CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_FXL6408 is not set +# CONFIG_GPIO_DS4520 is not set # CONFIG_GPIO_GW_PLD is not set # CONFIG_GPIO_MAX7300 is not set CONFIG_GPIO_MAX732X=y @@ -1670,6 +1721,7 @@ CONFIG_GPIO_TPS65086=y # Virtual GPIO drivers # CONFIG_GPIO_AGGREGATOR=y +# CONFIG_GPIO_LATCH is not set # CONFIG_GPIO_MOCKUP is not set # CONFIG_GPIO_VIRTIO is not set # CONFIG_GPIO_SIM is not set @@ -1693,7 +1745,6 @@ CONFIG_SYSCON_REBOOT_MODE=y # CONFIG_NVMEM_REBOOT_MODE is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_PDA_POWER is not set # CONFIG_IP5XXX_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_CHARGER_ADP5061 is not set @@ -1745,6 +1796,7 @@ CONFIG_BCMA_POSSIBLE=y CONFIG_MFD_CORE=y # CONFIG_MFD_ACT8945A is not set # CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_SMPRO is not set CONFIG_MFD_AS3722=y # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_AAT2870_CORE is not set @@ -1754,7 +1806,9 @@ CONFIG_MFD_AS3722=y CONFIG_MFD_BD9571MWV=y CONFIG_MFD_AXP20X=y CONFIG_MFD_AXP20X_I2C=y +# CONFIG_MFD_CS42L43_I2C is not set # CONFIG_MFD_MADERA is not set +# CONFIG_MFD_MAX5970 is not set # CONFIG_PMIC_DA903X is not set # CONFIG_MFD_DA9052_I2C is not set # CONFIG_MFD_DA9055 is not set @@ -1765,14 +1819,13 @@ CONFIG_MFD_AXP20X_I2C=y # CONFIG_MFD_MC13XXX_I2C is not set # CONFIG_MFD_MP2629 is not set CONFIG_MFD_HI6421_PMIC=y -# CONFIG_HTC_PASIC3 is not set -# CONFIG_HTC_I2CPLD is not set # CONFIG_MFD_IQS62X is not set # CONFIG_MFD_KEMPLD is not set # CONFIG_MFD_88PM800 is not set # CONFIG_MFD_88PM805 is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77541 is not set CONFIG_MFD_MAX77620=y CONFIG_MFD_MAX77650=y CONFIG_MFD_MAX77686=y @@ -1784,19 +1837,21 @@ CONFIG_MFD_MAX77686=y # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set # CONFIG_MFD_MT6360 is not set +# CONFIG_MFD_MT6370 is not set # CONFIG_MFD_MT6397 is not set # CONFIG_MFD_MENF21BMC is not set # CONFIG_MFD_NTXEC is not set # CONFIG_MFD_RETU is not set # CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_SY7636A is not set # CONFIG_MFD_RT4831 is not set # CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RT5120 is not set # CONFIG_MFD_RC5T583 is not set -CONFIG_MFD_RK808=y +# CONFIG_MFD_RK8XX_I2C is not set # CONFIG_MFD_RN5T618 is not set # CONFIG_MFD_SEC_CORE is not set # CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SIMPLE_MFD_I2C is not set CONFIG_MFD_SM501=y CONFIG_MFD_SM501_GPIO=y # CONFIG_MFD_SKY81452 is not set @@ -1809,7 +1864,6 @@ CONFIG_STMPE_I2C=y # end of STMicroelectronics STMPE Interface Drivers CONFIG_MFD_SYSCON=y -# CONFIG_MFD_TI_AM335X_TSCADC is not set # CONFIG_MFD_LP3943 is not set # CONFIG_MFD_LP8788 is not set # CONFIG_MFD_TI_LMU is not set @@ -1823,9 +1877,11 @@ CONFIG_MFD_TPS65086=y # CONFIG_MFD_TI_LP873X is not set # CONFIG_MFD_TI_LP87565 is not set # CONFIG_MFD_TPS65218 is not set +# CONFIG_MFD_TPS65219 is not set # CONFIG_MFD_TPS6586X is not set # CONFIG_MFD_TPS65910 is not set # CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS6594_I2C is not set # CONFIG_TWL4030_CORE is not set # CONFIG_TWL6040_CORE is not set CONFIG_MFD_WL1273_CORE=y @@ -1863,13 +1919,113 @@ CONFIG_MFD_VEXPRESS_SYSREG=y # # Graphics support # -# CONFIG_DRM is not set +CONFIG_VIDEO_CMDLINE=y +CONFIG_VIDEO_NOMODESET=y +# CONFIG_AUXDISPLAY is not set +CONFIG_DRM=y +# CONFIG_DRM_DEBUG_MM is not set +CONFIG_DRM_KMS_HELPER=y +# CONFIG_DRM_FBDEV_EMULATION is not set +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +CONFIG_DRM_GEM_SHMEM_HELPER=y + +# +# I2C encoder or helper chips +# +# CONFIG_DRM_I2C_CH7006 is not set +# CONFIG_DRM_I2C_SIL164 is not set +# CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set +# end of I2C encoder or helper chips # # ARM devices # +# CONFIG_DRM_HDLCD is not set +# CONFIG_DRM_MALI_DISPLAY is not set +# CONFIG_DRM_KOMEDA is not set # end of ARM devices +# CONFIG_DRM_VGEM is not set +# CONFIG_DRM_VKMS is not set +CONFIG_DRM_VIRTIO_GPU=y +CONFIG_DRM_VIRTIO_GPU_KMS=y +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set +# CONFIG_DRM_PANEL_LVDS is not set +# CONFIG_DRM_PANEL_SIMPLE is not set +# CONFIG_DRM_PANEL_EDP is not set +# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set +# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set +# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set +# end of Display Panels + +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_CHIPONE_ICN6211 is not set +# CONFIG_DRM_CHRONTEL_CH7033 is not set +# CONFIG_DRM_DISPLAY_CONNECTOR is not set +# CONFIG_DRM_ITE_IT6505 is not set +# CONFIG_DRM_LONTIUM_LT8912B is not set +# CONFIG_DRM_LONTIUM_LT9211 is not set +# CONFIG_DRM_LONTIUM_LT9611 is not set +# CONFIG_DRM_LONTIUM_LT9611UXC is not set +# CONFIG_DRM_ITE_IT66121 is not set +# CONFIG_DRM_LVDS_CODEC is not set +# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set +# CONFIG_DRM_NWL_MIPI_DSI is not set +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set +# CONFIG_DRM_PARADE_PS8640 is not set +# CONFIG_DRM_SAMSUNG_DSIM is not set +# CONFIG_DRM_SIL_SII8620 is not set +# CONFIG_DRM_SII902X is not set +# CONFIG_DRM_SII9234 is not set +# CONFIG_DRM_SIMPLE_BRIDGE is not set +# CONFIG_DRM_THINE_THC63LVD1024 is not set +# CONFIG_DRM_TOSHIBA_TC358762 is not set +# CONFIG_DRM_TOSHIBA_TC358764 is not set +# CONFIG_DRM_TOSHIBA_TC358767 is not set +# CONFIG_DRM_TOSHIBA_TC358768 is not set +# CONFIG_DRM_TOSHIBA_TC358775 is not set +# CONFIG_DRM_TI_DLPC3433 is not set +# CONFIG_DRM_TI_TFP410 is not set +# CONFIG_DRM_TI_SN65DSI83 is not set +# CONFIG_DRM_TI_SN65DSI86 is not set +# CONFIG_DRM_TI_TPD12S015 is not set +# CONFIG_DRM_ANALOGIX_ANX6345 is not set +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# CONFIG_DRM_ANALOGIX_ANX7625 is not set +# CONFIG_DRM_I2C_ADV7511 is not set +# CONFIG_DRM_CDNS_DSI is not set +# CONFIG_DRM_CDNS_MHDP8546 is not set +# end of Display Interface Bridges + +# CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_HISI_KIRIN is not set +# CONFIG_DRM_LOGICVC is not set +# CONFIG_DRM_ARCPGU is not set +# CONFIG_DRM_SIMPLEDRM is not set +# CONFIG_DRM_PL111 is not set +# CONFIG_DRM_LIMA is not set +# CONFIG_DRM_PANFROST is not set +# CONFIG_DRM_TIDSS is not set +# CONFIG_DRM_SSD130X is not set +# CONFIG_DRM_LEGACY is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y + # # Frame buffer Devices # @@ -1882,6 +2038,7 @@ CONFIG_MFD_VEXPRESS_SYSREG=y # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_KTD253 is not set +# CONFIG_BACKLIGHT_KTZ8866 is not set # CONFIG_BACKLIGHT_QCOM_WLED is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set @@ -1892,6 +2049,8 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y # CONFIG_BACKLIGHT_ARCXCNN is not set # end of Backlight & LCD device support +CONFIG_HDMI=y + # # Console display driver support # @@ -1901,22 +2060,43 @@ CONFIG_DUMMY_CONSOLE_ROWS=25 # end of Console display driver support # end of Graphics support -# CONFIG_SOUND is not set - -# -# HID support -# +# CONFIG_DRM_ACCEL is not set +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_OSSEMUL is not set +CONFIG_SND_PCM_TIMER=y +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_CTL_FAST_LOOKUP=y +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_CTL_INPUT_VALIDATION is not set +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_PCMTEST is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# HD-Audio +# +# end of HD-Audio + +CONFIG_SND_HDA_PREALLOC_SIZE=64 +# CONFIG_SND_SOC is not set +CONFIG_SND_VIRTIO=y +CONFIG_HID_SUPPORT=y # CONFIG_HID is not set - -# -# I2C HID support -# -# CONFIG_I2C_HID_OF is not set -# CONFIG_I2C_HID_OF_ELAN is not set -# CONFIG_I2C_HID_OF_GOODIX is not set -# end of I2C HID support -# end of HID support - CONFIG_USB_OHCI_LITTLE_ENDIAN=y # CONFIG_USB_SUPPORT is not set # CONFIG_MMC is not set @@ -1959,7 +2139,6 @@ CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_DRV_MAX6900 is not set # CONFIG_RTC_DRV_MAX77686 is not set # CONFIG_RTC_DRV_NCT3018Y is not set -# CONFIG_RTC_DRV_RK808 is not set # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_ISL12022 is not set @@ -2010,9 +2189,7 @@ CONFIG_RTC_I2C_AND_SPI=y # CONFIG_RTC_DRV_M48T35 is not set # CONFIG_RTC_DRV_M48T59 is not set # CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_BQ4802 is not set # CONFIG_RTC_DRV_RP5C01 is not set -# CONFIG_RTC_DRV_V3020 is not set # CONFIG_RTC_DRV_ZYNQMP is not set # @@ -2033,11 +2210,16 @@ CONFIG_RTC_DRV_PL031=y # # DMABUF options # -# CONFIG_SYNC_FILE is not set +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_UDMABUF is not set +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_DEBUG is not set +# CONFIG_DMABUF_SELFTESTS is not set # CONFIG_DMABUF_HEAPS is not set +# CONFIG_DMABUF_SYSFS_STATS is not set # end of DMABUF options -# CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set # CONFIG_VFIO is not set # CONFIG_VIRT_DRIVERS is not set @@ -2050,6 +2232,7 @@ CONFIG_VIRTIO_BALLOON=y # CONFIG_VIRTIO_INPUT is not set CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_VIRTIO_DMA_SHARED_BUFFER=y # CONFIG_VDPA is not set # CONFIG_VHOST_MENU is not set @@ -2079,7 +2262,6 @@ CONFIG_CLK_VEXPRESS_OSC=y CONFIG_COMMON_CLK_MAX77686=y # CONFIG_COMMON_CLK_MAX9485 is not set -CONFIG_COMMON_CLK_RK808=y # CONFIG_COMMON_CLK_SI5341 is not set # CONFIG_COMMON_CLK_SI5351 is not set # CONFIG_COMMON_CLK_SI514 is not set @@ -2091,10 +2273,14 @@ CONFIG_COMMON_CLK_SI544=y # CONFIG_COMMON_CLK_AXI_CLKGEN is not set CONFIG_COMMON_CLK_XGENE=y # CONFIG_COMMON_CLK_RS9_PCIE is not set +# CONFIG_COMMON_CLK_SI521XX is not set +# CONFIG_COMMON_CLK_VC3 is not set # CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_VC7 is not set CONFIG_COMMON_CLK_BD718XX=y # CONFIG_COMMON_CLK_FIXED_MMIO is not set # CONFIG_XILINX_VCU is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set # CONFIG_HWSPINLOCK is not set # @@ -2108,7 +2294,6 @@ CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y CONFIG_FSL_ERRATUM_A008585=y CONFIG_HISILICON_ERRATUM_161010101=y CONFIG_ARM64_ERRATUM_858921=y -# CONFIG_MICROCHIP_PIT64B is not set # end of Clock Source drivers # CONFIG_MAILBOX is not set @@ -2165,6 +2350,8 @@ CONFIG_ARM64_ERRATUM_858921=y # CONFIG_LITEX_SOC_CONTROLLER is not set # end of Enable LiteX SoC Builder specific drivers +# CONFIG_WPCM450_SOC is not set + # # Qualcomm SoC drivers # @@ -2204,7 +2391,6 @@ CONFIG_PARTITION_PERCPU=y # PHY Subsystem # # CONFIG_GENERIC_PHY is not set -# CONFIG_PHY_XGENE is not set # CONFIG_PHY_CAN_TRANSCEIVER is not set # @@ -2233,8 +2419,10 @@ CONFIG_PARTITION_PERCPU=y # CONFIG_ARM_CCN is not set # CONFIG_ARM_CMN is not set # CONFIG_ARM_PMU is not set +# CONFIG_ARM_SMMU_V3_PMU is not set # CONFIG_ARM_DSU_PMU is not set # CONFIG_ARM_SPE_PMU is not set +# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set # end of Performance monitor support CONFIG_RAS=y @@ -2255,10 +2443,20 @@ CONFIG_NVDIMM_PFN=y CONFIG_NVDIMM_DAX=y CONFIG_OF_PMEM=y CONFIG_NVDIMM_KEYS=y +# CONFIG_NVDIMM_SECURITY_TEST is not set CONFIG_DAX=y CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y + +# +# Layout Types +# +# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set +# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set +# end of Layout Types + # CONFIG_NVMEM_RMEM is not set +# CONFIG_NVMEM_U_BOOT_ENV is not set # # HW tracing support @@ -2287,6 +2485,7 @@ CONFIG_MUX_MMIO=y # CONFIG_MOST is not set # CONFIG_PECI is not set # CONFIG_HTE is not set +# CONFIG_CDX_BUS is not set # end of Device Drivers # @@ -2295,9 +2494,17 @@ CONFIG_MUX_MMIO=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_VALIDATE_FS_PARSER=y CONFIG_FS_IOMAP=y +CONFIG_BUFFER_HEAD=y # CONFIG_EXT2_FS is not set # CONFIG_EXT3_FS is not set -# CONFIG_EXT4_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT2=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set # CONFIG_XFS_FS is not set @@ -2319,7 +2526,6 @@ CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y # CONFIG_QUOTA is not set -# CONFIG_AUTOFS4_FS is not set # CONFIG_AUTOFS_FS is not set CONFIG_FUSE_FS=y # CONFIG_CUSE is not set @@ -2331,6 +2537,7 @@ CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y # CONFIG_OVERLAY_FS_INDEX is not set # CONFIG_OVERLAY_FS_XINO_AUTO is not set # CONFIG_OVERLAY_FS_METACOPY is not set +# CONFIG_OVERLAY_FS_DEBUG is not set # # Caches @@ -2377,13 +2584,10 @@ CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y # CONFIG_TMPFS_INODE64 is not set +# CONFIG_TMPFS_QUOTA is not set CONFIG_ARCH_SUPPORTS_HUGETLBFS=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y -CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y -CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y -# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set -CONFIG_MEMFD_CREATE=y CONFIG_ARCH_HAS_GIGANTIC_PAGE=y CONFIG_CONFIGFS_FS=y # end of Pseudo filesystems @@ -2412,7 +2616,6 @@ CONFIG_KEY_DH_OPERATIONS=y # CONFIG_SECURITY_DMESG_RESTRICT is not set # CONFIG_SECURITY is not set # CONFIG_SECURITYFS is not set -CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y # CONFIG_HARDENED_USERCOPY is not set # CONFIG_FORTIFY_SOURCE is not set # CONFIG_STATIC_USERMODEHELPER is not set @@ -2439,6 +2642,13 @@ CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y # CONFIG_ZERO_CALL_USED_REGS is not set # end of Memory initialization +# +# Hardening of kernel data structures +# +CONFIG_LIST_HARDENED=y +CONFIG_BUG_ON_DATA_CORRUPTION=y +# end of Hardening of kernel data structures + CONFIG_RANDSTRUCT_NONE=y # CONFIG_RANDSTRUCT_FULL is not set # CONFIG_RANDSTRUCT_PERFORMANCE is not set @@ -2457,6 +2667,7 @@ CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_SIG2=y CONFIG_CRYPTO_SKCIPHER=y CONFIG_CRYPTO_SKCIPHER2=y CONFIG_CRYPTO_HASH=y @@ -2473,13 +2684,13 @@ CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_USER=y # CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set -CONFIG_CRYPTO_GF128MUL=y CONFIG_CRYPTO_NULL=y CONFIG_CRYPTO_NULL2=y CONFIG_CRYPTO_PCRYPT=y CONFIG_CRYPTO_CRYPTD=y CONFIG_CRYPTO_AUTHENC=y CONFIG_CRYPTO_ENGINE=y +# end of Crypto core or helper # # Public-key cryptography @@ -2493,93 +2704,100 @@ CONFIG_CRYPTO_ECDH=y CONFIG_CRYPTO_ECRDSA=y # CONFIG_CRYPTO_SM2 is not set CONFIG_CRYPTO_CURVE25519=y +# end of Public-key cryptography # -# Authenticated Encryption with Associated Data +# Block ciphers # -CONFIG_CRYPTO_CCM=y -CONFIG_CRYPTO_GCM=y -CONFIG_CRYPTO_CHACHA20POLY1305=y -CONFIG_CRYPTO_AEGIS128=y -CONFIG_CRYPTO_AEGIS128_SIMD=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_TI=y +CONFIG_CRYPTO_ANUBIS=y +# CONFIG_CRYPTO_ARIA is not set +CONFIG_CRYPTO_BLOWFISH=y +CONFIG_CRYPTO_BLOWFISH_COMMON=y +CONFIG_CRYPTO_CAMELLIA=y +CONFIG_CRYPTO_CAST_COMMON=y +CONFIG_CRYPTO_CAST5=y +CONFIG_CRYPTO_CAST6=y +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_FCRYPT=y +CONFIG_CRYPTO_KHAZAD=y +CONFIG_CRYPTO_SEED=y +CONFIG_CRYPTO_SERPENT=y +CONFIG_CRYPTO_SM4=y +CONFIG_CRYPTO_SM4_GENERIC=y +CONFIG_CRYPTO_TEA=y +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y +# end of Block ciphers # -# Block modes +# Length-preserving ciphers and modes # +CONFIG_CRYPTO_ADIANTUM=y +CONFIG_CRYPTO_ARC4=y +CONFIG_CRYPTO_CHACHA20=y CONFIG_CRYPTO_CBC=y CONFIG_CRYPTO_CFB=y CONFIG_CRYPTO_CTR=y CONFIG_CRYPTO_CTS=y CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_HCTR2 is not set +CONFIG_CRYPTO_KEYWRAP=y CONFIG_CRYPTO_LRW=y CONFIG_CRYPTO_OFB=y CONFIG_CRYPTO_PCBC=y CONFIG_CRYPTO_XTS=y -CONFIG_CRYPTO_KEYWRAP=y CONFIG_CRYPTO_NHPOLY1305=y -CONFIG_CRYPTO_ADIANTUM=y -# CONFIG_CRYPTO_HCTR2 is not set -CONFIG_CRYPTO_ESSIV=y +# end of Length-preserving ciphers and modes # -# Hash modes +# AEAD (authenticated encryption with associated data) ciphers # -CONFIG_CRYPTO_CMAC=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_XCBC=y -CONFIG_CRYPTO_VMAC=y +CONFIG_CRYPTO_AEGIS128=y +CONFIG_CRYPTO_AEGIS128_SIMD=y +CONFIG_CRYPTO_CHACHA20POLY1305=y +CONFIG_CRYPTO_CCM=y +CONFIG_CRYPTO_GCM=y +CONFIG_CRYPTO_GENIV=y +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_ECHAINIV=y +CONFIG_CRYPTO_ESSIV=y +# end of AEAD (authenticated encryption with associated data) ciphers # -# Digest +# Hashes, digests, and MACs # -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_XXHASH=y CONFIG_CRYPTO_BLAKE2B=y -CONFIG_CRYPTO_CRCT10DIF=y -# CONFIG_CRYPTO_CRC64_ROCKSOFT is not set +CONFIG_CRYPTO_CMAC=y CONFIG_CRYPTO_GHASH=y -CONFIG_CRYPTO_POLY1305=y +CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_MD4=y CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=y +CONFIG_CRYPTO_POLY1305=y CONFIG_CRYPTO_RMD160=y CONFIG_CRYPTO_SHA1=y CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_CRYPTO_SHA3=y CONFIG_CRYPTO_SM3=y -# CONFIG_CRYPTO_SM3_GENERIC is not set +CONFIG_CRYPTO_SM3_GENERIC=y CONFIG_CRYPTO_STREEBOG=y +CONFIG_CRYPTO_VMAC=y CONFIG_CRYPTO_WP512=y +CONFIG_CRYPTO_XCBC=y +CONFIG_CRYPTO_XXHASH=y +# end of Hashes, digests, and MACs # -# Ciphers +# CRCs (cyclic redundancy checks) # -CONFIG_CRYPTO_AES=y -CONFIG_CRYPTO_AES_TI=y -CONFIG_CRYPTO_ANUBIS=y -CONFIG_CRYPTO_ARC4=y -CONFIG_CRYPTO_BLOWFISH=y -CONFIG_CRYPTO_BLOWFISH_COMMON=y -CONFIG_CRYPTO_CAMELLIA=y -CONFIG_CRYPTO_CAST_COMMON=y -CONFIG_CRYPTO_CAST5=y -CONFIG_CRYPTO_CAST6=y -CONFIG_CRYPTO_DES=y -CONFIG_CRYPTO_FCRYPT=y -CONFIG_CRYPTO_KHAZAD=y -CONFIG_CRYPTO_CHACHA20=y -CONFIG_CRYPTO_SEED=y -# CONFIG_CRYPTO_ARIA is not set -CONFIG_CRYPTO_SERPENT=y -CONFIG_CRYPTO_SM4=y -# CONFIG_CRYPTO_SM4_GENERIC is not set -CONFIG_CRYPTO_TEA=y -CONFIG_CRYPTO_TWOFISH=y -CONFIG_CRYPTO_TWOFISH_COMMON=y +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=y +CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_CRC64_ROCKSOFT is not set +# end of CRCs (cyclic redundancy checks) # # Compression @@ -2590,9 +2808,10 @@ CONFIG_CRYPTO_842=y CONFIG_CRYPTO_LZ4=y CONFIG_CRYPTO_LZ4HC=y CONFIG_CRYPTO_ZSTD=y +# end of Compression # -# Random Number Generation +# Random number generation # CONFIG_CRYPTO_ANSI_CPRNG=y CONFIG_CRYPTO_DRBG_MENU=y @@ -2601,7 +2820,13 @@ CONFIG_CRYPTO_DRBG_HASH=y CONFIG_CRYPTO_DRBG_CTR=y CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set CONFIG_CRYPTO_KDF800108_CTR=y +# end of Random number generation + +# +# Userspace interface +# CONFIG_CRYPTO_USER_API=y CONFIG_CRYPTO_USER_API_HASH=y CONFIG_CRYPTO_USER_API_SKCIPHER=y @@ -2610,7 +2835,40 @@ CONFIG_CRYPTO_USER_API_RNG=y CONFIG_CRYPTO_USER_API_AEAD=y CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y CONFIG_CRYPTO_STATS=y +# end of Userspace interface + CONFIG_CRYPTO_HASH_INFO=y +CONFIG_CRYPTO_NHPOLY1305_NEON=y +CONFIG_CRYPTO_CHACHA20_NEON=y + +# +# Accelerated Cryptographic Algorithms for CPU (arm64) +# +CONFIG_CRYPTO_GHASH_ARM64_CE=y +CONFIG_CRYPTO_POLY1305_NEON=y +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA256_ARM64=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +CONFIG_CRYPTO_SHA512_ARM64=y +CONFIG_CRYPTO_SHA512_ARM64_CE=y +CONFIG_CRYPTO_SHA3_ARM64=y +# CONFIG_CRYPTO_SM3_NEON is not set +CONFIG_CRYPTO_SM3_ARM64_CE=y +# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set +CONFIG_CRYPTO_AES_ARM64=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y +CONFIG_CRYPTO_AES_ARM64_BS=y +CONFIG_CRYPTO_SM4_ARM64_CE=y +# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set +# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set +# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set +CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=y +# end of Accelerated Cryptographic Algorithms for CPU (arm64) + CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_ATMEL_I2C=y CONFIG_CRYPTO_DEV_ATMEL_ECC=y @@ -2655,8 +2913,10 @@ CONFIG_INDIRECT_PIO=y # # Crypto library routines # +CONFIG_CRYPTO_LIB_UTILS=y CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_LIB_ARC4=y +CONFIG_CRYPTO_LIB_GF128MUL=y CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y @@ -2673,7 +2933,6 @@ CONFIG_CRYPTO_LIB_SHA1=y CONFIG_CRYPTO_LIB_SHA256=y # end of Crypto library routines -CONFIG_LIB_MEMNEQ=y CONFIG_CRC_CCITT=y CONFIG_CRC16=y CONFIG_CRC_T10DIF=y @@ -2702,6 +2961,7 @@ CONFIG_LZO_DECOMPRESS=y CONFIG_LZ4_COMPRESS=y CONFIG_LZ4HC_COMPRESS=y CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMMON=y CONFIG_ZSTD_COMPRESS=y CONFIG_ZSTD_DECOMPRESS=y CONFIG_XZ_DEC=y @@ -2719,6 +2979,7 @@ CONFIG_INTERVAL_TREE=y CONFIG_XARRAY_MULTI=y CONFIG_ASSOCIATIVE_ARRAY=y CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_NEED_DMA_MAP_STATE=y @@ -2729,12 +2990,13 @@ CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y CONFIG_SWIOTLB=y +# CONFIG_SWIOTLB_DYNAMIC is not set +CONFIG_DMA_BOUNCE_UNALIGNED_KMALLOC=y # CONFIG_DMA_RESTRICTED_POOL is not set CONFIG_DMA_NONCOHERENT_MMAP=y CONFIG_DMA_COHERENT_POOL=y CONFIG_DMA_DIRECT_REMAP=y CONFIG_DMA_CMA=y -# CONFIG_DMA_PERNUMA_CMA is not set # # Default contiguous memory area size: @@ -2795,6 +3057,7 @@ CONFIG_DEBUG_BUGVERBOSE=y # # Compile-time checks and compiler options # +CONFIG_AS_HAS_NON_CONST_LEB128=y CONFIG_FRAME_WARN=1024 CONFIG_STRIP_ASM_SYMS=y CONFIG_HEADERS_INSTALL=y @@ -2838,8 +3101,9 @@ CONFIG_SLUB_DEBUG=y CONFIG_ARCH_HAS_DEBUG_WX=y # CONFIG_DEBUG_WX is not set CONFIG_GENERIC_PTDUMP=y -# CONFIG_SHRINKER_DEBUG is not set CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_PER_VMA_LOCK_STATS is not set +# CONFIG_SHRINKER_DEBUG is not set CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y # CONFIG_DEBUG_VM_PGTABLE is not set CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y @@ -2862,6 +3126,7 @@ CONFIG_HAVE_ARCH_KFENCE=y # CONFIG_PANIC_ON_OOPS is not set CONFIG_PANIC_ON_OOPS_VALUE=0 CONFIG_PANIC_TIMEOUT=0 +CONFIG_HAVE_HARDLOCKUP_DETECTOR_BUDDY=y # end of Debug Oops, Lockups and Hangs # @@ -2886,8 +3151,6 @@ CONFIG_STACKTRACE=y # # Debug kernel data structures # -CONFIG_DEBUG_LIST=y -CONFIG_BUG_ON_DATA_CORRUPTION=y # end of Debug kernel data structures # @@ -2895,18 +3158,22 @@ CONFIG_BUG_ON_DATA_CORRUPTION=y # CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 +# CONFIG_RCU_CPU_STALL_CPUTIME is not set # end of RCU Debugging CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_RETVAL=y CONFIG_HAVE_DYNAMIC_FTRACE=y -CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_ARGS=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACING_SUPPORT=y # CONFIG_FTRACE is not set # CONFIG_SAMPLES is not set +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y CONFIG_STRICT_DEVMEM=y CONFIG_IO_STRICT_DEVMEM=y @@ -2928,4 +3195,9 @@ CONFIG_CC_HAS_SANCOV_TRACE_PC=y CONFIG_ARCH_USE_MEMTEST=y # CONFIG_MEMTEST is not set # end of Kernel Testing and Coverage + +# +# Rust hacking +# +# end of Rust hacking # end of Kernel hacking