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
