Bump Linux kernel to 5.10
This bumps our Linux kernel to 5.10. There's one minor fix in fsinfo accounting for the fact that strings are
now null-terminated. While debugging this I also drive-by fixed a minor typing issue in quotactl.go.
This drops support for the old initramfs loading method (which was the driving force for the EROFS changes)
as refactors in the kernel made the patch we carried until now non-viable. Nothing uses it anymore, everything is
either a microvm-style machine which doesn't use EFI and thus doesn't suffer from the issue or uses EROFS.
Test Plan: No new functionality, should be covered by E2E tests.
X-Origin-Diff: phab/D697
GitOrigin-RevId: d8e40954abb66cb082eecbca372b94a7e40b84a8
diff --git a/WORKSPACE b/WORKSPACE
index 62762e8..98692b3 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -105,7 +105,7 @@
linux_external(
name = "linux",
- version = "5.6",
+ version = "5.10.4",
)
load("//third_party/edk2:external.bzl", "edk2_external")
diff --git a/metropolis/pkg/fsquota/fsinfo.go b/metropolis/pkg/fsquota/fsinfo.go
index e40a533..f885d51 100644
--- a/metropolis/pkg/fsquota/fsinfo.go
+++ b/metropolis/pkg/fsquota/fsinfo.go
@@ -51,9 +51,9 @@
flags: fsinfo_flags_query_fd,
request: fsinfo_attr_source,
}
- n, _, err := unix.Syscall6(sys_fsinfo, dir.Fd(), 0, uintptr(unsafe.Pointer(¶ms)), unsafe.Sizeof(params), uintptr(unsafe.Pointer(&buf[0])), 128)
+ n, _, err := unix.Syscall6(sys_fsinfo, dir.Fd(), 0, uintptr(unsafe.Pointer(¶ms)), unsafe.Sizeof(params), uintptr(unsafe.Pointer(&buf[0])), 256)
if err != unix.Errno(0) {
return "", fmt.Errorf("failed to call fsinfo: %w", err)
}
- return string(buf[:n]), nil
+ return string(buf[:n-1]), nil
}
diff --git a/metropolis/pkg/fsquota/quotactl/quotactl.go b/metropolis/pkg/fsquota/quotactl/quotactl.go
index 5ed77d7..a2edfa7 100644
--- a/metropolis/pkg/fsquota/quotactl/quotactl.go
+++ b/metropolis/pkg/fsquota/quotactl/quotactl.go
@@ -131,7 +131,7 @@
}
// GetFmt gets the quota format used on given filesystem
-func GetFmt(device string, qtype QuotaType) (uint32, error) {
+func GetFmt(device string, qtype QuotaType) (QuotaFormat, error) {
var fmt uint32
devArg, err := unix.BytePtrFromString(device)
if err != nil {
@@ -141,7 +141,7 @@
if err != unix.Errno(0) {
return 0, err
}
- return fmt, nil
+ return QuotaFormat(fmt), nil
}
// GetInfo gets information about quota files
diff --git a/third_party/linux/external.bzl b/third_party/linux/external.bzl
index 6057543..ccad4b5 100644
--- a/third_party/linux/external.bzl
+++ b/third_party/linux/external.bzl
@@ -20,21 +20,19 @@
sums = {
"5.4.7": "abc9b21d9146d95853dac35f4c4489a0199aff53ee6eee4b0563d1b37079fcc9",
"5.6": "e342b04a2aa63808ea0ef1baab28fc520bd031ef8cf93d9ee4a31d4058fcb622",
+ "5.10.4": "904e396c26e9992a16cd1cc989460171536bed7739bf36049f6eb020ee5d56ec",
}
http_archive(
name = name,
build_file = "//third_party/linux/external:BUILD.repo",
patch_args = ["-p1"],
patches = [
- # Enable built-in cmdline for efistub
- "//third_party/linux/external:0001-x86-Allow-built-in-command-line-to-work-in-early-ker.patch",
# Add fsinfo() syscall
- "//third_party/linux/external:0002-watch_queue-Introduce-a-non-repeating-system-unique-.patch",
- "//third_party/linux/external:0003-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch",
- "//third_party/linux/external:0004-fsinfo-Allow-retrieval-of-superblock-devname-options.patch",
+ "//third_party/linux/external:0001-fsinfo-Introduce-a-non-repeating-system-unique-super.patch",
+ "//third_party/linux/external:0002-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch",
+ "//third_party/linux/external:0003-fsinfo-Allow-retrieval-of-superblock-devname-options.patch",
],
sha256 = sums[version],
strip_prefix = "linux-" + version,
urls = ["https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-%s.tar.xz" % version],
)
-
diff --git a/third_party/linux/external/0001-fsinfo-Introduce-a-non-repeating-system-unique-super.patch b/third_party/linux/external/0001-fsinfo-Introduce-a-non-repeating-system-unique-super.patch
new file mode 100644
index 0000000..831114e
--- /dev/null
+++ b/third_party/linux/external/0001-fsinfo-Introduce-a-non-repeating-system-unique-super.patch
@@ -0,0 +1,70 @@
+From 2ed1d2a0a5bf09ab741f5c3d6d10021c0702be08 Mon Sep 17 00:00:00 2001
+From: David Howells <dhowells@redhat.com>
+Date: Fri, 5 Jul 2019 11:10:10 +0100
+Subject: [PATCH 1/3] fsinfo: Introduce a non-repeating system-unique
+ superblock ID
+
+Introduce an (effectively) non-repeating system-unique superblock ID that
+can be used to determine that two objects are in the same superblock
+without needing to worry about the ID changing in the meantime (as is
+possible with device IDs).
+
+The counter could also be used to tag other features, such as mount
+objects.
+
+Signed-off-by: David Howells <dhowells@redhat.com>
+---
+ fs/internal.h | 1 +
+ fs/super.c | 2 ++
+ include/linux/fs.h | 3 +++
+ 3 files changed, 6 insertions(+)
+
+diff --git a/fs/internal.h b/fs/internal.h
+index a7cd0f64faa4a..1b7460f055a3b 100644
+--- a/fs/internal.h
++++ b/fs/internal.h
+@@ -112,6 +112,7 @@ extern struct file *alloc_empty_file_noaccount(int, const struct cred *);
+ /*
+ * super.c
+ */
++extern atomic64_t vfs_unique_counter;
+ extern int reconfigure_super(struct fs_context *);
+ extern bool trylock_super(struct super_block *sb);
+ extern struct super_block *user_get_super(dev_t);
+diff --git a/fs/super.c b/fs/super.c
+index 98bb0629ee108..31fadb7189d27 100644
+--- a/fs/super.c
++++ b/fs/super.c
+@@ -44,6 +44,7 @@ static int thaw_super_locked(struct super_block *sb);
+
+ static LIST_HEAD(super_blocks);
+ static DEFINE_SPINLOCK(sb_lock);
++atomic64_t vfs_unique_counter; /* Unique identifier counter */
+
+ static char *sb_writers_name[SB_FREEZE_LEVELS] = {
+ "sb_writers",
+@@ -273,6 +274,7 @@ static struct super_block *alloc_super(struct file_system_type *type, int flags,
+ goto fail;
+ if (list_lru_init_memcg(&s->s_inode_lru, &s->s_shrink))
+ goto fail;
++ s->s_unique_id = atomic64_inc_return(&vfs_unique_counter);
+ return s;
+
+ fail:
+diff --git a/include/linux/fs.h b/include/linux/fs.h
+index 8bde32cf97115..e1325dec4fa86 100644
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -1547,6 +1547,9 @@ struct super_block {
+
+ spinlock_t s_inode_wblist_lock;
+ struct list_head s_inodes_wb; /* writeback inodes */
++
++ /* Superblock information */
++ u64 s_unique_id;
+ } __randomize_layout;
+
+ /* Helper functions so that in most cases filesystems will
+--
+2.25.1
+
diff --git a/third_party/linux/external/0001-x86-Allow-built-in-command-line-to-work-in-early-ker.patch b/third_party/linux/external/0001-x86-Allow-built-in-command-line-to-work-in-early-ker.patch
deleted file mode 100644
index 6578571..0000000
--- a/third_party/linux/external/0001-x86-Allow-built-in-command-line-to-work-in-early-ker.patch
+++ /dev/null
@@ -1,368 +0,0 @@
-From 12a40099310177c4a494654b592e7f76ec4045f4 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg59@coreos.com>
-Date: Thu, 9 Apr 2015 13:25:00 -0700
-Subject: [PATCH 1/4] x86: Allow built-in command line to work in early kernel
- init
-
-The kernel supports having a command line built into it. Unfortunately this
-doesn't work in all cases - the built-in command line is only appended
-after we've jumped to the kernel proper, but various parts of the early
-boot process also pay attention to the command line.
-
-This patch moves the command line override code from the kernel itself to
-the early init code. Unfortunately the kernel can be executed by jumping
-to the 16-bit entry point, the UEFI entry point, directly to the 32-bit
-entry point or even to the entry point of the uncompressed image, and
-there is no guarantee that any of these will have access to data held in
-the others. As a result, four copies of the command line will be embedded
-in the kernel.
-
-This patch also defines a new field in boot_params in order to allow the
-earlier entry points to inform the generic setup code that the command line
-has already been appended and so shouldn't be added once more.
-
-Updated for Linux 4.19 by Lorenz Brun <lorenz@nexantic.com>
-Updated for Linux 5.4 by Leopold Schabel <leo@nexantic.com>
-Updated for Linux 5.6 by Lorenz Brun <lorenz@nexantic.com>
-
-Signed-off-by: Matthew Garrett <mjg59@coreos.com>
----
- Documentation/x86/zero-page.rst | 1 +
- arch/x86/boot/boot.h | 10 ++++
- arch/x86/boot/cmdline.c | 37 ++++++++++++++
- arch/x86/boot/compressed/cmdline.c | 10 ++++
- arch/x86/boot/compressed/eboot.c | 3 ++
- arch/x86/boot/compressed/misc.c | 2 +
- arch/x86/boot/compressed/misc.h | 1 +
- arch/x86/boot/main.c | 3 ++
- arch/x86/include/uapi/asm/bootparam.h | 5 +-
- arch/x86/kernel/setup.c | 16 +++---
- .../firmware/efi/libstub/efi-stub-helper.c | 51 +++++++++++++++++--
- 11 files changed, 127 insertions(+), 12 deletions(-)
-
-diff --git a/Documentation/x86/zero-page.rst b/Documentation/x86/zero-page.rst
-index f088f5881666..5339329af8d2 100644
---- a/Documentation/x86/zero-page.rst
-+++ b/Documentation/x86/zero-page.rst
-@@ -16,6 +16,7 @@ Offset/Size Proto Name Meaning
- 000/040 ALL screen_info Text mode or frame buffer information
- (struct screen_info)
- 040/014 ALL apm_bios_info APM BIOS information (struct apm_bios_info)
-+054/004 ALL setup_flags Flags passed from early kernel setup
- 058/008 ALL tboot_addr Physical address of tboot shared page
- 060/010 ALL ist_info Intel SpeedStep (IST) BIOS support information
- (struct ist_info)
-diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
-index ca866f1cca2e..a97502baba73 100644
---- a/arch/x86/boot/boot.h
-+++ b/arch/x86/boot/boot.h
-@@ -269,6 +269,7 @@ void intcall(u8 int_no, const struct biosregs *ireg, struct biosregs *oreg);
- /* cmdline.c */
- int __cmdline_find_option(unsigned long cmdline_ptr, const char *option, char *buffer, int bufsize);
- int __cmdline_find_option_bool(unsigned long cmdline_ptr, const char *option);
-+int __cmdline_init(unsigned long cmdline_ptr, struct boot_params *params);
- static inline int cmdline_find_option(const char *option, char *buffer, int bufsize)
- {
- unsigned long cmd_line_ptr = boot_params.hdr.cmd_line_ptr;
-@@ -289,6 +290,15 @@ static inline int cmdline_find_option_bool(const char *option)
- return __cmdline_find_option_bool(cmd_line_ptr, option);
- }
-
-+static inline int cmdline_init(void)
-+{
-+ unsigned long cmd_line_ptr = boot_params.hdr.cmd_line_ptr;
-+
-+ if (cmd_line_ptr >= 0x100000)
-+ return -1; /* inaccessible */
-+
-+ return __cmdline_init(cmd_line_ptr, &boot_params);
-+}
- /* cpu.c, cpucheck.c */
- int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr);
- int check_knl_erratum(void);
-diff --git a/arch/x86/boot/cmdline.c b/arch/x86/boot/cmdline.c
-index 4ff01176c1cc..b5dfbe0b3209 100644
---- a/arch/x86/boot/cmdline.c
-+++ b/arch/x86/boot/cmdline.c
-@@ -12,6 +12,10 @@
-
- #include "boot.h"
-
-+#ifdef CONFIG_CMDLINE_BOOL
-+static char builtin_cmdline[] = CONFIG_CMDLINE;
-+#endif
-+
- static inline int myisspace(u8 c)
- {
- return c <= ' '; /* Close enough approximation */
-@@ -154,3 +158,36 @@ int __cmdline_find_option_bool(unsigned long cmdline_ptr, const char *option)
-
- return 0; /* Buffer overrun */
- }
-+
-+int __cmdline_init(unsigned long cmdline_ptr, struct boot_params *params)
-+{
-+#ifdef CONFIG_CMDLINE_BOOL
-+ addr_t cptr;
-+ int i = 0;
-+
-+ if (!cmdline_ptr)
-+ return -1; /* No command line */
-+
-+ set_fs(cmdline_ptr >> 4);
-+ cptr = cmdline_ptr & 0xf;
-+
-+#ifndef CONFIG_CMDLINE_OVERRIDE
-+ while (cptr < 0x10000) {
-+ char c = rdfs8(cptr);
-+ if (!c) {
-+ wrfs8(' ', cptr++);
-+ break;
-+ }
-+ cptr++;
-+ }
-+#endif /* !CONFIG_CMDLINE_OVERRIDE */
-+ while (builtin_cmdline[i] && cptr < 0xffff)
-+ wrfs8(builtin_cmdline[i++], cptr++);
-+
-+ wrfs8('\0', cptr);
-+
-+ params->setup_flags |= SETUP_CMDLINE_APPENDED;
-+#endif /* CONFIG_CMDLINE_BOOL */
-+
-+ return 0;
-+}
-diff --git a/arch/x86/boot/compressed/cmdline.c b/arch/x86/boot/compressed/cmdline.c
-index f1add5d85da9..c69b27a5e76d 100644
---- a/arch/x86/boot/compressed/cmdline.c
-+++ b/arch/x86/boot/compressed/cmdline.c
-@@ -11,6 +11,10 @@ static inline char rdfs8(addr_t addr)
- {
- return *((char *)(fs + addr));
- }
-+static inline void wrfs8(u8 v, addr_t addr)
-+{
-+ *((char *)(fs + addr)) = v;
-+}
- #include "../cmdline.c"
- unsigned long get_cmd_line_ptr(void)
- {
-@@ -28,3 +32,9 @@ int cmdline_find_option_bool(const char *option)
- {
- return __cmdline_find_option_bool(get_cmd_line_ptr(), option);
- }
-+int cmdline_init(void)
-+{
-+ if (!(boot_params->setup_flags & SETUP_CMDLINE_APPENDED))
-+ return __cmdline_init(get_cmd_line_ptr(), boot_params);
-+ return 0;
-+}
-diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
-index 287393d725f0..6854fe44ac2c 100644
---- a/arch/x86/boot/compressed/eboot.c
-+++ b/arch/x86/boot/compressed/eboot.c
-@@ -413,6 +413,9 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle,
- /* Fill in upper bits of command line address, NOP on 32 bit */
- boot_params->ext_cmd_line_ptr = (u64)(unsigned long)cmdline_ptr >> 32;
-
-+#ifdef CONFIG_CMDLINE_BOOL
-+ boot_params->setup_flags |= SETUP_CMDLINE_APPENDED;
-+#endif
- hdr->ramdisk_image = 0;
- hdr->ramdisk_size = 0;
-
-diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
-index 9652d5c2afda..05fd4372b630 100644
---- a/arch/x86/boot/compressed/misc.c
-+++ b/arch/x86/boot/compressed/misc.c
-@@ -366,6 +366,8 @@ asmlinkage __visible void *extract_kernel(void *rmode, memptr heap,
- lines = boot_params->screen_info.orig_video_lines;
- cols = boot_params->screen_info.orig_video_cols;
-
-+ cmdline_init();
-+
- console_init();
-
- /*
-diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h
-index c8181392f70d..e2f962e7c0d4 100644
---- a/arch/x86/boot/compressed/misc.h
-+++ b/arch/x86/boot/compressed/misc.h
-@@ -68,6 +68,7 @@ static inline void debug_puthex(const char *s)
- /* cmdline.c */
- int cmdline_find_option(const char *option, char *buffer, int bufsize);
- int cmdline_find_option_bool(const char *option);
-+int cmdline_init(void);
-
- struct mem_vector {
- unsigned long long start;
-diff --git a/arch/x86/boot/main.c b/arch/x86/boot/main.c
-index e3add857c2c9..e20e81253a7d 100644
---- a/arch/x86/boot/main.c
-+++ b/arch/x86/boot/main.c
-@@ -136,6 +136,9 @@ void main(void)
- /* First, copy the boot header into the "zeropage" */
- copy_boot_params();
-
-+ /* Handle built-in command line */
-+ cmdline_init();
-+
- /* Initialize the early-boot console */
- console_init();
- if (cmdline_find_option_bool("debug"))
-diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
-index 8669c6bdbb84..e11a678d4afa 100644
---- a/arch/x86/include/uapi/asm/bootparam.h
-+++ b/arch/x86/include/uapi/asm/bootparam.h
-@@ -37,6 +37,9 @@
- #define XLF_5LEVEL (1<<5)
- #define XLF_5LEVEL_ENABLED (1<<6)
-
-+/* setup_flags */
-+#define SETUP_CMDLINE_APPENDED (1<<0)
-+
- #ifndef __ASSEMBLY__
-
- #include <linux/types.h>
-@@ -175,7 +178,7 @@ struct jailhouse_setup_data {
- struct boot_params {
- struct screen_info screen_info; /* 0x000 */
- struct apm_bios_info apm_bios_info; /* 0x040 */
-- __u8 _pad2[4]; /* 0x054 */
-+ __u32 setup_flags; /* 0x054 */
- __u64 tboot_addr; /* 0x058 */
- struct ist_info ist_info; /* 0x060 */
- __u64 acpi_rsdp_addr; /* 0x070 */
-diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
-index a74262c71484..6dcc6722ca73 100644
---- a/arch/x86/kernel/setup.c
-+++ b/arch/x86/kernel/setup.c
-@@ -903,16 +903,18 @@ void __init setup_arch(char **cmdline_p)
- bss_resource.end = __pa_symbol(__bss_stop)-1;
-
- #ifdef CONFIG_CMDLINE_BOOL
-+ if (!(boot_params.setup_flags & SETUP_CMDLINE_APPENDED)) {
- #ifdef CONFIG_CMDLINE_OVERRIDE
-- strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
--#else
-- if (builtin_cmdline[0]) {
-- /* append boot loader cmdline to builtin */
-- strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE);
-- strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE);
- strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
-- }
-+#else
-+ if (builtin_cmdline[0]) {
-+ /* append boot loader cmdline to builtin */
-+ strlcat(builtin_cmdline, " ", COMMAND_LINE_SIZE);
-+ strlcat(builtin_cmdline, boot_command_line, COMMAND_LINE_SIZE);
-+ strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
-+ }
- #endif
-+ }
- #endif
-
- strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
-diff --git a/drivers/firmware/efi/libstub/efi-stub-helper.c b/drivers/firmware/efi/libstub/efi-stub-helper.c
-index 74ddfb496140..5b066819befb 100644
---- a/drivers/firmware/efi/libstub/efi-stub-helper.c
-+++ b/drivers/firmware/efi/libstub/efi-stub-helper.c
-@@ -9,9 +9,14 @@
-
- #include <linux/efi.h>
- #include <asm/efi.h>
-+#include <asm/setup.h>
-
- #include "efistub.h"
-
-+#ifdef CONFIG_CMDLINE_BOOL
-+static char builtin_cmdline[] = CONFIG_CMDLINE;
-+#endif
-+
- /*
- * Some firmware implementations have problems reading files in one go.
- * A read chunk size of 1MB seems to work for most platforms.
-@@ -814,6 +819,20 @@ static u8 *efi_utf16_to_utf8(u8 *dst, const u16 *src, int n)
- #ifndef MAX_CMDLINE_ADDRESS
- #define MAX_CMDLINE_ADDRESS ULONG_MAX
- #endif
-+static size_t efi_strlcat(char *dest, const char *src, size_t count)
-+{
-+ size_t dsize = strlen(dest);
-+ size_t len = strlen(src);
-+ size_t res = dsize + len;
-+
-+ dest += dsize;
-+ count -= dsize;
-+ if (len >= count)
-+ len = count-1;
-+ memcpy(dest, src, len);
-+ dest[len] = 0;
-+ return res;
-+}
-
- /*
- * Convert the unicode UEFI command line to ASCII to pass to kernel.
-@@ -823,14 +842,16 @@ static u8 *efi_utf16_to_utf8(u8 *dst, const u16 *src, int n)
- char *efi_convert_cmdline(efi_loaded_image_t *image,
- int *cmd_line_len)
- {
-+ unsigned long cmdline_addr = 0;
-+ int i;
-+ efi_status_t status;
-+#ifndef CONFIG_CMDLINE_OVERRIDE
- const u16 *s2;
- u8 *s1 = NULL;
-- unsigned long cmdline_addr = 0;
- int load_options_chars = image->load_options_size / 2; /* UTF-16 */
- const u16 *options = image->load_options;
- int options_bytes = 0; /* UTF-8 bytes */
- int options_chars = 0; /* UTF-16 chars */
-- efi_status_t status;
- u16 zero = 0;
-
- if (options) {
-@@ -849,8 +870,13 @@ char *efi_convert_cmdline(efi_loaded_image_t *image,
-
- options_bytes++; /* NUL termination */
-
-- status = efi_high_alloc(options_bytes, 0, &cmdline_addr,
-- MAX_CMDLINE_ADDRESS);
-+#ifdef CONFIG_CMDLINE_BOOL
-+ /* Add length of the built-in command line, plus a space */
-+ options_bytes += strlen(builtin_cmdline);
-+ options_bytes++;
-+#endif
-+ status = efi_high_alloc(options_bytes, 0,
-+ &cmdline_addr, MAX_CMDLINE_ADDRESS);
- if (status != EFI_SUCCESS)
- return NULL;
-
-@@ -860,7 +886,24 @@ char *efi_convert_cmdline(efi_loaded_image_t *image,
- s1 = efi_utf16_to_utf8(s1, s2, options_chars);
- *s1 = '\0';
-
-+#ifdef CONFIG_CMDLINE_BOOL
-+ efi_strlcat((char *)cmdline_addr, " ", COMMAND_LINE_SIZE);
-+ efi_strlcat((char *)cmdline_addr, builtin_cmdline, COMMAND_LINE_SIZE);
-+#endif
- *cmd_line_len = options_bytes;
-+#else /* CONFIG_CMDLINE_OVERRIDE */
-+ status = efi_high_alloc(strlen(builtin_cmdline), 0,
-+ &cmdline_addr, MAX_CMDLINE_ADDRESS);
-+ if (status != EFI_SUCCESS)
-+ return NULL;
-+ while (builtin_cmdline[i] && i < COMMAND_LINE_SIZE) {
-+ ((char *)cmdline_addr)[i] = builtin_cmdline[i];
-+ i++;
-+ }
-+ ((char *)cmdline_addr)[i] = '\0';
-+ *cmd_line_len = strlen(builtin_cmdline);
-+#endif /* CONFIG_CMDLINE_OVERRIDE */
-+
- return (char *)cmdline_addr;
- }
-
---
-2.20.1
-
diff --git a/third_party/linux/external/0003-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch b/third_party/linux/external/0002-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch
similarity index 88%
rename from third_party/linux/external/0003-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch
rename to third_party/linux/external/0002-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch
index 91ae975..7b5147f 100644
--- a/third_party/linux/external/0003-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch
+++ b/third_party/linux/external/0002-fsinfo-Add-fsinfo-syscall-to-query-filesystem-inform.patch
@@ -1,7 +1,7 @@
-From c91b96ad3f53de22e11d6692d2d8a80ed611a5a5 Mon Sep 17 00:00:00 2001
+From 5837a1c690d51c270c8f04029530f2ce6856739a Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Fri, 6 Mar 2020 14:59:51 +0000
-Subject: [PATCH 3/4] fsinfo: Add fsinfo() syscall to query filesystem
+Subject: [PATCH 2/3] fsinfo: Add fsinfo() syscall to query filesystem
information
Add a system call to allow filesystem information to be queried. A request
@@ -93,7 +93,7 @@
get the subset they're expecting. If either buffer of result_buf_size are
0, no copy will take place and the data size will be returned.
-Backported for Linux 5.6 by Lorenz Brun <lorenz@nexantic.com>
+Ported to 5.10 by Lorenz Brun <lorenz@nexantic.com>
Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-api@vger.kernel.org
@@ -118,196 +118,196 @@
arch/xtensa/kernel/syscalls/syscall.tbl | 1 +
fs/Kconfig | 7 +
fs/Makefile | 1 +
- fs/fsinfo.c | 586 ++++++++++++++++++
+ fs/fsinfo.c | 596 ++++++++++++++++++
include/linux/fs.h | 4 +
- include/linux/fsinfo.h | 73 +++
+ include/linux/fsinfo.h | 74 +++
include/linux/syscalls.h | 4 +
include/uapi/asm-generic/unistd.h | 4 +-
- include/uapi/linux/fsinfo.h | 187 ++++++
+ include/uapi/linux/fsinfo.h | 189 ++++++
kernel/sys_ni.c | 1 +
- samples/vfs/Makefile | 5 +
- samples/vfs/test-fsinfo.c | 633 ++++++++++++++++++++
- 29 files changed, 1523 insertions(+), 2 deletions(-)
+ samples/vfs/Makefile | 2 +-
+ samples/vfs/test-fsinfo.c | 646 ++++++++++++++++++++
+ 29 files changed, 1545 insertions(+), 3 deletions(-)
create mode 100644 fs/fsinfo.c
create mode 100644 include/linux/fsinfo.h
create mode 100644 include/uapi/linux/fsinfo.h
create mode 100644 samples/vfs/test-fsinfo.c
diff --git a/arch/alpha/kernel/syscalls/syscall.tbl b/arch/alpha/kernel/syscalls/syscall.tbl
-index 36d42da7466a..59388edc444a 100644
+index ee7b01bb7346c..c955e31d57289 100644
--- a/arch/alpha/kernel/syscalls/syscall.tbl
+++ b/arch/alpha/kernel/syscalls/syscall.tbl
-@@ -477,3 +477,4 @@
- # 545 reserved for clone3
- 547 common openat2 sys_openat2
+@@ -480,3 +480,4 @@
548 common pidfd_getfd sys_pidfd_getfd
+ 549 common faccessat2 sys_faccessat2
+ 550 common process_madvise sys_process_madvise
+551 common fsinfo sys_fsinfo
diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl
-index 4d1cf74a2caa..a670f6add5ab 100644
+index d056a548358ea..308dfe68d892c 100644
--- a/arch/arm/tools/syscall.tbl
+++ b/arch/arm/tools/syscall.tbl
-@@ -451,3 +451,4 @@
- 435 common clone3 sys_clone3
- 437 common openat2 sys_openat2
+@@ -454,3 +454,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
-index 803039d504de..86a9d7b3eabe 100644
+index b3b2019f8d16b..86a9d7b3eabe9 100644
--- a/arch/arm64/include/asm/unistd.h
+++ b/arch/arm64/include/asm/unistd.h
@@ -38,7 +38,7 @@
#define __ARM_NR_compat_set_tls (__ARM_NR_COMPAT_BASE + 5)
#define __ARM_NR_COMPAT_END (__ARM_NR_COMPAT_BASE + 0x800)
--#define __NR_compat_syscalls 439
+-#define __NR_compat_syscalls 441
+#define __NR_compat_syscalls 442
#endif
#define __ARCH_WANT_SYS_CLONE
diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h
-index c1c61635f89c..1f7d2c8d481a 100644
+index 107f08e03b9fd..20650e0edacb2 100644
--- a/arch/arm64/include/asm/unistd32.h
+++ b/arch/arm64/include/asm/unistd32.h
-@@ -883,6 +883,8 @@ __SYSCALL(__NR_clone3, sys_clone3)
- __SYSCALL(__NR_openat2, sys_openat2)
- #define __NR_pidfd_getfd 438
- __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
+@@ -889,6 +889,8 @@ __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
+ __SYSCALL(__NR_faccessat2, sys_faccessat2)
+ #define __NR_process_madvise 440
+ __SYSCALL(__NR_process_madvise, sys_process_madvise)
+#define __NR_fsinfo 441
+__SYSCALL(__NR_fsinfo, sys_fsinfo)
/*
* Please add new compat syscalls above this comment and update
diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl
-index 042911e670b8..2a4aea2f1050 100644
+index b96ed8b8a5089..548428f7b76c7 100644
--- a/arch/ia64/kernel/syscalls/syscall.tbl
+++ b/arch/ia64/kernel/syscalls/syscall.tbl
-@@ -358,3 +358,4 @@
- # 435 reserved for clone3
- 437 common openat2 sys_openat2
+@@ -361,3 +361,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/m68k/kernel/syscalls/syscall.tbl b/arch/m68k/kernel/syscalls/syscall.tbl
-index f4f49fcb76d0..9e254f0ef8ea 100644
+index 625fb6d328424..3dd9c1f0815ce 100644
--- a/arch/m68k/kernel/syscalls/syscall.tbl
+++ b/arch/m68k/kernel/syscalls/syscall.tbl
-@@ -437,3 +437,4 @@
- 435 common clone3 __sys_clone3
- 437 common openat2 sys_openat2
+@@ -440,3 +440,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl
-index 4c67b11f9c9e..75924284ee3b 100644
+index aae729c95cf99..420a6d0b01004 100644
--- a/arch/microblaze/kernel/syscalls/syscall.tbl
+++ b/arch/microblaze/kernel/syscalls/syscall.tbl
-@@ -443,3 +443,4 @@
- 435 common clone3 sys_clone3
- 437 common openat2 sys_openat2
+@@ -446,3 +446,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/mips/kernel/syscalls/syscall_n32.tbl b/arch/mips/kernel/syscalls/syscall_n32.tbl
-index 1f9e8ad636cc..4e03df1d67d0 100644
+index 32817c954435d..01420fe120bab 100644
--- a/arch/mips/kernel/syscalls/syscall_n32.tbl
+++ b/arch/mips/kernel/syscalls/syscall_n32.tbl
-@@ -376,3 +376,4 @@
- 435 n32 clone3 __sys_clone3
- 437 n32 openat2 sys_openat2
+@@ -379,3 +379,4 @@
438 n32 pidfd_getfd sys_pidfd_getfd
+ 439 n32 faccessat2 sys_faccessat2
+ 440 n32 process_madvise sys_process_madvise
+441 n32 fsinfo sys_fsinfo
diff --git a/arch/mips/kernel/syscalls/syscall_n64.tbl b/arch/mips/kernel/syscalls/syscall_n64.tbl
-index c0b9d802dbf6..fdcc5ca0a776 100644
+index 9e4ea3c31b1ce..6c319c38779e9 100644
--- a/arch/mips/kernel/syscalls/syscall_n64.tbl
+++ b/arch/mips/kernel/syscalls/syscall_n64.tbl
-@@ -352,3 +352,4 @@
- 435 n64 clone3 __sys_clone3
- 437 n64 openat2 sys_openat2
+@@ -355,3 +355,4 @@
438 n64 pidfd_getfd sys_pidfd_getfd
+ 439 n64 faccessat2 sys_faccessat2
+ 440 n64 process_madvise sys_process_madvise
+441 n64 fsinfo sys_fsinfo
diff --git a/arch/mips/kernel/syscalls/syscall_o32.tbl b/arch/mips/kernel/syscalls/syscall_o32.tbl
-index ac586774c980..17fb101db45c 100644
+index 29f5f28cf5cea..46d4aa7ecb306 100644
--- a/arch/mips/kernel/syscalls/syscall_o32.tbl
+++ b/arch/mips/kernel/syscalls/syscall_o32.tbl
-@@ -425,3 +425,4 @@
- 435 o32 clone3 __sys_clone3
- 437 o32 openat2 sys_openat2
+@@ -428,3 +428,4 @@
438 o32 pidfd_getfd sys_pidfd_getfd
+ 439 o32 faccessat2 sys_faccessat2
+ 440 o32 process_madvise sys_process_madvise
+441 o32 fsinfo sys_fsinfo
diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl
-index 52a15f5cd130..daa7f0c22da0 100644
+index f375ea528e59c..008282637f6af 100644
--- a/arch/parisc/kernel/syscalls/syscall.tbl
+++ b/arch/parisc/kernel/syscalls/syscall.tbl
-@@ -435,3 +435,4 @@
- 435 common clone3 sys_clone3_wrapper
- 437 common openat2 sys_openat2
+@@ -438,3 +438,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/powerpc/kernel/syscalls/syscall.tbl b/arch/powerpc/kernel/syscalls/syscall.tbl
-index 35b61bfc1b1a..ad1de6e3e866 100644
+index 1275daec7fec3..85da23afb3535 100644
--- a/arch/powerpc/kernel/syscalls/syscall.tbl
+++ b/arch/powerpc/kernel/syscalls/syscall.tbl
-@@ -519,3 +519,4 @@
- 435 nospu clone3 ppc_clone3
- 437 common openat2 sys_openat2
+@@ -530,3 +530,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl
-index bd7bd3581a0f..915ee9824956 100644
+index 28c1680004834..83fdaebbf0b08 100644
--- a/arch/s390/kernel/syscalls/syscall.tbl
+++ b/arch/s390/kernel/syscalls/syscall.tbl
-@@ -440,3 +440,4 @@
- 435 common clone3 sys_clone3 sys_clone3
- 437 common openat2 sys_openat2 sys_openat2
+@@ -443,3 +443,4 @@
438 common pidfd_getfd sys_pidfd_getfd sys_pidfd_getfd
-+441 common fsinfo sys_fsinfo sys_fsinfo
+ 439 common faccessat2 sys_faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise sys_process_madvise
++441 common fsinfo sys_fsinfo sys_fsinfo
diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl
-index c7a30fcd135f..35facfae37c9 100644
+index 783738448ff55..e1f52ffa86bb8 100644
--- a/arch/sh/kernel/syscalls/syscall.tbl
+++ b/arch/sh/kernel/syscalls/syscall.tbl
-@@ -440,3 +440,4 @@
- # 435 reserved for clone3
- 437 common openat2 sys_openat2
+@@ -443,3 +443,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/sparc/kernel/syscalls/syscall.tbl b/arch/sparc/kernel/syscalls/syscall.tbl
-index f13615ecdecc..45adfd34b654 100644
+index 78160260991be..1f42dc9965c23 100644
--- a/arch/sparc/kernel/syscalls/syscall.tbl
+++ b/arch/sparc/kernel/syscalls/syscall.tbl
-@@ -483,3 +483,4 @@
- # 435 reserved for clone3
- 437 common openat2 sys_openat2
+@@ -486,3 +486,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl
-index c17cb77eb150..37aa4ed3dbef 100644
+index 0d0667a9fbd70..70da9bad3f79d 100644
--- a/arch/x86/entry/syscalls/syscall_32.tbl
+++ b/arch/x86/entry/syscalls/syscall_32.tbl
-@@ -442,3 +442,4 @@
- 435 i386 clone3 sys_clone3 __ia32_sys_clone3
- 437 i386 openat2 sys_openat2 __ia32_sys_openat2
- 438 i386 pidfd_getfd sys_pidfd_getfd __ia32_sys_pidfd_getfd
-+441 i386 fsinfo sys_fsinfo __ia32_sys_fsinfo
+@@ -445,3 +445,4 @@
+ 438 i386 pidfd_getfd sys_pidfd_getfd
+ 439 i386 faccessat2 sys_faccessat2
+ 440 i386 process_madvise sys_process_madvise
++441 i386 fsinfo sys_fsinfo
diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
-index 44d510bc9b78..eacf0b7c5c3d 100644
+index 379819244b91d..94a51b78e85ed 100644
--- a/arch/x86/entry/syscalls/syscall_64.tbl
+++ b/arch/x86/entry/syscalls/syscall_64.tbl
-@@ -359,6 +359,7 @@
- 435 common clone3 __x64_sys_clone3/ptregs
- 437 common openat2 __x64_sys_openat2
- 438 common pidfd_getfd __x64_sys_pidfd_getfd
-+441 common fsinfo __x64_sys_fsinfo
+@@ -362,6 +362,7 @@
+ 438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
++441 common fsinfo sys_fsinfo
#
- # x32-specific system call numbers start at 512 to avoid cache impact
+ # Due to a historical design error, certain syscalls are numbered differently
diff --git a/arch/xtensa/kernel/syscalls/syscall.tbl b/arch/xtensa/kernel/syscalls/syscall.tbl
-index 85a9ab1bc04d..4d7803550754 100644
+index b070f272995d6..2723c2f43c59a 100644
--- a/arch/xtensa/kernel/syscalls/syscall.tbl
+++ b/arch/xtensa/kernel/syscalls/syscall.tbl
-@@ -408,3 +408,4 @@
- 435 common clone3 sys_clone3
- 437 common openat2 sys_openat2
+@@ -411,3 +411,4 @@
438 common pidfd_getfd sys_pidfd_getfd
+ 439 common faccessat2 sys_faccessat2
+ 440 common process_madvise sys_process_madvise
+441 common fsinfo sys_fsinfo
diff --git a/fs/Kconfig b/fs/Kconfig
-index 708ba336e689..1d1b48059ec9 100644
+index aa4c122823018..b84156272983b 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -15,6 +15,13 @@ config VALIDATE_FS_PARSER
@@ -325,7 +325,7 @@
config FS_IOMAP
diff --git a/fs/Makefile b/fs/Makefile
-index 505e51166973..b5cc9bcd17a4 100644
+index 999d1a23f036c..02da949de3b42 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -54,6 +54,7 @@ obj-$(CONFIG_COREDUMP) += coredump.o
@@ -338,10 +338,10 @@
obj-y += quota/
diff --git a/fs/fsinfo.c b/fs/fsinfo.c
new file mode 100644
-index 000000000000..1830c73f37a7
+index 0000000000000..7d9c73e9cbdef
--- /dev/null
+++ b/fs/fsinfo.c
-@@ -0,0 +1,586 @@
+@@ -0,0 +1,596 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Filesystem information query.
+ *
@@ -361,26 +361,36 @@
+#include "internal.h"
+
+/**
++ * fsinfo_opaque - Store opaque blob as an fsinfo attribute value.
++ * @s: The blob to store (may be NULL)
++ * @ctx: The parameter context
++ * @len: The length of the blob
++ */
++int fsinfo_opaque(const void *s, struct fsinfo_context *ctx, unsigned int len)
++{
++ void *p = ctx->buffer;
++ int ret = 0;
++
++ if (s) {
++ if (!ctx->want_size_only)
++ memcpy(p, s, len);
++ ret = len;
++ }
++
++ return ret;
++}
++EXPORT_SYMBOL(fsinfo_opaque);
++
++/**
+ * fsinfo_string - Store a NUL-terminated string as an fsinfo attribute value.
+ * @s: The string to store (may be NULL)
+ * @ctx: The parameter context
+ */
+int fsinfo_string(const char *s, struct fsinfo_context *ctx)
+{
-+ unsigned int len;
-+ char *p = ctx->buffer;
-+ int ret = 0;
-+
-+ if (s) {
-+ len = min_t(size_t, strlen(s), ctx->buf_size - 1);
-+ if (!ctx->want_size_only) {
-+ memcpy(p, s, len);
-+ p[len] = 0;
-+ }
-+ ret = len;
-+ }
-+
-+ return ret;
++ if (!s)
++ return 1;
++ return fsinfo_opaque(s, ctx, min_t(size_t, strlen(s) + 1, ctx->buf_size));
+}
+EXPORT_SYMBOL(fsinfo_string);
+
@@ -929,7 +939,7 @@
+ return ret;
+}
diff --git a/include/linux/fs.h b/include/linux/fs.h
-index fb0db8474141..13270f1a8663 100644
+index e1325dec4fa86..2d5a2f709f322 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -68,6 +68,7 @@ struct fsverity_info;
@@ -940,7 +950,7 @@
extern void __init inode_init(void);
extern void __init inode_init_early(void);
-@@ -1958,6 +1959,9 @@ struct super_operations {
+@@ -1951,6 +1952,9 @@ struct super_operations {
int (*thaw_super) (struct super_block *);
int (*unfreeze_fs) (struct super_block *);
int (*statfs) (struct dentry *, struct kstatfs *);
@@ -952,10 +962,10 @@
diff --git a/include/linux/fsinfo.h b/include/linux/fsinfo.h
new file mode 100644
-index 000000000000..bf806669b4fb
+index 0000000000000..a811d69b02ff0
--- /dev/null
+++ b/include/linux/fsinfo.h
-@@ -0,0 +1,73 @@
+@@ -0,0 +1,74 @@
+// SPDX-License-Identifier: GPL-2.0
+/* Filesystem information query
+ *
@@ -1019,6 +1029,7 @@
+#define FSINFO_LIST(A,G) _FSINFO (A, FSINFO_TYPE_LIST, sizeof(A##__STRUCT), G)
+#define FSINFO_LIST_N(A,G) _FSINFO_N (A, FSINFO_TYPE_LIST, sizeof(A##__STRUCT), G)
+
++extern int fsinfo_opaque(const void *, struct fsinfo_context *, unsigned int);
+extern int fsinfo_string(const char *, struct fsinfo_context *);
+extern int fsinfo_generic_timestamp_info(struct path *, struct fsinfo_context *);
+extern int fsinfo_generic_supports(struct path *, struct fsinfo_context *);
@@ -1030,7 +1041,7 @@
+
+#endif /* _LINUX_FSINFO_H */
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
-index 1815065d52f3..623f61dcdb9b 100644
+index 37bea07c12f21..e315f719899a1 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -47,6 +47,7 @@ struct stat64;
@@ -1038,42 +1049,42 @@
struct statfs64;
struct statx;
+struct fsinfo_params;
- struct __sysctl_args;
struct sysinfo;
struct timespec;
-@@ -1003,6 +1004,9 @@ asmlinkage long sys_pidfd_send_signal(int pidfd, int sig,
+ struct __kernel_old_timeval;
+@@ -1008,6 +1009,9 @@ asmlinkage long sys_pidfd_send_signal(int pidfd, int sig,
siginfo_t __user *info,
unsigned int flags);
asmlinkage long sys_pidfd_getfd(int pidfd, int fd, unsigned int flags);
+asmlinkage long sys_fsinfo(int dfd, const char __user *pathname,
-+ struct fsinfo_params __user *params, size_t params_size,
++ const struct fsinfo_params __user *params, size_t params_size,
+ void __user *result_buffer, size_t result_buf_size);
/*
* Architecture-specific system calls
diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
-index 3a3201e4618e..1708d24cf98d 100644
+index 2056318988f77..3a2e44f770f8e 100644
--- a/include/uapi/asm-generic/unistd.h
+++ b/include/uapi/asm-generic/unistd.h
-@@ -855,9 +855,11 @@ __SYSCALL(__NR_clone3, sys_clone3)
- __SYSCALL(__NR_openat2, sys_openat2)
- #define __NR_pidfd_getfd 438
- __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
+@@ -859,9 +859,11 @@ __SYSCALL(__NR_pidfd_getfd, sys_pidfd_getfd)
+ __SYSCALL(__NR_faccessat2, sys_faccessat2)
+ #define __NR_process_madvise 440
+ __SYSCALL(__NR_process_madvise, sys_process_madvise)
+#define __NR_fsinfo 441
+__SYSCALL(__NR_fsinfo, sys_fsinfo)
#undef __NR_syscalls
--#define __NR_syscalls 439
-+#define __NR_syscalls 442
+-#define __NR_syscalls 441
++#define __NR_syscalls 443
/*
* 32 bit systems traditionally used different
diff --git a/include/uapi/linux/fsinfo.h b/include/uapi/linux/fsinfo.h
new file mode 100644
-index 000000000000..e9b35b9b7629
+index 0000000000000..65892239ba86c
--- /dev/null
+++ b/include/uapi/linux/fsinfo.h
-@@ -0,0 +1,187 @@
+@@ -0,0 +1,189 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/* fsinfo() definitions.
+ *
@@ -1225,8 +1236,10 @@
+ __u32 fs_ioc_getflags; /* What FS_IOC_GETFLAGS may return */
+ __u32 fs_ioc_setflags_set; /* What FS_IOC_SETFLAGS may set */
+ __u32 fs_ioc_setflags_clear; /* What FS_IOC_SETFLAGS may clear */
++ __u32 fs_ioc_fsgetxattr_xflags; /* What FS_IOC_FSGETXATTR[A] may return in fsx_xflags */
++ __u32 fs_ioc_fssetxattr_xflags_set; /* What FS_IOC_FSSETXATTR may set in fsx_xflags */
++ __u32 fs_ioc_fssetxattr_xflags_clear; /* What FS_IOC_FSSETXATTR may set in fsx_xflags */
+ __u32 win_file_attrs; /* What DOS/Windows FILE_* attributes are supported */
-+ __u32 __padding[1];
+};
+
+#define FSINFO_ATTR_SUPPORTS__STRUCT struct fsinfo_supports
@@ -1262,7 +1275,7 @@
+
+#endif /* _UAPI_LINUX_FSINFO_H */
diff --git a/kernel/sys_ni.c b/kernel/sys_ni.c
-index 3b69a560a7ac..58246e6b5603 100644
+index f27ac94d5fa72..3cf167e82606f 100644
--- a/kernel/sys_ni.c
+++ b/kernel/sys_ni.c
@@ -51,6 +51,7 @@ COND_SYSCALL_COMPAT(io_pgetevents);
@@ -1274,31 +1287,21 @@
/* fs/xattr.c */
diff --git a/samples/vfs/Makefile b/samples/vfs/Makefile
-index 65acdde5c117..9159ad1d7fc5 100644
+index 6377a678134ac..8efb67c45ceaa 100644
--- a/samples/vfs/Makefile
+++ b/samples/vfs/Makefile
-@@ -1,10 +1,15 @@
+@@ -1,4 +1,4 @@
# SPDX-License-Identifier: GPL-2.0-only
- # List of programs to build
-+
- hostprogs := \
-+ test-fsinfo \
- test-fsmount \
- test-statx
+-userprogs-always-y += test-fsmount test-statx
++userprogs-always-y += test-fsinfo test-fsmount test-statx
- always-y := $(hostprogs)
-
-+HOSTCFLAGS_test-fsinfo.o += -I$(objtree)/usr/include
-+HOSTLDLIBS_test-fsinfo += -static -lm
-+
- HOSTCFLAGS_test-fsmount.o += -I$(objtree)/usr/include
- HOSTCFLAGS_test-statx.o += -I$(objtree)/usr/include
+ userccflags += -I usr/include
diff --git a/samples/vfs/test-fsinfo.c b/samples/vfs/test-fsinfo.c
new file mode 100644
-index 000000000000..2b53c735d330
+index 0000000000000..934b25399ffed
--- /dev/null
+++ b/samples/vfs/test-fsinfo.c
-@@ -0,0 +1,633 @@
+@@ -0,0 +1,646 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/* Test the fsinfo() system call
+ *
@@ -1354,30 +1357,30 @@
+
+static ssize_t get_fsinfo(const char *, const char *, struct fsinfo_params *, void **);
+
-+static void dump_hex(unsigned int *data, int from, int to)
++static void dump_hex(FILE *f, unsigned char *data, int from, int to)
+{
-+ unsigned offset, print_offset = 1, col = 0;
-+
-+ from /= 4;
-+ to = (to + 3) / 4;
++ unsigned offset, col = 0;
++ bool print_offset = true;
+
+ for (offset = from; offset < to; offset++) {
+ if (print_offset) {
-+ printf("%04x: ", offset * 8);
++ fprintf(f, "%04x: ", offset);
+ print_offset = 0;
+ }
-+ printf("%08x", data[offset]);
++ fprintf(f, "%02x", data[offset]);
+ col++;
+ if ((col & 3) == 0) {
-+ printf("\n");
-+ print_offset = 1;
-+ } else {
-+ printf(" ");
++ if ((col & 15) == 0) {
++ fprintf(f, "\n");
++ print_offset = 1;
++ } else {
++ fprintf(f, " ");
++ }
+ }
+ }
+
+ if (!print_offset)
-+ printf("\n");
++ fprintf(f, "\n");
+}
+
+static void dump_attribute_info(void *reply, unsigned int size)
@@ -1432,8 +1435,10 @@
+ (unsigned long long)f->f_files.lo,
+ (unsigned long long)f->f_ffree.lo,
+ (unsigned long long)f->f_favail.lo);
-+ printf("\tbsize : %llu\n", f->f_bsize);
-+ printf("\tfrsize : %llu\n", f->f_frsize);
++ printf("\tbsize : %llu\n",
++ (unsigned long long)f->f_bsize);
++ printf("\tfrsize : %llu\n",
++ (unsigned long long)f->f_frsize);
+}
+
+static void dump_fsinfo_generic_ids(void *reply, unsigned int size)
@@ -1482,16 +1487,19 @@
+ printf("\tstx_mask : %x\n", f->stx_mask);
+ printf("\tfs_ioc_*flags: get=%x set=%x clr=%x\n",
+ f->fs_ioc_getflags, f->fs_ioc_setflags_set, f->fs_ioc_setflags_clear);
++ printf("\tfs_ioc_*xattr: fsx_xflags: get=%x set=%x clr=%x\n",
++ f->fs_ioc_fsgetxattr_xflags,
++ f->fs_ioc_fssetxattr_xflags_set,
++ f->fs_ioc_fssetxattr_xflags_clear);
+ printf("\twin_fattrs : %x\n", f->win_file_attrs);
+}
+
+static void print_time(struct fsinfo_timestamp_one *t, char stamp)
+{
-+ printf("\t%ctime : gran=%gs range=%llx-%llx\n",
++ printf("\t%ctime : gran=%uE%d range=%llx-%llx\n",
+ stamp,
-+ t->gran_mantissa * pow(10., t->gran_exponent),
-+ (long long)t->minimum,
-+ (long long)t->maximum);
++ t->gran_mantissa, t->gran_exponent,
++ (long long)t->minimum, (long long)t->maximum);
+}
+
+static void dump_fsinfo_generic_timestamp_info(void *reply, unsigned int size)
@@ -1595,6 +1603,22 @@
+ {}
+};
+
++static __attribute__((noreturn))
++void bad_value(const char *what,
++ struct fsinfo_params *params,
++ const struct fsinfo_attribute *attr,
++ const struct fsinfo_attribute_info *attr_info,
++ void *reply, unsigned int size)
++{
++ printf("\n");
++ fprintf(stderr, "%s %s{%u}{%u} t=%x f=%x s=%x\n",
++ what, attr->name, params->Nth, params->Mth,
++ attr_info->type, attr_info->flags, attr_info->size);
++ fprintf(stderr, "size=%u\n", size);
++ dump_hex(stderr, reply, 0, size);
++ exit(1);
++}
++
+static void dump_value(unsigned int attr_id,
+ const struct fsinfo_attribute *attr,
+ const struct fsinfo_attribute_info *attr_info,
@@ -1720,22 +1744,16 @@
+ if (size == -1) {
+ if (errno == ENODATA) {
+ if (!(attr_info->flags & (FSINFO_FLAGS_N | FSINFO_FLAGS_NM)) &&
-+ params->Nth == 0 && params->Mth == 0) {
-+ fprintf(stderr,
-+ "Unexpected ENODATA (0x%x{%u}{%u})\n",
-+ params->request, params->Nth, params->Mth);
-+ exit(1);
-+ }
++ params->Nth == 0 && params->Mth == 0)
++ bad_value("Unexpected ENODATA",
++ params, attr, attr_info, r, size);
+ free(r);
+ return (params->Mth == 0) ? 2 : 1;
+ }
+ if (errno == EOPNOTSUPP) {
-+ if (params->Nth > 0 || params->Mth > 0) {
-+ fprintf(stderr,
-+ "Should return -ENODATA (0x%x{%u}{%u})\n",
-+ params->request, params->Nth, params->Mth);
-+ exit(1);
-+ }
++ if (params->Nth > 0 || params->Mth > 0)
++ bad_value("Should return ENODATA",
++ params, attr, attr_info, r, size);
+ //printf("\e[33m%s\e[m: <not supported>\n",
+ // fsinfo_attr_names[attr]);
+ free(r);
@@ -1748,7 +1766,7 @@
+ if (raw) {
+ if (size > 4096)
+ size = 4096;
-+ dump_hex(r, 0, size);
++ dump_hex(stdout, r, 0, size);
+ free(r);
+ return 0;
+ }
@@ -1766,8 +1784,12 @@
+ }
+
+ switch (attr_info->type) {
-+ case FSINFO_TYPE_VSTRUCT:
+ case FSINFO_TYPE_STRING:
++ if (size == 0 || ((char *)r)[size - 1] != 0)
++ bad_value("Unterminated string",
++ params, attr, attr_info, r, size);
++ case FSINFO_TYPE_VSTRUCT:
++ case FSINFO_TYPE_OPAQUE:
+ dump_value(params->request, attr, attr_info, r, size);
+ free(r);
+ return 0;
@@ -1777,14 +1799,8 @@
+ free(r);
+ return 0;
+
-+ case FSINFO_TYPE_OPAQUE:
-+ free(r);
-+ return 0;
-+
+ default:
-+ fprintf(stderr, "Fishy about %u 0x%x,%x,%x\n",
-+ params->request, attr_info->type, attr_info->flags, attr_info->size);
-+ exit(1);
++ bad_value("Fishy type", params, attr, attr_info, r, size);
+ }
+}
+
@@ -1933,5 +1949,5 @@
+ return 0;
+}
--
-2.20.1
+2.25.1
diff --git a/third_party/linux/external/0002-watch_queue-Introduce-a-non-repeating-system-unique-.patch b/third_party/linux/external/0002-watch_queue-Introduce-a-non-repeating-system-unique-.patch
deleted file mode 100644
index c3d4367..0000000
--- a/third_party/linux/external/0002-watch_queue-Introduce-a-non-repeating-system-unique-.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 695a880f7d1bf86090dae3c32e3dc67c30917267 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells@redhat.com>
-Date: Fri, 5 Jul 2019 11:10:10 +0100
-Subject: [PATCH 2/4] watch_queue: Introduce a non-repeating system-unique
- superblock ID
-
-Introduce an (effectively) non-repeating system-unique superblock ID that
-can be used to determine that two object are in the same superblock without
-risking reuse of the ID in the meantime (as is possible with device IDs).
-
-The ID is time-based to make it harder to use it as a covert communications
-channel.
-
-In future patches, this ID will be used to tag superblock notification
-messages. It will also be made queryable.
-
-Signed-off-by: David Howells <dhowells@redhat.com>
----
- fs/internal.h | 1 +
- fs/super.c | 24 ++++++++++++++++++++++++
- include/linux/fs.h | 3 +++
- 3 files changed, 28 insertions(+)
-
-diff --git a/fs/internal.h b/fs/internal.h
-index f3f280b952a3..a0d90f23593c 100644
---- a/fs/internal.h
-+++ b/fs/internal.h
-@@ -109,6 +109,7 @@ extern int reconfigure_super(struct fs_context *);
- extern bool trylock_super(struct super_block *sb);
- extern struct super_block *user_get_super(dev_t);
- extern bool mount_capable(struct fs_context *);
-+extern void vfs_generate_unique_id(u64 *);
-
- /*
- * open.c
-diff --git a/fs/super.c b/fs/super.c
-index cd352530eca9..ececa5695fd1 100644
---- a/fs/super.c
-+++ b/fs/super.c
-@@ -44,6 +44,8 @@ static int thaw_super_locked(struct super_block *sb);
-
- static LIST_HEAD(super_blocks);
- static DEFINE_SPINLOCK(sb_lock);
-+static u64 vfs_last_identifier;
-+static u64 vfs_identifier_offset;
-
- static char *sb_writers_name[SB_FREEZE_LEVELS] = {
- "sb_writers",
-@@ -273,6 +275,7 @@ static struct super_block *alloc_super(struct file_system_type *type, int flags,
- goto fail;
- if (list_lru_init_memcg(&s->s_inode_lru, &s->s_shrink))
- goto fail;
-+ vfs_generate_unique_id(&s->s_unique_id);
- return s;
-
- fail:
-@@ -1867,3 +1870,24 @@ int thaw_super(struct super_block *sb)
- return thaw_super_locked(sb);
- }
- EXPORT_SYMBOL(thaw_super);
-+
-+/*
-+ * Generate a unique identifier for a superblock or mount object.
-+ */
-+void vfs_generate_unique_id(u64 *_id)
-+{
-+ u64 id = ktime_to_ns(ktime_get());
-+
-+ spin_lock(&sb_lock);
-+
-+ id += vfs_identifier_offset;
-+ if (id <= vfs_last_identifier) {
-+ id = vfs_last_identifier + 1;
-+ vfs_identifier_offset = vfs_last_identifier - id;
-+ }
-+
-+ vfs_last_identifier = id;
-+ spin_unlock(&sb_lock);
-+
-+ *_id = id;
-+}
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index abedbffe2c9e..fb0db8474141 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -1549,6 +1549,9 @@ struct super_block {
-
- spinlock_t s_inode_wblist_lock;
- struct list_head s_inodes_wb; /* writeback inodes */
-+
-+ /* Superblock event notifications */
-+ u64 s_unique_id;
- } __randomize_layout;
-
- /* Helper functions so that in most cases filesystems will
---
-2.20.1
-
diff --git a/third_party/linux/external/0004-fsinfo-Allow-retrieval-of-superblock-devname-options.patch b/third_party/linux/external/0003-fsinfo-Allow-retrieval-of-superblock-devname-options.patch
similarity index 79%
rename from third_party/linux/external/0004-fsinfo-Allow-retrieval-of-superblock-devname-options.patch
rename to third_party/linux/external/0003-fsinfo-Allow-retrieval-of-superblock-devname-options.patch
index 86ba2cc..d05bff4 100644
--- a/third_party/linux/external/0004-fsinfo-Allow-retrieval-of-superblock-devname-options.patch
+++ b/third_party/linux/external/0003-fsinfo-Allow-retrieval-of-superblock-devname-options.patch
@@ -1,7 +1,7 @@
-From fa2ff1a0da263362a2c98c8cfe68bcac3a323ac4 Mon Sep 17 00:00:00 2001
+From 69b33d464bcadd6c60018f5d0bde8ad3e7530dc7 Mon Sep 17 00:00:00 2001
From: David Howells <dhowells@redhat.com>
Date: Tue, 3 Mar 2020 14:29:27 +0000
-Subject: [PATCH 4/4] fsinfo: Allow retrieval of superblock devname, options
+Subject: [PATCH 3/3] fsinfo: Allow retrieval of superblock devname, options
and stats
Provide fsinfo() attributes to retrieve superblock device name, options,
@@ -16,37 +16,39 @@
Signed-off-by: David Howells <dhowells@redhat.com>
---
- fs/fsinfo.c | 41 +++++++++++++++++++++++++++++++++++++
+ fs/fsinfo.c | 39 +++++++++++++++++++++++++++++++++++
fs/internal.h | 2 ++
- fs/namespace.c | 39 +++++++++++++++++++++++++++++++++++
+ fs/namespace.c | 41 +++++++++++++++++++++++++++++++++++++
include/uapi/linux/fsinfo.h | 3 +++
samples/vfs/test-fsinfo.c | 4 ++++
5 files changed, 89 insertions(+)
diff --git a/fs/fsinfo.c b/fs/fsinfo.c
-index 1830c73f37a7..3ed43c5a10e8 100644
+index 7d9c73e9cbdef..7e2d871eb5dfe 100644
--- a/fs/fsinfo.c
+++ b/fs/fsinfo.c
-@@ -188,6 +188,44 @@ static int fsinfo_generic_volume_id(struct path *path, struct fsinfo_context *ct
+@@ -198,6 +198,42 @@ static int fsinfo_generic_volume_id(struct path *path, struct fsinfo_context *ct
return fsinfo_string(path->dentry->d_sb->s_id, ctx);
}
+/*
+ * Retrieve the superblock configuration (mount options) as a comma-separated
-+ * string. The initial comma is stripped off.
++ * string. The initial comma is stripped off and NUL termination is added.
+ */
+static int fsinfo_generic_seq_read(struct path *path, struct fsinfo_context *ctx)
+{
+ struct super_block *sb = path->dentry->d_sb;
+ struct seq_file m = {
+ .buf = ctx->buffer,
-+ .size = ctx->buf_size,
++ .size = ctx->buf_size - 1,
+ };
+ int ret = 0;
+
+ switch (ctx->requested_attr) {
+ case FSINFO_ATTR_CONFIGURATION:
-+ if (sb->s_op->show_options)
++ seq_puts(&m, sb_rdonly(sb) ? "ro" : "rw");
++ ret = security_sb_show_options(&m, sb);
++ if (!ret && sb->s_op->show_options)
+ ret = sb->s_op->show_options(&m, path->mnt->mnt_root);
+ break;
+
@@ -60,19 +62,15 @@
+ return ret;
+ if (seq_has_overflowed(&m))
+ return ctx->buf_size + PAGE_SIZE;
-+ if (ctx->requested_attr == FSINFO_ATTR_CONFIGURATION) {
-+ if (m.count > 0 && ((char *)ctx->buffer)[0] == ',') {
-+ m.count--;
-+ ctx->skip = 1;
-+ }
-+ }
-+ return m.count;
++
++ ((char *)ctx->buffer)[ctx->skip + m.count] = 0;
++ return m.count + 1;
+}
+
static const struct fsinfo_attribute fsinfo_common_attributes[] = {
FSINFO_VSTRUCT (FSINFO_ATTR_STATFS, fsinfo_generic_statfs),
FSINFO_VSTRUCT (FSINFO_ATTR_IDS, fsinfo_generic_ids),
-@@ -196,6 +234,9 @@ static const struct fsinfo_attribute fsinfo_common_attributes[] = {
+@@ -206,6 +242,9 @@ static const struct fsinfo_attribute fsinfo_common_attributes[] = {
FSINFO_VSTRUCT (FSINFO_ATTR_TIMESTAMP_INFO, fsinfo_generic_timestamp_info),
FSINFO_STRING (FSINFO_ATTR_VOLUME_ID, fsinfo_generic_volume_id),
FSINFO_VSTRUCT (FSINFO_ATTR_VOLUME_UUID, fsinfo_generic_volume_uuid),
@@ -83,20 +81,20 @@
FSINFO_LIST (FSINFO_ATTR_FSINFO_ATTRIBUTES, (void *)123UL),
FSINFO_VSTRUCT_N(FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO, (void *)123UL),
diff --git a/fs/internal.h b/fs/internal.h
-index a0d90f23593c..6f2cc77bf38d 100644
+index 1b7460f055a3b..a2a529da7e673 100644
--- a/fs/internal.h
+++ b/fs/internal.h
-@@ -91,6 +91,8 @@ extern int __mnt_want_write_file(struct file *);
- extern void __mnt_drop_write_file(struct file *);
+@@ -98,6 +98,8 @@ int path_mount(const char *dev_name, struct path *path,
+ const char *type_page, unsigned long flags, void *data_page);
+ int path_umount(struct path *path, int flags);
- extern void dissolve_on_fput(struct vfsmount *);
+extern int fsinfo_generic_mount_source(struct path *, struct fsinfo_context *);
+
/*
* fs_struct.c
*/
diff --git a/fs/namespace.c b/fs/namespace.c
-index 85b5f7bea82e..b4951e2afae1 100644
+index cebaa3e817940..33218f67ad5b1 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -30,6 +30,7 @@
@@ -107,7 +105,7 @@
#include "pnode.h"
#include "internal.h"
-@@ -3975,3 +3976,41 @@ const struct proc_ns_operations mntns_operations = {
+@@ -4105,3 +4106,43 @@ const struct proc_ns_operations mntns_operations = {
.install = mntns_install,
.owner = mntns_owner,
};
@@ -129,7 +127,7 @@
+ struct mount *mnt = real_mount(path->mnt);
+ struct seq_file m = {
+ .buf = ctx->buffer,
-+ .size = ctx->buf_size,
++ .size = ctx->buf_size - 1,
+ };
+ int ret;
+
@@ -145,12 +143,14 @@
+
+ if (seq_has_overflowed(&m))
+ return ctx->buf_size + PAGE_SIZE;
-+ return m.count;
++
++ ((char *)ctx->buffer)[m.count] = 0;
++ return m.count + 1;
+}
+
+#endif /* CONFIG_FSINFO */
diff --git a/include/uapi/linux/fsinfo.h b/include/uapi/linux/fsinfo.h
-index e9b35b9b7629..d3722c7142a6 100644
+index 65892239ba86c..45d9f4b758787 100644
--- a/include/uapi/linux/fsinfo.h
+++ b/include/uapi/linux/fsinfo.h
@@ -23,6 +23,9 @@
@@ -164,10 +164,10 @@
#define FSINFO_ATTR_FSINFO_ATTRIBUTE_INFO 0x100 /* Information about attr N (for path) */
#define FSINFO_ATTR_FSINFO_ATTRIBUTES 0x101 /* List of supported attrs (for path) */
diff --git a/samples/vfs/test-fsinfo.c b/samples/vfs/test-fsinfo.c
-index 2b53c735d330..1797f7b8d08a 100644
+index 934b25399ffed..cf849c9778f71 100644
--- a/samples/vfs/test-fsinfo.c
+++ b/samples/vfs/test-fsinfo.c
-@@ -289,6 +289,10 @@ static const struct fsinfo_attribute fsinfo_attributes[] = {
+@@ -294,6 +294,10 @@ static const struct fsinfo_attribute fsinfo_attributes[] = {
FSINFO_STRING (FSINFO_ATTR_VOLUME_ID, string),
FSINFO_VSTRUCT (FSINFO_ATTR_VOLUME_UUID, fsinfo_generic_volume_uuid),
FSINFO_STRING (FSINFO_ATTR_VOLUME_NAME, string),
@@ -179,5 +179,5 @@
FSINFO_LIST (FSINFO_ATTR_FSINFO_ATTRIBUTES, fsinfo_meta_attributes),
{}
--
-2.20.1
+2.25.1
diff --git a/third_party/linux/linux-metropolis.config b/third_party/linux/linux-metropolis.config
index 75f60ea..a6faa09 100644
--- a/third_party/linux/linux-metropolis.config
+++ b/third_party/linux/linux-metropolis.config
@@ -1,18 +1,17 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/x86 5.6.0 Kernel Configuration
+# Linux/x86 5.10.4 Kernel Configuration
#
-
-#
-# Compiler: gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0
-#
+CONFIG_CC_VERSION_TEXT="gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0"
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=90300
+CONFIG_LD_VERSION=234000000
CONFIG_CLANG_VERSION=0
+CONFIG_LLD_VERSION=0
CONFIG_CC_CAN_LINK=y
+CONFIG_CC_CAN_LINK_STATIC=y
CONFIG_CC_HAS_ASM_GOTO=y
CONFIG_CC_HAS_ASM_INLINE=y
-CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y
CONFIG_IRQ_WORK=y
CONFIG_BUILDTIME_TABLE_SORT=y
CONFIG_THREAD_INFO_IN_TASK=y
@@ -31,18 +30,22 @@
CONFIG_HAVE_KERNEL_XZ=y
CONFIG_HAVE_KERNEL_LZO=y
CONFIG_HAVE_KERNEL_LZ4=y
+CONFIG_HAVE_KERNEL_ZSTD=y
# CONFIG_KERNEL_GZIP is not set
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
CONFIG_KERNEL_LZ4=y
+# CONFIG_KERNEL_ZSTD is not set
+CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="metropolis-node-uninitialized"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
+# CONFIG_WATCH_QUEUE is not set
CONFIG_CROSS_MEMORY_ATTACH=y
# CONFIG_USELIB is not set
# CONFIG_AUDIT is not set
@@ -56,6 +59,7 @@
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
CONFIG_GENERIC_PENDING_IRQ=y
CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_HARDIRQS_SW_RESEND=y
CONFIG_IRQ_DOMAIN=y
CONFIG_IRQ_DOMAIN_HIERARCHY=y
CONFIG_GENERIC_MSI_IRQ=y
@@ -65,10 +69,10 @@
CONFIG_GENERIC_IRQ_RESERVATION_MODE=y
CONFIG_IRQ_FORCED_THREADING=y
CONFIG_SPARSE_IRQ=y
+# CONFIG_GENERIC_IRQ_DEBUGFS is not set
# end of IRQ subsystem
CONFIG_CLOCKSOURCE_WATCHDOG=y
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
CONFIG_ARCH_CLOCKSOURCE_INIT=y
CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y
CONFIG_GENERIC_TIME_VSYSCALL=y
@@ -76,6 +80,8 @@
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_HAVE_POSIX_CPU_TIMERS_TASK_WORK=y
+CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y
#
# Timers subsystem
@@ -174,9 +180,11 @@
# CONFIG_RD_XZ is not set
# CONFIG_RD_LZO is not set
CONFIG_RD_LZ4=y
+CONFIG_RD_ZSTD=y
# CONFIG_BOOT_CONFIG is not set
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_LD_ORPHAN_WARN=y
CONFIG_SYSCTL=y
CONFIG_SYSCTL_EXCEPTION_TRACE=y
CONFIG_HAVE_PCSPKR_PLATFORM=y
@@ -210,6 +218,7 @@
CONFIG_KALLSYMS_BASE_RELATIVE=y
# CONFIG_BPF_SYSCALL is not set
CONFIG_ARCH_WANT_DEFAULT_BPF_JIT=y
+CONFIG_USERMODE_DRIVER=y
# CONFIG_USERFAULTFD is not set
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
CONFIG_RSEQ=y
@@ -242,7 +251,6 @@
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
-CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_MMU=y
@@ -305,6 +313,7 @@
CONFIG_XEN_PVHVM_SMP=y
CONFIG_XEN_512GB=y
CONFIG_XEN_SAVE_RESTORE=y
+# CONFIG_XEN_DEBUG_FS is not set
CONFIG_XEN_PVH=y
CONFIG_KVM_GUEST=y
CONFIG_ARCH_CPUIDLE_HALTPOLL=y
@@ -355,6 +364,7 @@
CONFIG_X86_MCE_INTEL=y
CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
+# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
#
@@ -379,12 +389,12 @@
# CONFIG_X86_CPUID is not set
# CONFIG_X86_5LEVEL is not set
CONFIG_X86_DIRECT_GBPAGES=y
+# CONFIG_X86_CPA_STATISTICS is not set
CONFIG_AMD_MEM_ENCRYPT=y
CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y
CONFIG_NUMA=y
# CONFIG_AMD_NUMA is not set
CONFIG_X86_64_ACPI_NUMA=y
-CONFIG_NODES_SPAN_OTHER_NODES=y
# CONFIG_NUMA_EMU is not set
CONFIG_NODES_SHIFT=6
CONFIG_ARCH_SPARSEMEM_ENABLE=y
@@ -410,7 +420,6 @@
CONFIG_EFI=y
CONFIG_EFI_STUB=y
# CONFIG_EFI_MIXED is not set
-CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
@@ -467,7 +476,6 @@
# CONFIG_ACPI_DEBUGGER is not set
CONFIG_ACPI_SPCR_TABLE=y
CONFIG_ACPI_LPIT=y
-# CONFIG_ACPI_PROCFS_POWER is not set
CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y
# CONFIG_ACPI_EC_DEBUGFS is not set
# CONFIG_ACPI_AC is not set
@@ -493,6 +501,7 @@
CONFIG_ACPI_HOTPLUG_IOAPIC=y
# CONFIG_ACPI_SBS is not set
CONFIG_ACPI_HED=y
+# CONFIG_ACPI_CUSTOM_METHOD is not set
# CONFIG_ACPI_BGRT is not set
# CONFIG_ACPI_NFIT is not set
CONFIG_ACPI_NUMA=y
@@ -502,10 +511,11 @@
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_PCIEAER=y
+# CONFIG_ACPI_APEI_EINJ is not set
# CONFIG_ACPI_APEI_ERST_DEBUG is not set
-# CONFIG_DPTF_POWER is not set
-CONFIG_PMIC_OPREGION=y
+# CONFIG_ACPI_DPTF is not set
CONFIG_ACPI_CONFIGFS=y
+CONFIG_PMIC_OPREGION=y
CONFIG_X86_PM_TIMER=y
# CONFIG_SFI is not set
@@ -519,8 +529,6 @@
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
@@ -602,6 +610,7 @@
# CONFIG_EFI_FAKE_MEMMAP is not set
CONFIG_EFI_SOFT_RESERVE=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
+CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
CONFIG_EFI_BOOTLOADER_CONTROL=y
# CONFIG_EFI_CAPSULE_LOADER is not set
# CONFIG_EFI_TEST is not set
@@ -614,6 +623,7 @@
CONFIG_UEFI_CPER=y
CONFIG_UEFI_CPER_X86=y
CONFIG_EFI_EARLYCON=y
+CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
#
# Tegra firmware driver
@@ -623,17 +633,21 @@
CONFIG_HAVE_KVM=y
CONFIG_VIRTUALIZATION=y
-# CONFIG_VHOST_NET is not set
-# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
+CONFIG_AS_AVX512=y
+CONFIG_AS_SHA1_NI=y
+CONFIG_AS_SHA256_NI=y
+CONFIG_AS_TPAUSE=y
#
# General architecture-dependent options
#
CONFIG_HOTPLUG_SMT=y
+CONFIG_GENERIC_ENTRY=y
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
+# CONFIG_STATIC_CALL_SELFTEST is not set
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_IOREMAP_PROT=y
@@ -655,7 +669,6 @@
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_RSEQ=y
CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y
-CONFIG_HAVE_CLK=y
CONFIG_HAVE_HW_BREAKPOINT=y
CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
CONFIG_HAVE_USER_RETURN_NOTIFIER=y
@@ -671,11 +684,12 @@
CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y
CONFIG_HAVE_CMPXCHG_LOCAL=y
CONFIG_HAVE_CMPXCHG_DOUBLE=y
+CONFIG_HAVE_ARCH_SECCOMP=y
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
+CONFIG_SECCOMP=y
CONFIG_SECCOMP_FILTER=y
CONFIG_HAVE_ARCH_STACKLEAK=y
CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
CONFIG_STACKPROTECTOR=y
CONFIG_STACKPROTECTOR_STRONG=y
CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y
@@ -690,12 +704,10 @@
CONFIG_HAVE_ARCH_SOFT_DIRTY=y
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
CONFIG_HAVE_EXIT_THREAD=y
CONFIG_ARCH_MMAP_RND_BITS=28
-CONFIG_HAVE_COPY_THREAD_TLS=y
CONFIG_HAVE_STACK_VALIDATION=y
CONFIG_HAVE_RELIABLE_STACKTRACE=y
# CONFIG_COMPAT_32BIT_TIME is not set
@@ -706,15 +718,19 @@
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y
CONFIG_ARCH_USE_MEMREMAP_PROT=y
+# CONFIG_LOCK_EVENT_COUNTS is not set
CONFIG_ARCH_HAS_MEM_ENCRYPT=y
+CONFIG_HAVE_STATIC_CALL=y
+CONFIG_HAVE_STATIC_CALL_INLINE=y
+CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y
#
# GCOV-based kernel profiling
#
+# CONFIG_GCOV_KERNEL is not set
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# end of GCOV-based kernel profiling
-CONFIG_PLUGIN_HOSTCC=""
CONFIG_HAVE_GCC_PLUGINS=y
# end of General architecture-dependent options
@@ -734,7 +750,9 @@
# CONFIG_BLK_WBT is not set
# CONFIG_BLK_CGROUP_IOLATENCY is not set
# CONFIG_BLK_CGROUP_IOCOST is not set
+CONFIG_BLK_DEBUG_FS=y
# CONFIG_BLK_SED_OPAL is not set
+# CONFIG_BLK_INLINE_ENCRYPTION is not set
#
# Partition Types
@@ -788,6 +806,7 @@
CONFIG_QUEUED_SPINLOCKS=y
CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
CONFIG_QUEUED_RWLOCKS=y
+CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y
CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y
CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y
CONFIG_FREEZER=y
@@ -810,17 +829,16 @@
CONFIG_SPARSEMEM_MANUAL=y
CONFIG_SPARSEMEM=y
CONFIG_NEED_MULTIPLE_NODES=y
-CONFIG_HAVE_MEMORY_PRESENT=y
CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_SPARSEMEM_VMEMMAP=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
CONFIG_HAVE_FAST_GUP=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MEMORY_BALLOON=y
CONFIG_BALLOON_COMPACTION=y
CONFIG_COMPACTION=y
+CONFIG_PAGE_REPORTING=y
CONFIG_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_BOUNCE=y
@@ -905,6 +923,7 @@
# CONFIG_IPV6_MROUTE is not set
# CONFIG_IPV6_SEG6_LWTUNNEL is not set
# CONFIG_IPV6_SEG6_HMAC is not set
+# CONFIG_IPV6_RPL_LWTUNNEL is not set
# CONFIG_NETLABEL is not set
# CONFIG_MPTCP is not set
# CONFIG_NETWORK_SECMARK is not set
@@ -955,7 +974,6 @@
CONFIG_NF_NAT_MASQUERADE=y
CONFIG_NETFILTER_SYNPROXY=y
CONFIG_NF_TABLES=y
-CONFIG_NF_TABLES_SET=y
CONFIG_NF_TABLES_INET=y
CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=y
@@ -1050,6 +1068,7 @@
CONFIG_STP=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_IGMP_SNOOPING=y
+# CONFIG_BRIDGE_MRP is not set
CONFIG_HAVE_NET_DSA=y
# CONFIG_NET_DSA is not set
# CONFIG_VLAN_8021Q is not set
@@ -1074,6 +1093,7 @@
# CONFIG_HSR is not set
# CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set
+# CONFIG_QRTR is not set
# CONFIG_NET_NCSI is not set
CONFIG_RPS=y
CONFIG_RFS_ACCEL=y
@@ -1164,6 +1184,11 @@
# end of DesignWare PCI Core Support
#
+# Mobiveil PCIe Core Support
+#
+# end of Mobiveil PCIe Core Support
+
+#
# Cadence PCIe controllers support
#
# end of Cadence PCIe controllers support
@@ -1216,6 +1241,7 @@
#
# Bus devices
#
+# CONFIG_MHI_BUS is not set
# end of Bus devices
# CONFIG_CONNECTOR is not set
@@ -1312,20 +1338,12 @@
# CONFIG_INTEL_MEI_ME is not set
# CONFIG_INTEL_MEI_TXE is not set
# CONFIG_VMWARE_VMCI is not set
-
-#
-# Intel MIC & related support
-#
-# CONFIG_INTEL_MIC_BUS is not set
-# CONFIG_SCIF_BUS is not set
-# CONFIG_VOP_BUS is not set
-# end of Intel MIC & related support
-
# CONFIG_GENWQE is not set
# CONFIG_ECHO is not set
# CONFIG_MISC_ALCOR_PCI is not set
# CONFIG_MISC_RTSX_PCI is not set
# CONFIG_HABANA_AI is not set
+# CONFIG_UACCE is not set
# end of Misc devices
CONFIG_HAVE_IDE=y
@@ -1423,7 +1441,10 @@
# end of SCSI device support
CONFIG_ATA=y
+CONFIG_SATA_HOST=y
+CONFIG_PATA_TIMINGS=y
CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATA_FORCE=y
CONFIG_ATA_ACPI=y
# CONFIG_SATA_ZPODD is not set
CONFIG_SATA_PMP=y
@@ -1452,6 +1473,7 @@
# CONFIG_DM_THIN_PROVISIONING is not set
# CONFIG_DM_CACHE is not set
# CONFIG_DM_WRITECACHE is not set
+# CONFIG_DM_EBS is not set
# CONFIG_DM_ERA is not set
# CONFIG_DM_CLONE is not set
# CONFIG_DM_MIRROR is not set
@@ -1493,6 +1515,7 @@
# CONFIG_IPVLAN is not set
CONFIG_VXLAN=y
# 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
@@ -1656,39 +1679,29 @@
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_NET_SB1000 is not set
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_BUS=y
-# CONFIG_MDIO_BCM_UNIMAC is not set
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MDIO_MSCC_MIIM is not set
-# CONFIG_MDIO_THUNDER is not set
CONFIG_PHYLIB=y
+# CONFIG_FIXED_PHY is not set
#
# MII PHY device drivers
#
-# CONFIG_ADIN_PHY is not set
# CONFIG_AMD_PHY is not set
+# CONFIG_ADIN_PHY is not set
CONFIG_AQUANTIA_PHY=y
# CONFIG_AX88796B_PHY is not set
+CONFIG_BROADCOM_PHY=y
+CONFIG_BCM54140_PHY=y
# CONFIG_BCM7XXX_PHY is not set
+CONFIG_BCM84881_PHY=y
# CONFIG_BCM87XX_PHY is not set
CONFIG_BCM_NET_PHYLIB=y
-CONFIG_BROADCOM_PHY=y
-CONFIG_BCM84881_PHY=y
# CONFIG_CICADA_PHY is not set
# CONFIG_CORTINA_PHY is not set
# CONFIG_DAVICOM_PHY is not set
-# CONFIG_DP83822_PHY is not set
-# CONFIG_DP83TC811_PHY is not set
-# CONFIG_DP83848_PHY is not set
-# CONFIG_DP83867_PHY is not set
-CONFIG_DP83869_PHY=y
-# CONFIG_FIXED_PHY is not set
CONFIG_ICPLUS_PHY=y
+# CONFIG_LXT_PHY is not set
# CONFIG_INTEL_XWAY_PHY is not set
# CONFIG_LSI_ET1011C_PHY is not set
-# CONFIG_LXT_PHY is not set
# CONFIG_MARVELL_PHY is not set
# CONFIG_MARVELL_10G_PHY is not set
CONFIG_MICREL_PHY=y
@@ -1697,6 +1710,7 @@
# CONFIG_MICROSEMI_PHY is not set
# CONFIG_NATIONAL_PHY is not set
# CONFIG_NXP_TJA11XX_PHY is not set
+# CONFIG_AT803X_PHY is not set
# CONFIG_QSEMI_PHY is not set
CONFIG_REALTEK_PHY=y
# CONFIG_RENESAS_PHY is not set
@@ -1704,8 +1718,31 @@
# CONFIG_SMSC_PHY is not set
# CONFIG_STE10XP is not set
# CONFIG_TERANETICS_PHY is not set
+# CONFIG_DP83822_PHY is not set
+# CONFIG_DP83TC811_PHY is not set
+# CONFIG_DP83848_PHY is not set
+# CONFIG_DP83867_PHY is not set
+CONFIG_DP83869_PHY=y
# CONFIG_VITESSE_PHY is not set
# CONFIG_XILINX_GMII2RGMII is not set
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVRES=y
+# CONFIG_MDIO_BITBANG is not set
+# CONFIG_MDIO_BCM_UNIMAC is not set
+# CONFIG_MDIO_MSCC_MIIM is not set
+# CONFIG_MDIO_THUNDER is not set
+
+#
+# MDIO Multiplexers
+#
+
+#
+# PCS device drivers
+#
+# CONFIG_PCS_XPCS is not set
+# end of PCS device drivers
+
# CONFIG_PPP is not set
# CONFIG_SLIP is not set
@@ -1722,6 +1759,7 @@
# CONFIG_VMXNET3 is not set
# CONFIG_FUJITSU_ES is not set
# CONFIG_HYPERV_NET is not set
+# CONFIG_NETDEVSIM is not set
CONFIG_NET_FAILOVER=y
# CONFIG_ISDN is not set
# CONFIG_NVM is not set
@@ -1806,14 +1844,7 @@
# CONFIG_VT_HW_CONSOLE_BINDING is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_NOZOMI is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_NULL_TTY is not set
CONFIG_LDISC_AUTOLOAD=y
-# CONFIG_DEVMEM is not set
-# CONFIG_DEVKMEM is not set
#
# Serial drivers
@@ -1843,6 +1874,7 @@
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_LANTIQ is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_SC16IS7XX is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
@@ -1851,13 +1883,19 @@
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_FSL_LINFLEXUART is not set
+# CONFIG_SERIAL_SPRD is not set
# end of Serial drivers
-# CONFIG_SERIAL_DEV_BUS is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+# CONFIG_N_GSM is not set
+# CONFIG_NOZOMI is not set
+# CONFIG_NULL_TTY is not set
+# CONFIG_TRACE_SINK is not set
CONFIG_HVC_DRIVER=y
CONFIG_HVC_IRQ=y
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
+# CONFIG_SERIAL_DEV_BUS is not set
CONFIG_VIRTIO_CONSOLE=y
CONFIG_IPMI_HANDLER=y
CONFIG_IPMI_DMI_DECODE=y
@@ -1872,12 +1910,17 @@
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
CONFIG_HW_RANDOM_INTEL=y
CONFIG_HW_RANDOM_AMD=y
+# CONFIG_HW_RANDOM_BA431 is not set
CONFIG_HW_RANDOM_VIA=y
CONFIG_HW_RANDOM_VIRTIO=y
-# CONFIG_NVRAM is not set
+# CONFIG_HW_RANDOM_XIPHERA is not set
# CONFIG_APPLICOM is not set
# CONFIG_MWAVE is not set
+# CONFIG_DEVMEM is not set
+# CONFIG_DEVKMEM is not set
+# CONFIG_NVRAM is not set
# CONFIG_RAW_DRIVER is not set
+CONFIG_DEVPORT=y
# CONFIG_HPET is not set
CONFIG_HANGCHECK_TIMER=y
CONFIG_TCG_TPM=y
@@ -1895,7 +1938,6 @@
# CONFIG_TCG_VTPM_PROXY is not set
# CONFIG_TCG_TIS_ST33ZP24_I2C is not set
# CONFIG_TELCLOCK is not set
-CONFIG_DEVPORT=y
# CONFIG_XILLYBUS is not set
# end of Character devices
@@ -1987,7 +2029,6 @@
# CONFIG_PINCTRL is not set
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
-# CONFIG_POWER_AVS is not set
# CONFIG_POWER_RESET is not set
CONFIG_POWER_SUPPLY=y
# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -1995,6 +2036,7 @@
# CONFIG_PDA_POWER is not set
# CONFIG_TEST_POWER is not set
# CONFIG_CHARGER_ADP5061 is not set
+# CONFIG_BATTERY_CW2015 is not set
# CONFIG_BATTERY_DS2780 is not set
# CONFIG_BATTERY_DS2781 is not set
# CONFIG_BATTERY_DS2782 is not set
@@ -2003,11 +2045,14 @@
# CONFIG_BATTERY_BQ27XXX is not set
# CONFIG_BATTERY_MAX17040 is not set
# CONFIG_BATTERY_MAX17042 is not set
+# CONFIG_CHARGER_ISP1704 is not set
# CONFIG_CHARGER_MAX8903 is not set
# CONFIG_CHARGER_LP8727 is not set
+# CONFIG_CHARGER_MANAGER is not set
# CONFIG_CHARGER_BQ2415X is not set
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
+# CONFIG_CHARGER_BD99954 is not set
CONFIG_HWMON=y
# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2032,13 +2077,16 @@
# CONFIG_SENSORS_ADT7475 is not set
# CONFIG_SENSORS_AS370 is not set
# CONFIG_SENSORS_ASC7621 is not set
+# CONFIG_SENSORS_AXI_FAN_CONTROL is not set
# CONFIG_SENSORS_K8TEMP is not set
# CONFIG_SENSORS_K10TEMP is not set
# CONFIG_SENSORS_FAM15H_POWER is not set
+# CONFIG_SENSORS_AMD_ENERGY is not set
# CONFIG_SENSORS_APPLESMC is not set
# CONFIG_SENSORS_ASB100 is not set
# CONFIG_SENSORS_ASPEED is not set
# CONFIG_SENSORS_ATXP1 is not set
+# CONFIG_SENSORS_CORSAIR_CPRO is not set
# CONFIG_SENSORS_DRIVETEMP is not set
# CONFIG_SENSORS_DS620 is not set
# CONFIG_SENSORS_DS1621 is not set
@@ -2083,6 +2131,7 @@
# CONFIG_SENSORS_MAX31790 is not set
# CONFIG_SENSORS_MCP3021 is not set
# CONFIG_SENSORS_TC654 is not set
+# CONFIG_SENSORS_MR75203 is not set
# CONFIG_SENSORS_LM63 is not set
# CONFIG_SENSORS_LM73 is not set
# CONFIG_SENSORS_LM75 is not set
@@ -2104,7 +2153,6 @@
# CONFIG_SENSORS_NCT6683 is not set
# CONFIG_SENSORS_NCT6775 is not set
# CONFIG_SENSORS_NCT7802 is not set
-# CONFIG_SENSORS_NCT7904 is not set
# CONFIG_SENSORS_NPCM7XX is not set
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_PMBUS is not set
@@ -2157,6 +2205,7 @@
# CONFIG_SENSORS_ACPI_POWER is not set
# CONFIG_SENSORS_ATK0110 is not set
CONFIG_THERMAL=y
+CONFIG_THERMAL_NETLINK=y
# CONFIG_THERMAL_STATISTICS is not set
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
CONFIG_THERMAL_HWMON=y
@@ -2208,12 +2257,15 @@
# CONFIG_MFD_DA9063 is not set
# CONFIG_MFD_DA9150 is not set
# CONFIG_MFD_MC13XXX_I2C is not set
+# CONFIG_MFD_MP2629 is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_MFD_INTEL_LPSS_ACPI is not set
# CONFIG_MFD_INTEL_LPSS_PCI is not set
+# CONFIG_MFD_INTEL_PMC_BXT is not set
+# CONFIG_MFD_IQS62X is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_88PM800 is not set
@@ -2226,6 +2278,7 @@
# CONFIG_MFD_MAX8925 is not set
# CONFIG_MFD_MAX8997 is not set
# CONFIG_MFD_MAX8998 is not set
+# CONFIG_MFD_MT6360 is not set
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_MENF21BMC is not set
# CONFIG_MFD_RETU is not set
@@ -2237,7 +2290,6 @@
# CONFIG_MFD_SI476X_CORE is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SMSC is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
@@ -2266,8 +2318,46 @@
# CONFIG_MFD_WM8994 is not set
# end of Multifunction device drivers
-# CONFIG_REGULATOR is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_88PG86X is not set
+# CONFIG_REGULATOR_ACT8865 is not set
+# CONFIG_REGULATOR_AD5398 is not set
+# CONFIG_REGULATOR_DA9210 is not set
+# CONFIG_REGULATOR_DA9211 is not set
+# CONFIG_REGULATOR_FAN53555 is not set
+# CONFIG_REGULATOR_ISL9305 is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_LP872X is not set
+# CONFIG_REGULATOR_LP8755 is not set
+# CONFIG_REGULATOR_LTC3589 is not set
+# CONFIG_REGULATOR_LTC3676 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_MAX77826 is not set
+# CONFIG_REGULATOR_MP8859 is not set
+# CONFIG_REGULATOR_MT6311 is not set
+# CONFIG_REGULATOR_PCA9450 is not set
+# CONFIG_REGULATOR_PFUZE100 is not set
+# CONFIG_REGULATOR_PV88060 is not set
+# CONFIG_REGULATOR_PV88080 is not set
+# CONFIG_REGULATOR_PV88090 is not set
+# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RTMV20 is not set
+# CONFIG_REGULATOR_SLG51000 is not set
+# CONFIG_REGULATOR_TPS51632 is not set
+# CONFIG_REGULATOR_TPS62360 is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
# CONFIG_RC_CORE is not set
+# CONFIG_MEDIA_CEC_SUPPORT is not set
# CONFIG_MEDIA_SUPPORT is not set
#
@@ -2284,11 +2374,6 @@
#
# end of ARM devices
-#
-# ACP (Audio CoProcessor) Configuration
-#
-# end of ACP (Audio CoProcessor) Configuration
-
# CONFIG_DRM_XEN is not set
#
@@ -2308,7 +2393,6 @@
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
-# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_DUMMY_CONSOLE_COLUMNS=80
CONFIG_DUMMY_CONSOLE_ROWS=25
@@ -2346,6 +2430,8 @@
CONFIG_HID_EZKEY=y
# CONFIG_HID_GEMBIRD is not set
# CONFIG_HID_GFRM is not set
+# CONFIG_HID_GLORIOUS is not set
+# CONFIG_HID_VIVALDI is not set
# CONFIG_HID_KEYTOUCH is not set
# CONFIG_HID_KYE is not set
# CONFIG_HID_WALTOP is not set
@@ -2420,6 +2506,7 @@
#
# USB Physical Layer drivers
#
+CONFIG_USB_PHY=y
# CONFIG_NOP_USB_XCEIV is not set
# end of USB Physical Layer drivers
@@ -2481,6 +2568,7 @@
# CONFIG_RTC_DRV_RX8025 is not set
# CONFIG_RTC_DRV_EM3027 is not set
# CONFIG_RTC_DRV_RV3028 is not set
+# CONFIG_RTC_DRV_RV3032 is not set
# CONFIG_RTC_DRV_RV8803 is not set
# CONFIG_RTC_DRV_SD3078 is not set
@@ -2529,6 +2617,7 @@
# DMABUF options
#
# CONFIG_SYNC_FILE is not set
+# CONFIG_DMABUF_MOVE_NOTIFY is not set
# CONFIG_DMABUF_HEAPS is not set
# end of DMABUF options
@@ -2554,6 +2643,10 @@
# CONFIG_VIRTIO_INPUT is not set
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+# CONFIG_VDPA is not set
+CONFIG_VHOST_MENU=y
+# CONFIG_VHOST_NET is not set
+# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
#
# Microsoft Hyper-V guest support
@@ -2590,38 +2683,35 @@
# CONFIG_GREYBUS is not set
# CONFIG_STAGING is not set
CONFIG_X86_PLATFORM_DEVICES=y
-# CONFIG_ACER_WIRELESS is not set
+# CONFIG_ACPI_WMI is not set
# CONFIG_ACERHDF is not set
+# CONFIG_ACER_WIRELESS is not set
+# CONFIG_ASUS_WIRELESS is not set
# CONFIG_DCDBAS is not set
# CONFIG_DELL_SMBIOS is not set
-# CONFIG_DELL_SMO8800 is not set
# CONFIG_DELL_RBU is not set
+# CONFIG_DELL_SMO8800 is not set
# CONFIG_FUJITSU_TABLET is not set
# CONFIG_GPD_POCKET_FAN is not set
# CONFIG_HP_ACCEL is not set
# CONFIG_HP_WIRELESS is not set
+# CONFIG_IBM_RTL is not set
# CONFIG_SENSORS_HDAPS is not set
+# CONFIG_INTEL_HID_EVENT is not set
# CONFIG_INTEL_MENLOW is not set
-# CONFIG_ASUS_WIRELESS is not set
-# CONFIG_ACPI_WMI is not set
-# CONFIG_TOPSTAR_LAPTOP is not set
+# CONFIG_INTEL_VBTN is not set
+# CONFIG_SURFACE_3_POWER_OPREGION is not set
+# CONFIG_SURFACE_PRO3_BUTTON is not set
+# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_TOSHIBA_BT_RFKILL is not set
# CONFIG_TOSHIBA_HAPS is not set
# CONFIG_ACPI_CMPC is not set
-# CONFIG_INTEL_HID_EVENT is not set
-# CONFIG_INTEL_VBTN is not set
+# CONFIG_SYSTEM76_ACPI is not set
+# CONFIG_TOPSTAR_LAPTOP is not set
+# CONFIG_I2C_MULTI_INSTANTIATE is not set
# CONFIG_INTEL_IPS is not set
-# CONFIG_INTEL_PMC_CORE is not set
-# CONFIG_IBM_RTL is not set
-# CONFIG_SAMSUNG_Q10 is not set
# CONFIG_INTEL_RST is not set
# CONFIG_INTEL_SMARTCONNECT is not set
-# CONFIG_INTEL_PMC_IPC is not set
-# CONFIG_SURFACE_PRO3_BUTTON is not set
-# CONFIG_INTEL_PUNIT_IPC is not set
-# CONFIG_INTEL_TURBO_MAX_3 is not set
-# CONFIG_I2C_MULTI_INSTANTIATE is not set
-# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set
#
# Intel Speed Select Technology interface support
@@ -2629,26 +2719,25 @@
# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set
# end of Intel Speed Select Technology interface support
-# CONFIG_SYSTEM76_ACPI is not set
+# CONFIG_INTEL_TURBO_MAX_3 is not set
+# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set
+# CONFIG_INTEL_PMC_CORE is not set
+# CONFIG_INTEL_PUNIT_IPC is not set
+# CONFIG_INTEL_SCU_PCI is not set
+# CONFIG_INTEL_SCU_PLATFORM is not set
CONFIG_PMC_ATOM=y
-# CONFIG_MFD_CROS_EC is not set
# CONFIG_CHROME_PLATFORMS is not set
# CONFIG_MELLANOX_PLATFORM is not set
+CONFIG_HAVE_CLK=y
CONFIG_CLKDEV_LOOKUP=y
CONFIG_HAVE_CLK_PREPARE=y
CONFIG_COMMON_CLK=y
-
-#
-# Common Clock Framework
-#
# CONFIG_COMMON_CLK_MAX9485 is not set
# CONFIG_COMMON_CLK_SI5341 is not set
# CONFIG_COMMON_CLK_SI5351 is not set
# CONFIG_COMMON_CLK_SI544 is not set
# CONFIG_COMMON_CLK_CDCE706 is not set
# CONFIG_COMMON_CLK_CS2000_CP is not set
-# end of Common Clock Framework
-
CONFIG_HWSPINLOCK=y
#
@@ -2671,6 +2760,7 @@
#
# end of Generic IOMMU Pagetable Support
+# CONFIG_IOMMU_DEBUGFS is not set
# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
CONFIG_IOMMU_DMA=y
CONFIG_AMD_IOMMU=y
@@ -2738,7 +2828,14 @@
# end of SOC (System On Chip) specific Drivers
# CONFIG_PM_DEVFREQ is not set
-# CONFIG_EXTCON is not set
+CONFIG_EXTCON=y
+
+#
+# Extcon Device Drivers
+#
+# CONFIG_EXTCON_FSA9480 is not set
+# CONFIG_EXTCON_RT8973A is not set
+# CONFIG_EXTCON_SM5502 is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_NTB is not set
@@ -2757,10 +2854,11 @@
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
+CONFIG_USB_LGM_PHY=y
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
-# CONFIG_PHY_INTEL_EMMC is not set
+# CONFIG_PHY_INTEL_LGM_EMMC is not set
# end of PHY Subsystem
# CONFIG_POWERCAP is not set
@@ -2799,6 +2897,7 @@
# CONFIG_SLIMBUS is not set
# CONFIG_INTERCONNECT is not set
# CONFIG_COUNTER is not set
+# CONFIG_MOST is not set
# end of Device Drivers
#
@@ -2821,6 +2920,7 @@
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
CONFIG_XFS_FS=y
+CONFIG_XFS_SUPPORT_V4=y
CONFIG_XFS_QUOTA=y
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
@@ -2877,7 +2977,7 @@
# end of CD-ROM/DVD Filesystems
#
-# DOS/FAT/NT Filesystems
+# DOS/FAT/EXFAT/NT Filesystems
#
CONFIG_FAT_FS=y
# CONFIG_MSDOS_FS is not set
@@ -2885,8 +2985,9 @@
CONFIG_FAT_DEFAULT_CODEPAGE=437
CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
# CONFIG_FAT_DEFAULT_UTF8 is not set
+# CONFIG_EXFAT_FS is not set
# CONFIG_NTFS_FS is not set
-# end of DOS/FAT/NT Filesystems
+# end of DOS/FAT/EXFAT/NT Filesystems
#
# Pseudo filesystems
@@ -2903,6 +3004,7 @@
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
CONFIG_TMPFS_XATTR=y
+CONFIG_TMPFS_INODE64=y
# CONFIG_HUGETLBFS is not set
CONFIG_MEMFD_CREATE=y
CONFIG_ARCH_HAS_GIGANTIC_PAGE=y
@@ -2942,6 +3044,11 @@
# CONFIG_PSTORE_CONSOLE is not set
# CONFIG_PSTORE_PMSG is not set
# CONFIG_PSTORE_RAM is not set
+CONFIG_PSTORE_ZONE=y
+CONFIG_PSTORE_BLK=y
+CONFIG_PSTORE_BLK_BLKDEV=""
+CONFIG_PSTORE_BLK_KMSG_SIZE=64
+CONFIG_PSTORE_BLK_MAX_REASON=2
# CONFIG_SYSV_FS is not set
# CONFIG_UFS_FS is not set
CONFIG_EROFS_FS=y
@@ -3058,6 +3165,7 @@
# CONFIG_IMA_APPRAISE is not set
CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
+# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
CONFIG_EVM=y
CONFIG_EVM_ATTR_FSUUID=y
# CONFIG_EVM_ADD_XATTRS is not set
@@ -3124,6 +3232,7 @@
CONFIG_CRYPTO_ECC=y
CONFIG_CRYPTO_ECDH=y
# CONFIG_CRYPTO_ECRDSA is not set
+# CONFIG_CRYPTO_SM2 is not set
CONFIG_CRYPTO_CURVE25519=y
CONFIG_CRYPTO_CURVE25519_X86=y
@@ -3207,8 +3316,6 @@
CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_TI is not set
CONFIG_CRYPTO_AES_NI_INTEL=y
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set
# CONFIG_CRYPTO_CAMELLIA is not set
@@ -3222,17 +3329,14 @@
# CONFIG_CRYPTO_DES is not set
# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set
# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
CONFIG_CRYPTO_CHACHA20=y
CONFIG_CRYPTO_CHACHA20_X86_64=y
-# CONFIG_CRYPTO_SEED is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set
# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set
# CONFIG_CRYPTO_SM4 is not set
-# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_X86_64 is not set
# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set
@@ -3321,6 +3425,7 @@
#
# Library routines
#
+CONFIG_LINEAR_RANGES=y
# CONFIG_PACKING is not set
CONFIG_BITREVERSE=y
CONFIG_GENERIC_STRNCPY_FROM_USER=y
@@ -3328,11 +3433,13 @@
CONFIG_GENERIC_NET_UTILS=y
CONFIG_GENERIC_FIND_FIRST_BIT=y
# CONFIG_CORDIC is not set
+# CONFIG_PRIME_NUMBERS is not set
CONFIG_RATIONAL=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
+CONFIG_ARCH_USE_SYM_ANNOTATIONS=y
# CONFIG_CRC_CCITT is not set
CONFIG_CRC16=y
CONFIG_CRC_T10DIF=y
@@ -3365,6 +3472,7 @@
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_LZ4=y
+CONFIG_DECOMPRESS_ZSTD=y
CONFIG_GENERIC_ALLOCATOR=y
CONFIG_REED_SOLOMON=y
CONFIG_REED_SOLOMON_DEC8=y
@@ -3373,11 +3481,13 @@
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
CONFIG_HAS_DMA=y
+CONFIG_DMA_OPS=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_ARCH_HAS_FORCE_DMA_UNENCRYPTED=y
CONFIG_SWIOTLB=y
+CONFIG_DMA_COHERENT_POOL=y
# CONFIG_DMA_API_DEBUG is not set
CONFIG_SGL_ALLOC=y
CONFIG_CPU_RMAP=y
@@ -3401,12 +3511,14 @@
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_MEMREGION=y
CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y
-CONFIG_ARCH_HAS_UACCESS_MCSAFE=y
+CONFIG_ARCH_HAS_COPY_MC=y
CONFIG_ARCH_STACKWALK=y
CONFIG_SBITMAP=y
# CONFIG_STRING_SELFTEST is not set
# end of Library routines
+CONFIG_PLDMFW=y
+
#
# Kernel hacking
#
@@ -3420,6 +3532,8 @@
CONFIG_CONSOLE_LOGLEVEL_QUIET=4
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
# CONFIG_BOOT_PRINTK_DELAY is not set
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DYNAMIC_DEBUG_CORE=y
CONFIG_SYMBOLIC_ERRNAME=y
CONFIG_DEBUG_BUGVERBOSE=y
# end of printk and dmesg options
@@ -3433,7 +3547,6 @@
# CONFIG_STRIP_ASM_SYMS is not set
# CONFIG_READABLE_ASM is not set
# CONFIG_HEADERS_INSTALL is not set
-CONFIG_OPTIMIZE_INLINING=y
# CONFIG_DEBUG_SECTION_MISMATCH is not set
CONFIG_SECTION_MISMATCH_WARN_ONLY=y
CONFIG_STACK_VALIDATION=y
@@ -3444,12 +3557,15 @@
# Generic Kernel Debugging Instruments
#
# CONFIG_MAGIC_SYSRQ is not set
-# CONFIG_DEBUG_FS is not set
+CONFIG_DEBUG_FS=y
+CONFIG_DEBUG_FS_ALLOW_ALL=y
+# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set
+# CONFIG_DEBUG_FS_ALLOW_NONE is not set
CONFIG_HAVE_ARCH_KGDB=y
# CONFIG_KGDB is not set
CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
# CONFIG_UBSAN is not set
-CONFIG_UBSAN_ALIGNMENT=y
+CONFIG_HAVE_ARCH_KCSAN=y
# end of Generic Kernel Debugging Instruments
CONFIG_DEBUG_KERNEL=y
@@ -3463,8 +3579,11 @@
# CONFIG_PAGE_OWNER is not set
# CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_RODATA_TEST is not set
+CONFIG_ARCH_HAS_DEBUG_WX=y
+CONFIG_DEBUG_WX=y
CONFIG_GENERIC_PTDUMP=y
CONFIG_PTDUMP_CORE=y
+# CONFIG_PTDUMP_DEBUGFS is not set
# CONFIG_DEBUG_OBJECTS is not set
# CONFIG_SLUB_DEBUG_ON is not set
# CONFIG_SLUB_STATS is not set
@@ -3472,7 +3591,9 @@
# CONFIG_DEBUG_KMEMLEAK is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_SCHED_STACK_END_CHECK is not set
+CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y
# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_VM_PGTABLE is not set
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
# CONFIG_DEBUG_VIRTUAL is not set
CONFIG_DEBUG_MEMORY_INIT=y
@@ -3480,8 +3601,8 @@
CONFIG_HAVE_ARCH_KASAN=y
CONFIG_HAVE_ARCH_KASAN_VMALLOC=y
CONFIG_CC_HAS_KASAN_GENERIC=y
+CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y
# CONFIG_KASAN is not set
-CONFIG_KASAN_STACK=1
# end of Memory Debugging
# CONFIG_DEBUG_SHIRQ is not set
@@ -3533,6 +3654,8 @@
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not set
+# CONFIG_SCF_TORTURE_TEST is not set
+# CONFIG_CSD_LOCK_WAIT_DEBUG is not set
# end of Lock Debugging (spinlocks, mutexes, etc...)
CONFIG_STACKTRACE=y
@@ -3554,8 +3677,9 @@
#
# RCU Debugging
#
-# CONFIG_RCU_PERF_TEST is not set
+# CONFIG_RCU_SCALE_TEST is not set
# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_REF_SCALE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=21
CONFIG_RCU_TRACE=y
# CONFIG_RCU_EQS_DEBUG is not set
@@ -3581,18 +3705,18 @@
# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
# CONFIG_SAMPLES is not set
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
+# CONFIG_STRICT_DEVMEM is not set
#
# x86 Debugging
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y
CONFIG_X86_VERBOSE_BOOTUP=y
CONFIG_EARLY_PRINTK=y
# CONFIG_EARLY_PRINTK_DBGP is not set
# CONFIG_EARLY_PRINTK_USB_XDBC is not set
# CONFIG_EFI_PGT_DUMP is not set
-CONFIG_DEBUG_WX=y
-CONFIG_DOUBLEFAULT=y
# CONFIG_DEBUG_TLBFLUSH is not set
CONFIG_HAVE_MMIOTRACE_SUPPORT=y
# CONFIG_X86_DECODER_SELFTEST is not set
@@ -3600,6 +3724,7 @@
# CONFIG_IO_DELAY_0XED is not set
# CONFIG_IO_DELAY_UDELAY is not set
CONFIG_IO_DELAY_NONE=y
+# CONFIG_DEBUG_BOOT_PARAMS is not set
# CONFIG_CPA_DEBUG is not set
# CONFIG_DEBUG_ENTRY is not set
# CONFIG_DEBUG_NMI_SELFTEST is not set
@@ -3619,7 +3744,9 @@
CONFIG_CC_HAS_SANCOV_TRACE_PC=y
# CONFIG_KCOV is not set
CONFIG_RUNTIME_TESTING_MENU=y
+# CONFIG_LKDTM is not set
# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_TEST_MIN_HEAP is not set
# CONFIG_TEST_SORT is not set
# CONFIG_BACKTRACE_SELF_TEST is not set
# CONFIG_RBTREE_TEST is not set
@@ -3632,7 +3759,6 @@
# CONFIG_TEST_KSTRTOX is not set
# CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_BITMAP is not set
-# CONFIG_TEST_BITFIELD is not set
# CONFIG_TEST_UUID is not set
# CONFIG_TEST_XARRAY is not set
# CONFIG_TEST_OVERFLOW is not set
@@ -3646,6 +3772,9 @@
# CONFIG_TEST_MEMCAT_P is not set
# CONFIG_TEST_STACKINIT is not set
# CONFIG_TEST_MEMINIT is not set
+# CONFIG_TEST_FREE_PAGES is not set
+# CONFIG_TEST_FPU is not set
# CONFIG_MEMTEST is not set
+# CONFIG_HYPERV_TESTING is not set
# end of Kernel Testing and Coverage
# end of Kernel hacking