Update to v6.10 kernel headers.

Kernel headers coming from:

Git: https://android.googlesource.com/kernel/common/
Branch: android-mainline
Tag: android-mainline-6.10

Test: Builds and bionic unit tests pass on raven.
Test: Able to log in to an Android GO 32 bit device.
Change-Id: Ic444690472155421388fdc76dfd1e84834efac63
diff --git a/libc/include/bits/glibc-syscalls.h b/libc/include/bits/glibc-syscalls.h
index eceb334..7b171e8 100644
--- a/libc/include/bits/glibc-syscalls.h
+++ b/libc/include/bits/glibc-syscalls.h
@@ -693,6 +693,9 @@
 #if defined(__NR_mremap)
   #define SYS_mremap __NR_mremap
 #endif
+#if defined(__NR_mseal)
+  #define SYS_mseal __NR_mseal
+#endif
 #if defined(__NR_msgctl)
   #define SYS_msgctl __NR_msgctl
 #endif
diff --git a/libc/kernel/android/scsi/scsi/scsi.h b/libc/kernel/android/scsi/scsi/scsi.h
index 3559028..4efeada 100644
--- a/libc/kernel/android/scsi/scsi/scsi.h
+++ b/libc/kernel/android/scsi/scsi/scsi.h
@@ -7,6 +7,7 @@
 #ifndef _SCSI_SCSI_H
 #define _SCSI_SCSI_H
 #include <linux/types.h>
+#include <asm/param.h>
 #include <scsi/scsi_proto.h>
 #include <scsi/scsi_status.h>
 struct ccs_modesel_head {
diff --git a/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h b/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
index 1032131..9c4e459 100644
--- a/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
+++ b/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
@@ -420,4 +420,5 @@
 #define __NR_lsm_get_self_attr (__NR_SYSCALL_BASE + 459)
 #define __NR_lsm_set_self_attr (__NR_SYSCALL_BASE + 460)
 #define __NR_lsm_list_modules (__NR_SYSCALL_BASE + 461)
+#define __NR_mseal (__NR_SYSCALL_BASE + 462)
 #endif
diff --git a/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h b/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
index 1f57604..5060c2f 100644
--- a/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
+++ b/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
@@ -432,4 +432,5 @@
 #define __NR_lsm_get_self_attr (__NR_SYSCALL_BASE + 459)
 #define __NR_lsm_set_self_attr (__NR_SYSCALL_BASE + 460)
 #define __NR_lsm_list_modules (__NR_SYSCALL_BASE + 461)
+#define __NR_mseal (__NR_SYSCALL_BASE + 462)
 #endif
diff --git a/libc/kernel/uapi/asm-generic/unistd.h b/libc/kernel/uapi/asm-generic/unistd.h
index c882751..7eaa89a 100644
--- a/libc/kernel/uapi/asm-generic/unistd.h
+++ b/libc/kernel/uapi/asm-generic/unistd.h
@@ -412,8 +412,9 @@
 #define __NR_lsm_get_self_attr 459
 #define __NR_lsm_set_self_attr 460
 #define __NR_lsm_list_modules 461
+#define __NR_mseal 462
 #undef __NR_syscalls
-#define __NR_syscalls 462
+#define __NR_syscalls 463
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/libc/kernel/uapi/asm-riscv/asm/hwprobe.h b/libc/kernel/uapi/asm-riscv/asm/hwprobe.h
index 5c82561..3f30c88 100644
--- a/libc/kernel/uapi/asm-riscv/asm/hwprobe.h
+++ b/libc/kernel/uapi/asm-riscv/asm/hwprobe.h
@@ -53,6 +53,7 @@
 #define RISCV_HWPROBE_EXT_ZTSO (1ULL << 33)
 #define RISCV_HWPROBE_EXT_ZACAS (1ULL << 34)
 #define RISCV_HWPROBE_EXT_ZICOND (1ULL << 35)
+#define RISCV_HWPROBE_EXT_ZIHINTPAUSE (1ULL << 36)
 #define RISCV_HWPROBE_KEY_CPUPERF_0 5
 #define RISCV_HWPROBE_MISALIGNED_UNKNOWN (0 << 0)
 #define RISCV_HWPROBE_MISALIGNED_EMULATED (1 << 0)
diff --git a/libc/kernel/uapi/asm-riscv/asm/kvm.h b/libc/kernel/uapi/asm-riscv/asm/kvm.h
index 4c759ed..12d8f61 100644
--- a/libc/kernel/uapi/asm-riscv/asm/kvm.h
+++ b/libc/kernel/uapi/asm-riscv/asm/kvm.h
@@ -127,6 +127,7 @@
   KVM_RISCV_ISA_EXT_ZFA,
   KVM_RISCV_ISA_EXT_ZTSO,
   KVM_RISCV_ISA_EXT_ZACAS,
+  KVM_RISCV_ISA_EXT_SSCOFPMF,
   KVM_RISCV_ISA_EXT_MAX,
 };
 enum KVM_RISCV_SBI_EXT_ID {
diff --git a/libc/kernel/uapi/asm-x86/asm/kvm.h b/libc/kernel/uapi/asm-x86/asm/kvm.h
index 440ffb8..17b1c5d 100644
--- a/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -353,7 +353,10 @@
 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
 #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
+#define KVM_X86_GRP_SYSTEM 0
 #define KVM_X86_XCOMP_GUEST_SUPP 0
+#define KVM_X86_GRP_SEV 1
+#define KVM_X86_SEV_VMSA_FEATURES 0
 struct kvm_vmx_nested_state_data {
   __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
   __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -528,6 +531,7 @@
   KVM_SEV_CERT_EXPORT,
   KVM_SEV_GET_ATTESTATION_REPORT,
   KVM_SEV_SEND_CANCEL,
+  KVM_SEV_INIT2,
   KVM_SEV_NR_MAX,
 };
 struct kvm_sev_cmd {
@@ -537,6 +541,13 @@
   __u32 error;
   __u32 sev_fd;
 };
+struct kvm_sev_init {
+  __u64 vmsa_features;
+  __u32 flags;
+  __u16 ghcb_version;
+  __u16 pad1;
+  __u32 pad2[8];
+};
 struct kvm_sev_launch_start {
   __u32 handle;
   __u32 policy;
@@ -654,4 +665,6 @@
 #define KVM_EXIT_HYPERCALL_LONG_MODE _BITULL(0)
 #define KVM_X86_DEFAULT_VM 0
 #define KVM_X86_SW_PROTECTED_VM 1
+#define KVM_X86_SEV_VM 2
+#define KVM_X86_SEV_ES_VM 3
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/libc/kernel/uapi/asm-x86/asm/unistd_32.h
index 72076fd..59c693d 100644
--- a/libc/kernel/uapi/asm-x86/asm/unistd_32.h
+++ b/libc/kernel/uapi/asm-x86/asm/unistd_32.h
@@ -457,4 +457,5 @@
 #define __NR_lsm_get_self_attr 459
 #define __NR_lsm_set_self_attr 460
 #define __NR_lsm_list_modules 461
+#define __NR_mseal 462
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/libc/kernel/uapi/asm-x86/asm/unistd_64.h
index 8c4f76e..5dd666c 100644
--- a/libc/kernel/uapi/asm-x86/asm/unistd_64.h
+++ b/libc/kernel/uapi/asm-x86/asm/unistd_64.h
@@ -379,4 +379,5 @@
 #define __NR_lsm_get_self_attr 459
 #define __NR_lsm_set_self_attr 460
 #define __NR_lsm_list_modules 461
+#define __NR_mseal 462
 #endif
diff --git a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
index 984cfca..a2ff6f4 100644
--- a/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
+++ b/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
@@ -323,6 +323,7 @@
 #define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
 #define __NR_cachestat (__X32_SYSCALL_BIT + 451)
 #define __NR_fchmodat2 (__X32_SYSCALL_BIT + 452)
+#define __NR_map_shadow_stack (__X32_SYSCALL_BIT + 453)
 #define __NR_futex_wake (__X32_SYSCALL_BIT + 454)
 #define __NR_futex_wait (__X32_SYSCALL_BIT + 455)
 #define __NR_futex_requeue (__X32_SYSCALL_BIT + 456)
@@ -331,6 +332,7 @@
 #define __NR_lsm_get_self_attr (__X32_SYSCALL_BIT + 459)
 #define __NR_lsm_set_self_attr (__X32_SYSCALL_BIT + 460)
 #define __NR_lsm_list_modules (__X32_SYSCALL_BIT + 461)
+#define __NR_mseal (__X32_SYSCALL_BIT + 462)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
diff --git a/libc/kernel/uapi/drm/drm_mode.h b/libc/kernel/uapi/drm/drm_mode.h
index 9e6296c..8fccdaf 100644
--- a/libc/kernel/uapi/drm/drm_mode.h
+++ b/libc/kernel/uapi/drm/drm_mode.h
@@ -366,6 +366,10 @@
   __u16 blue;
   __u16 reserved;
 };
+struct drm_plane_size_hint {
+  __u16 width;
+  __u16 height;
+};
 struct hdr_metadata_infoframe {
   __u8 eotf;
   __u8 metadata_type;
diff --git a/libc/kernel/uapi/drm/i915_drm.h b/libc/kernel/uapi/drm/i915_drm.h
index 0738cee..13eda7c 100644
--- a/libc/kernel/uapi/drm/i915_drm.h
+++ b/libc/kernel/uapi/drm/i915_drm.h
@@ -365,6 +365,7 @@
 #define I915_PARAM_HAS_USERPTR_PROBE 56
 #define I915_PARAM_OA_TIMESTAMP_FREQUENCY 57
 #define I915_PARAM_PXP_STATUS 58
+#define I915_PARAM_HAS_CONTEXT_FREQ_HINT 59
 struct drm_i915_getparam {
   __s32 param;
   int  * value;
@@ -743,6 +744,7 @@
 #define I915_CONTEXT_PARAM_PERSISTENCE 0xb
 #define I915_CONTEXT_PARAM_RINGSIZE 0xc
 #define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
+#define I915_CONTEXT_PARAM_LOW_LATENCY 0xe
   __u64 value;
 };
 struct drm_i915_gem_context_param_sseu {
diff --git a/libc/kernel/uapi/drm/nouveau_drm.h b/libc/kernel/uapi/drm/nouveau_drm.h
index f7d870e..01897af 100644
--- a/libc/kernel/uapi/drm/nouveau_drm.h
+++ b/libc/kernel/uapi/drm/nouveau_drm.h
@@ -25,10 +25,16 @@
 #define NOUVEAU_GETPARAM_EXEC_PUSH_MAX 17
 #define NOUVEAU_GETPARAM_VRAM_BAR_SIZE 18
 #define NOUVEAU_GETPARAM_VRAM_USED 19
+#define NOUVEAU_GETPARAM_HAS_VMA_TILEMODE 20
 struct drm_nouveau_getparam {
   __u64 param;
   __u64 value;
 };
+#define NOUVEAU_FIFO_ENGINE_GR 0x01
+#define NOUVEAU_FIFO_ENGINE_VP 0x02
+#define NOUVEAU_FIFO_ENGINE_PPP 0x04
+#define NOUVEAU_FIFO_ENGINE_BSP 0x08
+#define NOUVEAU_FIFO_ENGINE_CE 0x30
 struct drm_nouveau_channel_alloc {
   __u32 fb_ctxdma_handle;
   __u32 tt_ctxdma_handle;
@@ -44,6 +50,16 @@
 struct drm_nouveau_channel_free {
   __s32 channel;
 };
+struct drm_nouveau_notifierobj_alloc {
+  __u32 channel;
+  __u32 handle;
+  __u32 size;
+  __u32 offset;
+};
+struct drm_nouveau_gpuobj_free {
+  __s32 channel;
+  __u32 handle;
+};
 #define NOUVEAU_GEM_DOMAIN_CPU (1 << 0)
 #define NOUVEAU_GEM_DOMAIN_VRAM (1 << 1)
 #define NOUVEAU_GEM_DOMAIN_GART (1 << 2)
diff --git a/libc/kernel/uapi/drm/panthor_drm.h b/libc/kernel/uapi/drm/panthor_drm.h
new file mode 100644
index 0000000..b45c1dc
--- /dev/null
+++ b/libc/kernel/uapi/drm/panthor_drm.h
@@ -0,0 +1,240 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _PANTHOR_DRM_H_
+#define _PANTHOR_DRM_H_
+#include "drm.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+#define DRM_PANTHOR_USER_MMIO_OFFSET_32BIT (1ull << 43)
+#define DRM_PANTHOR_USER_MMIO_OFFSET_64BIT (1ull << 56)
+#define DRM_PANTHOR_USER_MMIO_OFFSET (sizeof(unsigned long) < 8 ? DRM_PANTHOR_USER_MMIO_OFFSET_32BIT : DRM_PANTHOR_USER_MMIO_OFFSET_64BIT)
+#define DRM_PANTHOR_USER_FLUSH_ID_MMIO_OFFSET (DRM_PANTHOR_USER_MMIO_OFFSET | 0)
+enum drm_panthor_ioctl_id {
+  DRM_PANTHOR_DEV_QUERY = 0,
+  DRM_PANTHOR_VM_CREATE,
+  DRM_PANTHOR_VM_DESTROY,
+  DRM_PANTHOR_VM_BIND,
+  DRM_PANTHOR_VM_GET_STATE,
+  DRM_PANTHOR_BO_CREATE,
+  DRM_PANTHOR_BO_MMAP_OFFSET,
+  DRM_PANTHOR_GROUP_CREATE,
+  DRM_PANTHOR_GROUP_DESTROY,
+  DRM_PANTHOR_GROUP_SUBMIT,
+  DRM_PANTHOR_GROUP_GET_STATE,
+  DRM_PANTHOR_TILER_HEAP_CREATE,
+  DRM_PANTHOR_TILER_HEAP_DESTROY,
+};
+#define DRM_IOCTL_PANTHOR(__access,__id,__type) DRM_IO ##__access(DRM_COMMAND_BASE + DRM_PANTHOR_ ##__id, struct drm_panthor_ ##__type)
+#define DRM_IOCTL_PANTHOR_DEV_QUERY DRM_IOCTL_PANTHOR(WR, DEV_QUERY, dev_query)
+#define DRM_IOCTL_PANTHOR_VM_CREATE DRM_IOCTL_PANTHOR(WR, VM_CREATE, vm_create)
+#define DRM_IOCTL_PANTHOR_VM_DESTROY DRM_IOCTL_PANTHOR(WR, VM_DESTROY, vm_destroy)
+#define DRM_IOCTL_PANTHOR_VM_BIND DRM_IOCTL_PANTHOR(WR, VM_BIND, vm_bind)
+#define DRM_IOCTL_PANTHOR_VM_GET_STATE DRM_IOCTL_PANTHOR(WR, VM_GET_STATE, vm_get_state)
+#define DRM_IOCTL_PANTHOR_BO_CREATE DRM_IOCTL_PANTHOR(WR, BO_CREATE, bo_create)
+#define DRM_IOCTL_PANTHOR_BO_MMAP_OFFSET DRM_IOCTL_PANTHOR(WR, BO_MMAP_OFFSET, bo_mmap_offset)
+#define DRM_IOCTL_PANTHOR_GROUP_CREATE DRM_IOCTL_PANTHOR(WR, GROUP_CREATE, group_create)
+#define DRM_IOCTL_PANTHOR_GROUP_DESTROY DRM_IOCTL_PANTHOR(WR, GROUP_DESTROY, group_destroy)
+#define DRM_IOCTL_PANTHOR_GROUP_SUBMIT DRM_IOCTL_PANTHOR(WR, GROUP_SUBMIT, group_submit)
+#define DRM_IOCTL_PANTHOR_GROUP_GET_STATE DRM_IOCTL_PANTHOR(WR, GROUP_GET_STATE, group_get_state)
+#define DRM_IOCTL_PANTHOR_TILER_HEAP_CREATE DRM_IOCTL_PANTHOR(WR, TILER_HEAP_CREATE, tiler_heap_create)
+#define DRM_IOCTL_PANTHOR_TILER_HEAP_DESTROY DRM_IOCTL_PANTHOR(WR, TILER_HEAP_DESTROY, tiler_heap_destroy)
+struct drm_panthor_obj_array {
+  __u32 stride;
+  __u32 count;
+  __u64 array;
+};
+#define DRM_PANTHOR_OBJ_ARRAY(cnt,ptr) {.stride = sizeof((ptr)[0]),.count = (cnt),.array = (__u64) (uintptr_t) (ptr) }
+enum drm_panthor_sync_op_flags {
+  DRM_PANTHOR_SYNC_OP_HANDLE_TYPE_MASK = 0xff,
+  DRM_PANTHOR_SYNC_OP_HANDLE_TYPE_SYNCOBJ = 0,
+  DRM_PANTHOR_SYNC_OP_HANDLE_TYPE_TIMELINE_SYNCOBJ = 1,
+  DRM_PANTHOR_SYNC_OP_WAIT = 0 << 31,
+  DRM_PANTHOR_SYNC_OP_SIGNAL = (int) (1u << 31),
+};
+struct drm_panthor_sync_op {
+  __u32 flags;
+  __u32 handle;
+  __u64 timeline_value;
+};
+enum drm_panthor_dev_query_type {
+  DRM_PANTHOR_DEV_QUERY_GPU_INFO = 0,
+  DRM_PANTHOR_DEV_QUERY_CSIF_INFO,
+};
+struct drm_panthor_gpu_info {
+  __u32 gpu_id;
+#define DRM_PANTHOR_ARCH_MAJOR(x) ((x) >> 28)
+#define DRM_PANTHOR_ARCH_MINOR(x) (((x) >> 24) & 0xf)
+#define DRM_PANTHOR_ARCH_REV(x) (((x) >> 20) & 0xf)
+#define DRM_PANTHOR_PRODUCT_MAJOR(x) (((x) >> 16) & 0xf)
+#define DRM_PANTHOR_VERSION_MAJOR(x) (((x) >> 12) & 0xf)
+#define DRM_PANTHOR_VERSION_MINOR(x) (((x) >> 4) & 0xff)
+#define DRM_PANTHOR_VERSION_STATUS(x) ((x) & 0xf)
+  __u32 gpu_rev;
+  __u32 csf_id;
+#define DRM_PANTHOR_CSHW_MAJOR(x) (((x) >> 26) & 0x3f)
+#define DRM_PANTHOR_CSHW_MINOR(x) (((x) >> 20) & 0x3f)
+#define DRM_PANTHOR_CSHW_REV(x) (((x) >> 16) & 0xf)
+#define DRM_PANTHOR_MCU_MAJOR(x) (((x) >> 10) & 0x3f)
+#define DRM_PANTHOR_MCU_MINOR(x) (((x) >> 4) & 0x3f)
+#define DRM_PANTHOR_MCU_REV(x) ((x) & 0xf)
+  __u32 l2_features;
+  __u32 tiler_features;
+  __u32 mem_features;
+  __u32 mmu_features;
+#define DRM_PANTHOR_MMU_VA_BITS(x) ((x) & 0xff)
+  __u32 thread_features;
+  __u32 max_threads;
+  __u32 thread_max_workgroup_size;
+  __u32 thread_max_barrier_size;
+  __u32 coherency_features;
+  __u32 texture_features[4];
+  __u32 as_present;
+  __u64 shader_present;
+  __u64 l2_present;
+  __u64 tiler_present;
+  __u32 core_features;
+  __u32 pad;
+};
+struct drm_panthor_csif_info {
+  __u32 csg_slot_count;
+  __u32 cs_slot_count;
+  __u32 cs_reg_count;
+  __u32 scoreboard_slot_count;
+  __u32 unpreserved_cs_reg_count;
+  __u32 pad;
+};
+struct drm_panthor_dev_query {
+  __u32 type;
+  __u32 size;
+  __u64 pointer;
+};
+struct drm_panthor_vm_create {
+  __u32 flags;
+  __u32 id;
+  __u64 user_va_range;
+};
+struct drm_panthor_vm_destroy {
+  __u32 id;
+  __u32 pad;
+};
+enum drm_panthor_vm_bind_op_flags {
+  DRM_PANTHOR_VM_BIND_OP_MAP_READONLY = 1 << 0,
+  DRM_PANTHOR_VM_BIND_OP_MAP_NOEXEC = 1 << 1,
+  DRM_PANTHOR_VM_BIND_OP_MAP_UNCACHED = 1 << 2,
+  DRM_PANTHOR_VM_BIND_OP_TYPE_MASK = (int) (0xfu << 28),
+  DRM_PANTHOR_VM_BIND_OP_TYPE_MAP = 0 << 28,
+  DRM_PANTHOR_VM_BIND_OP_TYPE_UNMAP = 1 << 28,
+  DRM_PANTHOR_VM_BIND_OP_TYPE_SYNC_ONLY = 2 << 28,
+};
+struct drm_panthor_vm_bind_op {
+  __u32 flags;
+  __u32 bo_handle;
+  __u64 bo_offset;
+  __u64 va;
+  __u64 size;
+  struct drm_panthor_obj_array syncs;
+};
+enum drm_panthor_vm_bind_flags {
+  DRM_PANTHOR_VM_BIND_ASYNC = 1 << 0,
+};
+struct drm_panthor_vm_bind {
+  __u32 vm_id;
+  __u32 flags;
+  struct drm_panthor_obj_array ops;
+};
+enum drm_panthor_vm_state {
+  DRM_PANTHOR_VM_STATE_USABLE,
+  DRM_PANTHOR_VM_STATE_UNUSABLE,
+};
+struct drm_panthor_vm_get_state {
+  __u32 vm_id;
+  __u32 state;
+};
+enum drm_panthor_bo_flags {
+  DRM_PANTHOR_BO_NO_MMAP = (1 << 0),
+};
+struct drm_panthor_bo_create {
+  __u64 size;
+  __u32 flags;
+  __u32 exclusive_vm_id;
+  __u32 handle;
+  __u32 pad;
+};
+struct drm_panthor_bo_mmap_offset {
+  __u32 handle;
+  __u32 pad;
+  __u64 offset;
+};
+struct drm_panthor_queue_create {
+  __u8 priority;
+  __u8 pad[3];
+  __u32 ringbuf_size;
+};
+enum drm_panthor_group_priority {
+  PANTHOR_GROUP_PRIORITY_LOW = 0,
+  PANTHOR_GROUP_PRIORITY_MEDIUM,
+  PANTHOR_GROUP_PRIORITY_HIGH,
+};
+struct drm_panthor_group_create {
+  struct drm_panthor_obj_array queues;
+  __u8 max_compute_cores;
+  __u8 max_fragment_cores;
+  __u8 max_tiler_cores;
+  __u8 priority;
+  __u32 pad;
+  __u64 compute_core_mask;
+  __u64 fragment_core_mask;
+  __u64 tiler_core_mask;
+  __u32 vm_id;
+  __u32 group_handle;
+};
+struct drm_panthor_group_destroy {
+  __u32 group_handle;
+  __u32 pad;
+};
+struct drm_panthor_queue_submit {
+  __u32 queue_index;
+  __u32 stream_size;
+  __u64 stream_addr;
+  __u32 latest_flush;
+  __u32 pad;
+  struct drm_panthor_obj_array syncs;
+};
+struct drm_panthor_group_submit {
+  __u32 group_handle;
+  __u32 pad;
+  struct drm_panthor_obj_array queue_submits;
+};
+enum drm_panthor_group_state_flags {
+  DRM_PANTHOR_GROUP_STATE_TIMEDOUT = 1 << 0,
+  DRM_PANTHOR_GROUP_STATE_FATAL_FAULT = 1 << 1,
+};
+struct drm_panthor_group_get_state {
+  __u32 group_handle;
+  __u32 state;
+  __u32 fatal_queues;
+  __u32 pad;
+};
+struct drm_panthor_tiler_heap_create {
+  __u32 vm_id;
+  __u32 initial_chunk_count;
+  __u32 chunk_size;
+  __u32 max_chunks;
+  __u32 target_in_flight;
+  __u32 handle;
+  __u64 tiler_heap_ctx_gpu_va;
+  __u64 first_heap_chunk_gpu_va;
+};
+struct drm_panthor_tiler_heap_destroy {
+  __u32 handle;
+  __u32 pad;
+};
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/libc/kernel/uapi/drm/xe_drm.h b/libc/kernel/uapi/drm/xe_drm.h
index dd0da6f..d1b6dad 100644
--- a/libc/kernel/uapi/drm/xe_drm.h
+++ b/libc/kernel/uapi/drm/xe_drm.h
@@ -105,7 +105,11 @@
   __u32 reference_clock;
   __u64 near_mem_regions;
   __u64 far_mem_regions;
-  __u64 reserved[8];
+  __u16 ip_ver_major;
+  __u16 ip_ver_minor;
+  __u16 ip_ver_rev;
+  __u16 pad2;
+  __u64 reserved[7];
 };
 struct drm_xe_query_gt_list {
   __u32 num_gt;
@@ -114,9 +118,9 @@
 };
 struct drm_xe_query_topology_mask {
   __u16 gt_id;
-#define DRM_XE_TOPO_DSS_GEOMETRY (1 << 0)
-#define DRM_XE_TOPO_DSS_COMPUTE (1 << 1)
-#define DRM_XE_TOPO_EU_PER_DSS (1 << 2)
+#define DRM_XE_TOPO_DSS_GEOMETRY 1
+#define DRM_XE_TOPO_DSS_COMPUTE 2
+#define DRM_XE_TOPO_EU_PER_DSS 4
   __u16 type;
   __u32 num_bytes;
   __u8 mask[];
@@ -131,6 +135,7 @@
 };
 struct drm_xe_query_uc_fw_version {
 #define XE_QUERY_UC_TYPE_GUC_SUBMISSION 0
+#define XE_QUERY_UC_TYPE_HUC 1
   __u16 uc_type;
   __u16 pad;
   __u32 branch_ver;
@@ -209,6 +214,8 @@
 #define DRM_XE_VM_BIND_OP_UNMAP_ALL 0x3
 #define DRM_XE_VM_BIND_OP_PREFETCH 0x4
   __u32 op;
+#define DRM_XE_VM_BIND_FLAG_READONLY (1 << 0)
+#define DRM_XE_VM_BIND_FLAG_IMMEDIATE (1 << 1)
 #define DRM_XE_VM_BIND_FLAG_NULL (1 << 2)
 #define DRM_XE_VM_BIND_FLAG_DUMPABLE (1 << 3)
   __u32 flags;
diff --git a/libc/kernel/uapi/linux/bpf.h b/libc/kernel/uapi/linux/bpf.h
index 0e9e883..c732920 100644
--- a/libc/kernel/uapi/linux/bpf.h
+++ b/libc/kernel/uapi/linux/bpf.h
@@ -272,6 +272,7 @@
   BPF_CGROUP_UNIX_GETSOCKNAME,
   BPF_NETKIT_PRIMARY,
   BPF_NETKIT_PEER,
+  BPF_TRACE_KPROBE_SESSION,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -290,6 +291,7 @@
   BPF_LINK_TYPE_TCX = 11,
   BPF_LINK_TYPE_UPROBE_MULTI = 12,
   BPF_LINK_TYPE_NETKIT = 13,
+  BPF_LINK_TYPE_SOCKMAP = 14,
   __MAX_BPF_LINK_TYPE,
 };
 #define MAX_BPF_LINK_TYPE __MAX_BPF_LINK_TYPE
@@ -529,6 +531,8 @@
   struct {
     __u64 name;
     __u32 prog_fd;
+    __u32 : 32;
+    __aligned_u64 cookie;
   } raw_tracepoint;
   struct {
     __aligned_u64 btf;
@@ -1150,6 +1154,10 @@
       __u32 ifindex;
       __u32 attach_type;
     } netkit;
+    struct {
+      __u32 map_id;
+      __u32 attach_type;
+    } sockmap;
   };
 } __attribute__((aligned(8)));
 struct bpf_sock_addr {
@@ -1299,6 +1307,7 @@
   BPF_FIB_LOOKUP_SKIP_NEIGH = (1U << 2),
   BPF_FIB_LOOKUP_TBID = (1U << 3),
   BPF_FIB_LOOKUP_SRC = (1U << 4),
+  BPF_FIB_LOOKUP_MARK = (1U << 5),
 };
 enum {
   BPF_FIB_LKUP_RET_SUCCESS,
@@ -1320,7 +1329,7 @@
   union {
     __u16 tot_len;
     __u16 mtu_result;
-  };
+  } __attribute__((packed, aligned(2)));
   __u32 ifindex;
   union {
     __u8 tos;
@@ -1342,8 +1351,15 @@
     };
     __u32 tbid;
   };
-  __u8 smac[6];
-  __u8 dmac[6];
+  union {
+    struct {
+      __u32 mark;
+    };
+    struct {
+      __u8 smac[6];
+      __u8 dmac[6];
+    };
+  };
 };
 struct bpf_redir_neigh {
   __u32 nh_family;
@@ -1415,6 +1431,9 @@
 struct bpf_timer {
   __u64 __opaque[2];
 } __attribute__((aligned(8)));
+struct bpf_wq {
+  __u64 __opaque[2];
+} __attribute__((aligned(8)));
 struct bpf_dynptr {
   __u64 __opaque[2];
 } __attribute__((aligned(8)));
diff --git a/libc/kernel/uapi/linux/cxl_mem.h b/libc/kernel/uapi/linux/cxl_mem.h
index 942e817..abe6573 100644
--- a/libc/kernel/uapi/linux/cxl_mem.h
+++ b/libc/kernel/uapi/linux/cxl_mem.h
@@ -9,7 +9,7 @@
 #include <linux/types.h>
 #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
 #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___DEPRECATED(GET_POISON, "Get Poison List"), ___DEPRECATED(INJECT_POISON, "Inject Poison"), ___DEPRECATED(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___DEPRECATED(SCAN_MEDIA, "Scan Media"), ___DEPRECATED(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(GET_TIMESTAMP, "Get Timestamp"), ___C(MAX, "invalid / last command")
+#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___DEPRECATED(GET_POISON, "Get Poison List"), ___DEPRECATED(INJECT_POISON, "Inject Poison"), ___DEPRECATED(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___DEPRECATED(SCAN_MEDIA, "Scan Media"), ___DEPRECATED(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(GET_TIMESTAMP, "Get Timestamp"), ___C(GET_LOG_CAPS, "Get Log Capabilities"), ___C(CLEAR_LOG, "Clear Log"), ___C(GET_SUP_LOG_SUBLIST, "Get Supported Logs Sub-List"), ___C(MAX, "invalid / last command")
 #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a
 #define ___DEPRECATED(a,b) CXL_MEM_DEPRECATED_ID_ ##a
 enum {
diff --git a/libc/kernel/uapi/linux/devlink.h b/libc/kernel/uapi/linux/devlink.h
index 968d6be..d87c189 100644
--- a/libc/kernel/uapi/linux/devlink.h
+++ b/libc/kernel/uapi/linux/devlink.h
@@ -466,6 +466,7 @@
   DEVLINK_PORT_FN_ATTR_OPSTATE,
   DEVLINK_PORT_FN_ATTR_CAPS,
   DEVLINK_PORT_FN_ATTR_DEVLINK,
+  DEVLINK_PORT_FN_ATTR_MAX_IO_EQS,
   __DEVLINK_PORT_FUNCTION_ATTR_MAX,
   DEVLINK_PORT_FUNCTION_ATTR_MAX = __DEVLINK_PORT_FUNCTION_ATTR_MAX - 1
 };
diff --git a/libc/kernel/uapi/linux/dvb/frontend.h b/libc/kernel/uapi/linux/dvb/frontend.h
index 64e2cae..9428cc0 100644
--- a/libc/kernel/uapi/linux/dvb/frontend.h
+++ b/libc/kernel/uapi/linux/dvb/frontend.h
@@ -341,7 +341,7 @@
   union {
     __u64 uvalue;
     __s64 svalue;
-  };
+  } __attribute__((packed));
 } __attribute__((packed));
 #define MAX_DTV_STATS 4
 struct dtv_fe_stats {
diff --git a/libc/kernel/uapi/linux/ethtool.h b/libc/kernel/uapi/linux/ethtool.h
index 48b4544..334c788 100644
--- a/libc/kernel/uapi/linux/ethtool.h
+++ b/libc/kernel/uapi/linux/ethtool.h
@@ -270,6 +270,25 @@
   ETHTOOL_MODULE_POWER_MODE_LOW = 1,
   ETHTOOL_MODULE_POWER_MODE_HIGH,
 };
+enum ethtool_pse_types {
+  ETHTOOL_PSE_UNKNOWN = 1 << 0,
+  ETHTOOL_PSE_PODL = 1 << 1,
+  ETHTOOL_PSE_C33 = 1 << 2,
+};
+enum ethtool_c33_pse_admin_state {
+  ETHTOOL_C33_PSE_ADMIN_STATE_UNKNOWN = 1,
+  ETHTOOL_C33_PSE_ADMIN_STATE_DISABLED,
+  ETHTOOL_C33_PSE_ADMIN_STATE_ENABLED,
+};
+enum ethtool_c33_pse_pw_d_status {
+  ETHTOOL_C33_PSE_PW_D_STATUS_UNKNOWN = 1,
+  ETHTOOL_C33_PSE_PW_D_STATUS_DISABLED,
+  ETHTOOL_C33_PSE_PW_D_STATUS_SEARCHING,
+  ETHTOOL_C33_PSE_PW_D_STATUS_DELIVERING,
+  ETHTOOL_C33_PSE_PW_D_STATUS_TEST,
+  ETHTOOL_C33_PSE_PW_D_STATUS_FAULT,
+  ETHTOOL_C33_PSE_PW_D_STATUS_OTHERFAULT,
+};
 enum ethtool_podl_pse_admin_state {
   ETHTOOL_PODL_PSE_ADMIN_STATE_UNKNOWN = 1,
   ETHTOOL_PODL_PSE_ADMIN_STATE_DISABLED,
diff --git a/libc/kernel/uapi/linux/ethtool_netlink.h b/libc/kernel/uapi/linux/ethtool_netlink.h
index e4fc40e..6757ef5 100644
--- a/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -103,9 +103,11 @@
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
-#define ETHTOOL_FLAG_COMPACT_BITSETS (1 << 0)
-#define ETHTOOL_FLAG_OMIT_REPLY (1 << 1)
-#define ETHTOOL_FLAG_STATS (1 << 2)
+enum ethtool_header_flags {
+  ETHTOOL_FLAG_COMPACT_BITSETS = 1 << 0,
+  ETHTOOL_FLAG_OMIT_REPLY = 1 << 1,
+  ETHTOOL_FLAG_STATS = 1 << 2,
+};
 #define ETHTOOL_FLAG_ALL (ETHTOOL_FLAG_COMPACT_BITSETS | ETHTOOL_FLAG_OMIT_REPLY | ETHTOOL_FLAG_STATS)
 enum {
   ETHTOOL_A_HEADER_UNSPEC,
@@ -355,10 +357,19 @@
   ETHTOOL_A_TSINFO_TX_TYPES,
   ETHTOOL_A_TSINFO_RX_FILTERS,
   ETHTOOL_A_TSINFO_PHC_INDEX,
+  ETHTOOL_A_TSINFO_STATS,
   __ETHTOOL_A_TSINFO_CNT,
   ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 enum {
+  ETHTOOL_A_TS_STAT_UNSPEC,
+  ETHTOOL_A_TS_STAT_TX_PKTS,
+  ETHTOOL_A_TS_STAT_TX_LOST,
+  ETHTOOL_A_TS_STAT_TX_ERR,
+  __ETHTOOL_A_TS_STAT_CNT,
+  ETHTOOL_A_TS_STAT_MAX = (__ETHTOOL_A_TS_STAT_CNT - 1)
+};
+enum {
   ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
   ETHTOOL_A_PHC_VCLOCKS_HEADER,
   ETHTOOL_A_PHC_VCLOCKS_NUM,
@@ -378,6 +389,7 @@
   ETHTOOL_A_CABLE_RESULT_CODE_OPEN,
   ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT,
   ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT,
+  ETHTOOL_A_CABLE_RESULT_CODE_IMPEDANCE_MISMATCH,
 };
 enum {
   ETHTOOL_A_CABLE_PAIR_A,
@@ -628,6 +640,9 @@
   ETHTOOL_A_PODL_PSE_ADMIN_STATE,
   ETHTOOL_A_PODL_PSE_ADMIN_CONTROL,
   ETHTOOL_A_PODL_PSE_PW_D_STATUS,
+  ETHTOOL_A_C33_PSE_ADMIN_STATE,
+  ETHTOOL_A_C33_PSE_ADMIN_CONTROL,
+  ETHTOOL_A_C33_PSE_PW_D_STATUS,
   __ETHTOOL_A_PSE_CNT,
   ETHTOOL_A_PSE_MAX = (__ETHTOOL_A_PSE_CNT - 1)
 };
diff --git a/libc/kernel/uapi/linux/fcntl.h b/libc/kernel/uapi/linux/fcntl.h
index 0e5c84d..9f32f9f 100644
--- a/libc/kernel/uapi/linux/fcntl.h
+++ b/libc/kernel/uapi/linux/fcntl.h
@@ -10,9 +10,10 @@
 #include <linux/openat2.h>
 #define F_SETLEASE (F_LINUX_SPECIFIC_BASE + 0)
 #define F_GETLEASE (F_LINUX_SPECIFIC_BASE + 1)
+#define F_NOTIFY (F_LINUX_SPECIFIC_BASE + 2)
+#define F_DUPFD_QUERY (F_LINUX_SPECIFIC_BASE + 3)
 #define F_CANCELLK (F_LINUX_SPECIFIC_BASE + 5)
 #define F_DUPFD_CLOEXEC (F_LINUX_SPECIFIC_BASE + 6)
-#define F_NOTIFY (F_LINUX_SPECIFIC_BASE + 2)
 #define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7)
 #define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8)
 #define F_ADD_SEALS (F_LINUX_SPECIFIC_BASE + 9)
diff --git a/libc/kernel/uapi/linux/gtp.h b/libc/kernel/uapi/linux/gtp.h
index c828470..5a8cdde 100644
--- a/libc/kernel/uapi/linux/gtp.h
+++ b/libc/kernel/uapi/linux/gtp.h
@@ -31,6 +31,9 @@
   GTPA_I_TEI,
   GTPA_O_TEI,
   GTPA_PAD,
+  GTPA_PEER_ADDR6,
+  GTPA_MS_ADDR6,
+  GTPA_FAMILY,
   __GTPA_MAX,
 };
 #define GTPA_MAX (__GTPA_MAX - 1)
diff --git a/libc/kernel/uapi/linux/icmpv6.h b/libc/kernel/uapi/linux/icmpv6.h
index 9df18ad..a2ca922 100644
--- a/libc/kernel/uapi/linux/icmpv6.h
+++ b/libc/kernel/uapi/linux/icmpv6.h
@@ -81,6 +81,7 @@
 #define ICMPV6_MOBILE_PREFIX_SOL 146
 #define ICMPV6_MOBILE_PREFIX_ADV 147
 #define ICMPV6_MRDISC_ADV 151
+#define ICMPV6_MRDISC_SOL 152
 #define ICMPV6_MSG_MAX 255
 #define ICMPV6_NOROUTE 0
 #define ICMPV6_ADM_PROHIBITED 1
diff --git a/libc/kernel/uapi/linux/if_link.h b/libc/kernel/uapi/linux/if_link.h
index 397adfe..c2483a2 100644
--- a/libc/kernel/uapi/linux/if_link.h
+++ b/libc/kernel/uapi/linux/if_link.h
@@ -610,6 +610,8 @@
   IFLA_GTP_ROLE,
   IFLA_GTP_CREATE_SOCKETS,
   IFLA_GTP_RESTART_COUNT,
+  IFLA_GTP_LOCAL,
+  IFLA_GTP_LOCAL6,
   __IFLA_GTP_MAX,
 };
 #define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
@@ -845,6 +847,7 @@
   IFLA_HSR_SEQ_NR,
   IFLA_HSR_VERSION,
   IFLA_HSR_PROTOCOL,
+  IFLA_HSR_INTERLINK,
   __IFLA_HSR_MAX,
 };
 #define IFLA_HSR_MAX (__IFLA_HSR_MAX - 1)
diff --git a/libc/kernel/uapi/linux/if_team.h b/libc/kernel/uapi/linux/if_team.h
index b22be7e..9985f63 100644
--- a/libc/kernel/uapi/linux/if_team.h
+++ b/libc/kernel/uapi/linux/if_team.h
@@ -4,30 +4,25 @@
  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
  * for more information.
  */
-#ifndef _UAPI_LINUX_IF_TEAM_H_
-#define _UAPI_LINUX_IF_TEAM_H_
+#ifndef _UAPI_LINUX_IF_TEAM_H
+#define _UAPI_LINUX_IF_TEAM_H
+#define TEAM_GENL_NAME "team"
+#define TEAM_GENL_VERSION 1
 #define TEAM_STRING_MAX_LEN 32
-enum {
-  TEAM_CMD_NOOP,
-  TEAM_CMD_OPTIONS_SET,
-  TEAM_CMD_OPTIONS_GET,
-  TEAM_CMD_PORT_LIST_GET,
-  __TEAM_CMD_MAX,
-  TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1),
-};
+#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
 enum {
   TEAM_ATTR_UNSPEC,
   TEAM_ATTR_TEAM_IFINDEX,
   TEAM_ATTR_LIST_OPTION,
   TEAM_ATTR_LIST_PORT,
   __TEAM_ATTR_MAX,
-  TEAM_ATTR_MAX = __TEAM_ATTR_MAX - 1,
+  TEAM_ATTR_MAX = (__TEAM_ATTR_MAX - 1)
 };
 enum {
   TEAM_ATTR_ITEM_OPTION_UNSPEC,
   TEAM_ATTR_ITEM_OPTION,
   __TEAM_ATTR_ITEM_OPTION_MAX,
-  TEAM_ATTR_ITEM_OPTION_MAX = __TEAM_ATTR_ITEM_OPTION_MAX - 1,
+  TEAM_ATTR_ITEM_OPTION_MAX = (__TEAM_ATTR_ITEM_OPTION_MAX - 1)
 };
 enum {
   TEAM_ATTR_OPTION_UNSPEC,
@@ -39,13 +34,13 @@
   TEAM_ATTR_OPTION_PORT_IFINDEX,
   TEAM_ATTR_OPTION_ARRAY_INDEX,
   __TEAM_ATTR_OPTION_MAX,
-  TEAM_ATTR_OPTION_MAX = __TEAM_ATTR_OPTION_MAX - 1,
+  TEAM_ATTR_OPTION_MAX = (__TEAM_ATTR_OPTION_MAX - 1)
 };
 enum {
   TEAM_ATTR_ITEM_PORT_UNSPEC,
   TEAM_ATTR_ITEM_PORT,
   __TEAM_ATTR_ITEM_PORT_MAX,
-  TEAM_ATTR_ITEM_PORT_MAX = __TEAM_ATTR_ITEM_PORT_MAX - 1,
+  TEAM_ATTR_ITEM_PORT_MAX = (__TEAM_ATTR_ITEM_PORT_MAX - 1)
 };
 enum {
   TEAM_ATTR_PORT_UNSPEC,
@@ -56,9 +51,14 @@
   TEAM_ATTR_PORT_DUPLEX,
   TEAM_ATTR_PORT_REMOVED,
   __TEAM_ATTR_PORT_MAX,
-  TEAM_ATTR_PORT_MAX = __TEAM_ATTR_PORT_MAX - 1,
+  TEAM_ATTR_PORT_MAX = (__TEAM_ATTR_PORT_MAX - 1)
 };
-#define TEAM_GENL_NAME "team"
-#define TEAM_GENL_VERSION 0x1
-#define TEAM_GENL_CHANGE_EVENT_MC_GRP_NAME "change_event"
+enum {
+  TEAM_CMD_NOOP,
+  TEAM_CMD_OPTIONS_SET,
+  TEAM_CMD_OPTIONS_GET,
+  TEAM_CMD_PORT_LIST_GET,
+  __TEAM_CMD_MAX,
+  TEAM_CMD_MAX = (__TEAM_CMD_MAX - 1)
+};
 #endif
diff --git a/libc/kernel/uapi/linux/if_tunnel.h b/libc/kernel/uapi/linux/if_tunnel.h
index e87daf2..fa6825a 100644
--- a/libc/kernel/uapi/linux/if_tunnel.h
+++ b/libc/kernel/uapi/linux/if_tunnel.h
@@ -159,4 +159,26 @@
 #define TUNNEL_ERSPAN_OPT __cpu_to_be16(0x4000)
 #define TUNNEL_GTP_OPT __cpu_to_be16(0x8000)
 #define TUNNEL_OPTIONS_PRESENT (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT | TUNNEL_GTP_OPT)
+enum {
+  IP_TUNNEL_CSUM_BIT = 0U,
+  IP_TUNNEL_ROUTING_BIT,
+  IP_TUNNEL_KEY_BIT,
+  IP_TUNNEL_SEQ_BIT,
+  IP_TUNNEL_STRICT_BIT,
+  IP_TUNNEL_REC_BIT,
+  IP_TUNNEL_VERSION_BIT,
+  IP_TUNNEL_NO_KEY_BIT,
+  IP_TUNNEL_DONT_FRAGMENT_BIT,
+  IP_TUNNEL_OAM_BIT,
+  IP_TUNNEL_CRIT_OPT_BIT,
+  IP_TUNNEL_GENEVE_OPT_BIT,
+  IP_TUNNEL_VXLAN_OPT_BIT,
+  IP_TUNNEL_NOCACHE_BIT,
+  IP_TUNNEL_ERSPAN_OPT_BIT,
+  IP_TUNNEL_GTP_OPT_BIT,
+  IP_TUNNEL_VTI_BIT,
+  IP_TUNNEL_SIT_ISATAP_BIT = IP_TUNNEL_VTI_BIT,
+  IP_TUNNEL_PFCP_OPT_BIT,
+  __IP_TUNNEL_FLAG_NUM,
+};
 #endif
diff --git a/libc/kernel/uapi/linux/input-event-codes.h b/libc/kernel/uapi/linux/input-event-codes.h
index 0fe5a14..4f93d5e 100644
--- a/libc/kernel/uapi/linux/input-event-codes.h
+++ b/libc/kernel/uapi/linux/input-event-codes.h
@@ -543,6 +543,8 @@
 #define KEY_CAMERA_ACCESS_ENABLE 0x24b
 #define KEY_CAMERA_ACCESS_DISABLE 0x24c
 #define KEY_CAMERA_ACCESS_TOGGLE 0x24d
+#define KEY_ACCESSIBILITY 0x24e
+#define KEY_DO_NOT_DISTURB 0x24f
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/libc/kernel/uapi/linux/io_uring.h b/libc/kernel/uapi/linux/io_uring.h
index 10936f2..5505963 100644
--- a/libc/kernel/uapi/linux/io_uring.h
+++ b/libc/kernel/uapi/linux/io_uring.h
@@ -59,6 +59,7 @@
     __u32 waitid_flags;
     __u32 futex_flags;
     __u32 install_fd_flags;
+    __u32 nop_flags;
   };
   __u64 user_data;
   union {
@@ -85,7 +86,7 @@
   };
 };
 #define IORING_FILE_INDEX_ALLOC (~0U)
-enum {
+enum io_uring_sqe_flags_bit {
   IOSQE_FIXED_FILE_BIT,
   IOSQE_IO_DRAIN_BIT,
   IOSQE_IO_LINK_BIT,
@@ -204,15 +205,19 @@
 #define IORING_RECV_MULTISHOT (1U << 1)
 #define IORING_RECVSEND_FIXED_BUF (1U << 2)
 #define IORING_SEND_ZC_REPORT_USAGE (1U << 3)
+#define IORING_RECVSEND_BUNDLE (1U << 4)
 #define IORING_NOTIF_USAGE_ZC_COPIED (1U << 31)
 #define IORING_ACCEPT_MULTISHOT (1U << 0)
-enum {
+#define IORING_ACCEPT_DONTWAIT (1U << 1)
+#define IORING_ACCEPT_POLL_FIRST (1U << 2)
+enum io_uring_msg_ring_flags {
   IORING_MSG_DATA,
   IORING_MSG_SEND_FD,
 };
 #define IORING_MSG_RING_CQE_SKIP (1U << 0)
 #define IORING_MSG_RING_FLAGS_PASS (1U << 1)
 #define IORING_FIXED_FD_NO_CLOEXEC (1U << 0)
+#define IORING_NOP_INJECT_RESULT (1U << 0)
 struct io_uring_cqe {
   __u64 user_data;
   __s32 res;
@@ -223,9 +228,7 @@
 #define IORING_CQE_F_MORE (1U << 1)
 #define IORING_CQE_F_SOCK_NONEMPTY (1U << 2)
 #define IORING_CQE_F_NOTIF (1U << 3)
-enum {
-  IORING_CQE_BUFFER_SHIFT = 16,
-};
+#define IORING_CQE_BUFFER_SHIFT 16
 #define IORING_OFF_SQ_RING 0ULL
 #define IORING_OFF_CQ_RING 0x8000000ULL
 #define IORING_OFF_SQES 0x10000000ULL
@@ -289,7 +292,8 @@
 #define IORING_FEAT_CQE_SKIP (1U << 11)
 #define IORING_FEAT_LINKED_FILE (1U << 12)
 #define IORING_FEAT_REG_REG_RING (1U << 13)
-enum {
+#define IORING_FEAT_RECVSEND_BUNDLE (1U << 14)
+enum io_uring_register_op {
   IORING_REGISTER_BUFFERS = 0,
   IORING_UNREGISTER_BUFFERS = 1,
   IORING_REGISTER_FILES = 2,
@@ -322,7 +326,7 @@
   IORING_REGISTER_LAST,
   IORING_REGISTER_USE_REGISTERED_RING = 1U << 31
 };
-enum {
+enum io_wq_type {
   IO_WQ_BOUND,
   IO_WQ_UNBOUND,
 };
@@ -394,7 +398,7 @@
     __DECLARE_FLEX_ARRAY(struct io_uring_buf, bufs);
   };
 };
-enum {
+enum io_uring_register_pbuf_ring_flags {
   IOU_PBUF_RING_MMAP = 1,
 };
 struct io_uring_buf_reg {
@@ -415,7 +419,7 @@
   __u8 pad[3];
   __u64 resv;
 };
-enum {
+enum io_uring_register_restriction_op {
   IORING_RESTRICTION_REGISTER_OP = 0,
   IORING_RESTRICTION_SQE_OP = 1,
   IORING_RESTRICTION_SQE_FLAGS_ALLOWED = 2,
@@ -448,7 +452,7 @@
   __u32 payloadlen;
   __u32 flags;
 };
-enum {
+enum io_uring_socket_op {
   SOCKET_URING_OP_SIOCINQ = 0,
   SOCKET_URING_OP_SIOCOUTQ,
   SOCKET_URING_OP_GETSOCKOPT,
diff --git a/libc/kernel/uapi/linux/iommu.h b/libc/kernel/uapi/linux/iommu.h
deleted file mode 100644
index 3a7bf82..0000000
--- a/libc/kernel/uapi/linux/iommu.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * This file is auto-generated. Modifications will be lost.
- *
- * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
- * for more information.
- */
-#ifndef _UAPI_IOMMU_H
-#define _UAPI_IOMMU_H
-#include <linux/types.h>
-#define IOMMU_FAULT_PERM_READ (1 << 0)
-#define IOMMU_FAULT_PERM_WRITE (1 << 1)
-#define IOMMU_FAULT_PERM_EXEC (1 << 2)
-#define IOMMU_FAULT_PERM_PRIV (1 << 3)
-enum iommu_fault_type {
-  IOMMU_FAULT_DMA_UNRECOV = 1,
-  IOMMU_FAULT_PAGE_REQ,
-};
-enum iommu_fault_reason {
-  IOMMU_FAULT_REASON_UNKNOWN = 0,
-  IOMMU_FAULT_REASON_PASID_FETCH,
-  IOMMU_FAULT_REASON_BAD_PASID_ENTRY,
-  IOMMU_FAULT_REASON_PASID_INVALID,
-  IOMMU_FAULT_REASON_WALK_EABT,
-  IOMMU_FAULT_REASON_PTE_FETCH,
-  IOMMU_FAULT_REASON_PERMISSION,
-  IOMMU_FAULT_REASON_ACCESS,
-  IOMMU_FAULT_REASON_OOR_ADDRESS,
-};
-struct iommu_fault_unrecoverable {
-  __u32 reason;
-#define IOMMU_FAULT_UNRECOV_PASID_VALID (1 << 0)
-#define IOMMU_FAULT_UNRECOV_ADDR_VALID (1 << 1)
-#define IOMMU_FAULT_UNRECOV_FETCH_ADDR_VALID (1 << 2)
-  __u32 flags;
-  __u32 pasid;
-  __u32 perm;
-  __u64 addr;
-  __u64 fetch_addr;
-};
-struct iommu_fault_page_request {
-#define IOMMU_FAULT_PAGE_REQUEST_PASID_VALID (1 << 0)
-#define IOMMU_FAULT_PAGE_REQUEST_LAST_PAGE (1 << 1)
-#define IOMMU_FAULT_PAGE_REQUEST_PRIV_DATA (1 << 2)
-#define IOMMU_FAULT_PAGE_RESPONSE_NEEDS_PASID (1 << 3)
-  __u32 flags;
-  __u32 pasid;
-  __u32 grpid;
-  __u32 perm;
-  __u64 addr;
-  __u64 private_data[2];
-};
-struct iommu_fault {
-  __u32 type;
-  __u32 padding;
-  union {
-    struct iommu_fault_unrecoverable event;
-    struct iommu_fault_page_request prm;
-    __u8 padding2[56];
-  };
-};
-enum iommu_page_response_code {
-  IOMMU_PAGE_RESP_SUCCESS = 0,
-  IOMMU_PAGE_RESP_INVALID,
-  IOMMU_PAGE_RESP_FAILURE,
-};
-struct iommu_page_response {
-  __u32 argsz;
-#define IOMMU_PAGE_RESP_VERSION_1 1
-  __u32 version;
-#define IOMMU_PAGE_RESP_PASID_VALID (1 << 0)
-  __u32 flags;
-  __u32 pasid;
-  __u32 grpid;
-  __u32 code;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/kexec.h b/libc/kernel/uapi/linux/kexec.h
index c5c8623..d34f065 100644
--- a/libc/kernel/uapi/linux/kexec.h
+++ b/libc/kernel/uapi/linux/kexec.h
@@ -10,6 +10,7 @@
 #define KEXEC_ON_CRASH 0x00000001
 #define KEXEC_PRESERVE_CONTEXT 0x00000002
 #define KEXEC_UPDATE_ELFCOREHDR 0x00000004
+#define KEXEC_CRASH_HOTPLUG_SUPPORT 0x00000008
 #define KEXEC_ARCH_MASK 0xffff0000
 #define KEXEC_FILE_UNLOAD 0x00000001
 #define KEXEC_FILE_ON_CRASH 0x00000002
diff --git a/libc/kernel/uapi/linux/landlock.h b/libc/kernel/uapi/linux/landlock.h
index 75d3037..f903ae6 100644
--- a/libc/kernel/uapi/linux/landlock.h
+++ b/libc/kernel/uapi/linux/landlock.h
@@ -39,6 +39,7 @@
 #define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
 #define LANDLOCK_ACCESS_FS_REFER (1ULL << 13)
 #define LANDLOCK_ACCESS_FS_TRUNCATE (1ULL << 14)
+#define LANDLOCK_ACCESS_FS_IOCTL_DEV (1ULL << 15)
 #define LANDLOCK_ACCESS_NET_BIND_TCP (1ULL << 0)
 #define LANDLOCK_ACCESS_NET_CONNECT_TCP (1ULL << 1)
 #endif
diff --git a/libc/kernel/uapi/linux/magic.h b/libc/kernel/uapi/linux/magic.h
index 4d24726..5f2a2a2 100644
--- a/libc/kernel/uapi/linux/magic.h
+++ b/libc/kernel/uapi/linux/magic.h
@@ -41,6 +41,7 @@
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC 0x794c7630
 #define FUSE_SUPER_MAGIC 0x65735546
+#define BCACHEFS_SUPER_MAGIC 0xca451a4e
 #define MINIX_SUPER_MAGIC 0x137F
 #define MINIX_SUPER_MAGIC2 0x138F
 #define MINIX2_SUPER_MAGIC 0x2468
diff --git a/libc/kernel/uapi/linux/media-bus-format.h b/libc/kernel/uapi/linux/media-bus-format.h
index 230bfbb..cb36554 100644
--- a/libc/kernel/uapi/linux/media-bus-format.h
+++ b/libc/kernel/uapi/linux/media-bus-format.h
@@ -126,4 +126,11 @@
 #define MEDIA_BUS_FMT_S5C_UYVY_JPEG_1X8 0x5001
 #define MEDIA_BUS_FMT_AHSV8888_1X32 0x6001
 #define MEDIA_BUS_FMT_METADATA_FIXED 0x7001
+#define MEDIA_BUS_FMT_META_8 0x8001
+#define MEDIA_BUS_FMT_META_10 0x8002
+#define MEDIA_BUS_FMT_META_12 0x8003
+#define MEDIA_BUS_FMT_META_14 0x8004
+#define MEDIA_BUS_FMT_META_16 0x8005
+#define MEDIA_BUS_FMT_META_20 0x8006
+#define MEDIA_BUS_FMT_META_24 0x8007
 #endif
diff --git a/libc/kernel/uapi/linux/mptcp.h b/libc/kernel/uapi/linux/mptcp.h
index 3c9ba5e..03d3691 100644
--- a/libc/kernel/uapi/linux/mptcp.h
+++ b/libc/kernel/uapi/linux/mptcp.h
@@ -53,6 +53,10 @@
   __u64 mptcpi_bytes_received;
   __u64 mptcpi_bytes_acked;
   __u8 mptcpi_subflows_total;
+  __u8 reserved[3];
+  __u32 mptcpi_last_data_sent;
+  __u32 mptcpi_last_data_recv;
+  __u32 mptcpi_last_ack_recv;
 };
 #define MPTCP_RST_EUNSPEC 0
 #define MPTCP_RST_EMPTCP 1
diff --git a/libc/kernel/uapi/linux/netdev.h b/libc/kernel/uapi/linux/netdev.h
index cbfe26a..b084297 100644
--- a/libc/kernel/uapi/linux/netdev.h
+++ b/libc/kernel/uapi/linux/netdev.h
@@ -96,6 +96,28 @@
   NETDEV_A_QSTATS_TX_PACKETS,
   NETDEV_A_QSTATS_TX_BYTES,
   NETDEV_A_QSTATS_RX_ALLOC_FAIL,
+  NETDEV_A_QSTATS_RX_HW_DROPS,
+  NETDEV_A_QSTATS_RX_HW_DROP_OVERRUNS,
+  NETDEV_A_QSTATS_RX_CSUM_COMPLETE,
+  NETDEV_A_QSTATS_RX_CSUM_UNNECESSARY,
+  NETDEV_A_QSTATS_RX_CSUM_NONE,
+  NETDEV_A_QSTATS_RX_CSUM_BAD,
+  NETDEV_A_QSTATS_RX_HW_GRO_PACKETS,
+  NETDEV_A_QSTATS_RX_HW_GRO_BYTES,
+  NETDEV_A_QSTATS_RX_HW_GRO_WIRE_PACKETS,
+  NETDEV_A_QSTATS_RX_HW_GRO_WIRE_BYTES,
+  NETDEV_A_QSTATS_RX_HW_DROP_RATELIMITS,
+  NETDEV_A_QSTATS_TX_HW_DROPS,
+  NETDEV_A_QSTATS_TX_HW_DROP_ERRORS,
+  NETDEV_A_QSTATS_TX_CSUM_NONE,
+  NETDEV_A_QSTATS_TX_NEEDS_CSUM,
+  NETDEV_A_QSTATS_TX_HW_GSO_PACKETS,
+  NETDEV_A_QSTATS_TX_HW_GSO_BYTES,
+  NETDEV_A_QSTATS_TX_HW_GSO_WIRE_PACKETS,
+  NETDEV_A_QSTATS_TX_HW_GSO_WIRE_BYTES,
+  NETDEV_A_QSTATS_TX_HW_DROP_RATELIMITS,
+  NETDEV_A_QSTATS_TX_STOP,
+  NETDEV_A_QSTATS_TX_WAKE,
   __NETDEV_A_QSTATS_MAX,
   NETDEV_A_QSTATS_MAX = (__NETDEV_A_QSTATS_MAX - 1)
 };
diff --git a/libc/kernel/uapi/linux/nfs.h b/libc/kernel/uapi/linux/nfs.h
index 710e8ca..7b18f1f 100644
--- a/libc/kernel/uapi/linux/nfs.h
+++ b/libc/kernel/uapi/linux/nfs.h
@@ -47,7 +47,6 @@
   NFSERR_NOSPC = 28,
   NFSERR_ROFS = 30,
   NFSERR_MLINK = 31,
-  NFSERR_OPNOTSUPP = 45,
   NFSERR_NAMETOOLONG = 63,
   NFSERR_NOTEMPTY = 66,
   NFSERR_DQUOT = 69,
diff --git a/libc/kernel/uapi/linux/nfsd_netlink.h b/libc/kernel/uapi/linux/nfsd_netlink.h
index dd3d570..45cb504 100644
--- a/libc/kernel/uapi/linux/nfsd_netlink.h
+++ b/libc/kernel/uapi/linux/nfsd_netlink.h
@@ -27,7 +27,44 @@
   NFSD_A_RPC_STATUS_MAX = (__NFSD_A_RPC_STATUS_MAX - 1)
 };
 enum {
+  NFSD_A_SERVER_THREADS = 1,
+  NFSD_A_SERVER_GRACETIME,
+  NFSD_A_SERVER_LEASETIME,
+  NFSD_A_SERVER_SCOPE,
+  __NFSD_A_SERVER_MAX,
+  NFSD_A_SERVER_MAX = (__NFSD_A_SERVER_MAX - 1)
+};
+enum {
+  NFSD_A_VERSION_MAJOR = 1,
+  NFSD_A_VERSION_MINOR,
+  NFSD_A_VERSION_ENABLED,
+  __NFSD_A_VERSION_MAX,
+  NFSD_A_VERSION_MAX = (__NFSD_A_VERSION_MAX - 1)
+};
+enum {
+  NFSD_A_SERVER_PROTO_VERSION = 1,
+  __NFSD_A_SERVER_PROTO_MAX,
+  NFSD_A_SERVER_PROTO_MAX = (__NFSD_A_SERVER_PROTO_MAX - 1)
+};
+enum {
+  NFSD_A_SOCK_ADDR = 1,
+  NFSD_A_SOCK_TRANSPORT_NAME,
+  __NFSD_A_SOCK_MAX,
+  NFSD_A_SOCK_MAX = (__NFSD_A_SOCK_MAX - 1)
+};
+enum {
+  NFSD_A_SERVER_SOCK_ADDR = 1,
+  __NFSD_A_SERVER_SOCK_MAX,
+  NFSD_A_SERVER_SOCK_MAX = (__NFSD_A_SERVER_SOCK_MAX - 1)
+};
+enum {
   NFSD_CMD_RPC_STATUS_GET = 1,
+  NFSD_CMD_THREADS_SET,
+  NFSD_CMD_THREADS_GET,
+  NFSD_CMD_VERSION_SET,
+  NFSD_CMD_VERSION_GET,
+  NFSD_CMD_LISTENER_SET,
+  NFSD_CMD_LISTENER_GET,
   __NFSD_CMD_MAX,
   NFSD_CMD_MAX = (__NFSD_CMD_MAX - 1)
 };
diff --git a/libc/kernel/uapi/linux/nl80211.h b/libc/kernel/uapi/linux/nl80211.h
index ddf2b3b..98180c2 100644
--- a/libc/kernel/uapi/linux/nl80211.h
+++ b/libc/kernel/uapi/linux/nl80211.h
@@ -1423,7 +1423,7 @@
   NUM_NL80211_PLINK_STATES,
   MAX_NL80211_PLINK_STATES = NUM_NL80211_PLINK_STATES - 1
 };
-enum plink_actions {
+enum nl80211_plink_action {
   NL80211_PLINK_ACTION_NO_ACTION,
   NL80211_PLINK_ACTION_OPEN,
   NL80211_PLINK_ACTION_BLOCK,
diff --git a/libc/kernel/uapi/linux/ntsync.h b/libc/kernel/uapi/linux/ntsync.h
new file mode 100644
index 0000000..857b31b
--- /dev/null
+++ b/libc/kernel/uapi/linux/ntsync.h
@@ -0,0 +1,17 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef __LINUX_NTSYNC_H
+#define __LINUX_NTSYNC_H
+#include <linux/types.h>
+struct ntsync_sem_args {
+  __u32 sem;
+  __u32 count;
+  __u32 max;
+};
+#define NTSYNC_IOC_CREATE_SEM _IOWR('N', 0x80, struct ntsync_sem_args)
+#define NTSYNC_IOC_SEM_POST _IOWR('N', 0x81, __u32)
+#endif
diff --git a/libc/kernel/uapi/linux/papr_pdsm.h b/libc/kernel/uapi/linux/papr_pdsm.h
new file mode 100644
index 0000000..f466caa
--- /dev/null
+++ b/libc/kernel/uapi/linux/papr_pdsm.h
@@ -0,0 +1,64 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _UAPI_ASM_POWERPC_PAPR_PDSM_H_
+#define _UAPI_ASM_POWERPC_PAPR_PDSM_H_
+#include <linux/types.h>
+#include <linux/ndctl.h>
+#define ND_PDSM_PAYLOAD_MAX_SIZE 184
+#define ND_PDSM_HDR_SIZE (sizeof(struct nd_pkg_pdsm) - ND_PDSM_PAYLOAD_MAX_SIZE)
+#define PAPR_PDSM_DIMM_HEALTHY 0
+#define PAPR_PDSM_DIMM_UNHEALTHY 1
+#define PAPR_PDSM_DIMM_CRITICAL 2
+#define PAPR_PDSM_DIMM_FATAL 3
+#define PDSM_DIMM_HEALTH_RUN_GAUGE_VALID 1
+#define PDSM_DIMM_DSC_VALID 2
+struct nd_papr_pdsm_health {
+  union {
+    struct {
+      __u32 extension_flags;
+      __u8 dimm_unarmed;
+      __u8 dimm_bad_shutdown;
+      __u8 dimm_bad_restore;
+      __u8 dimm_scrubbed;
+      __u8 dimm_locked;
+      __u8 dimm_encrypted;
+      __u16 dimm_health;
+      __u16 dimm_fuel_gauge;
+      __u64 dimm_dsc;
+    };
+    __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE];
+  };
+};
+#define PDSM_SMART_INJECT_HEALTH_FATAL (1 << 0)
+#define PDSM_SMART_INJECT_BAD_SHUTDOWN (1 << 1)
+struct nd_papr_pdsm_smart_inject {
+  union {
+    struct {
+      __u32 flags;
+      __u8 fatal_enable;
+      __u8 unsafe_shutdown_enable;
+    };
+    __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE];
+  };
+};
+enum papr_pdsm {
+  PAPR_PDSM_MIN = 0x0,
+  PAPR_PDSM_HEALTH,
+  PAPR_PDSM_SMART_INJECT,
+  PAPR_PDSM_MAX,
+};
+union nd_pdsm_payload {
+  struct nd_papr_pdsm_health health;
+  struct nd_papr_pdsm_smart_inject smart_inject;
+  __u8 buf[ND_PDSM_PAYLOAD_MAX_SIZE];
+} __attribute__((__packed__));
+struct nd_pkg_pdsm {
+  __s32 cmd_status;
+  __u16 reserved[2];
+  union nd_pdsm_payload payload;
+} __attribute__((__packed__));
+#endif
diff --git a/libc/kernel/uapi/linux/pci_regs.h b/libc/kernel/uapi/linux/pci_regs.h
index e26392b..703d398 100644
--- a/libc/kernel/uapi/linux/pci_regs.h
+++ b/libc/kernel/uapi/linux/pci_regs.h
@@ -963,7 +963,11 @@
 #define PCI_DOE_DATA_OBJECT_HEADER_1_TYPE 0x00ff0000
 #define PCI_DOE_DATA_OBJECT_HEADER_2_LENGTH 0x0003ffff
 #define PCI_DOE_DATA_OBJECT_DISC_REQ_3_INDEX 0x000000ff
+#define PCI_DOE_DATA_OBJECT_DISC_REQ_3_VER 0x0000ff00
 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_VID 0x0000ffff
 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_PROTOCOL 0x00ff0000
 #define PCI_DOE_DATA_OBJECT_DISC_RSP_3_NEXT_INDEX 0xff000000
+#define PCI_DVSEC_CXL_PORT 3
+#define PCI_DVSEC_CXL_PORT_CTL 0x0c
+#define PCI_DVSEC_CXL_PORT_CTL_UNMASK_SBR 0x00000001
 #endif
diff --git a/libc/kernel/uapi/linux/pkt_cls.h b/libc/kernel/uapi/linux/pkt_cls.h
index b402fa6..6b5143c 100644
--- a/libc/kernel/uapi/linux/pkt_cls.h
+++ b/libc/kernel/uapi/linux/pkt_cls.h
@@ -437,6 +437,7 @@
   TCA_FLOWER_KEY_ENC_OPTS_VXLAN,
   TCA_FLOWER_KEY_ENC_OPTS_ERSPAN,
   TCA_FLOWER_KEY_ENC_OPTS_GTP,
+  TCA_FLOWER_KEY_ENC_OPTS_PFCP,
   __TCA_FLOWER_KEY_ENC_OPTS_MAX,
 };
 #define TCA_FLOWER_KEY_ENC_OPTS_MAX (__TCA_FLOWER_KEY_ENC_OPTS_MAX - 1)
@@ -471,6 +472,13 @@
 };
 #define TCA_FLOWER_KEY_ENC_OPT_GTP_MAX (__TCA_FLOWER_KEY_ENC_OPT_GTP_MAX - 1)
 enum {
+  TCA_FLOWER_KEY_ENC_OPT_PFCP_UNSPEC,
+  TCA_FLOWER_KEY_ENC_OPT_PFCP_TYPE,
+  TCA_FLOWER_KEY_ENC_OPT_PFCP_SEID,
+  __TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX,
+};
+#define TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX (__TCA_FLOWER_KEY_ENC_OPT_PFCP_MAX - 1)
+enum {
   TCA_FLOWER_KEY_MPLS_OPTS_UNSPEC,
   TCA_FLOWER_KEY_MPLS_OPTS_LSE,
   __TCA_FLOWER_KEY_MPLS_OPTS_MAX,
diff --git a/libc/kernel/uapi/linux/prctl.h b/libc/kernel/uapi/linux/prctl.h
index 48e100b..136a10f 100644
--- a/libc/kernel/uapi/linux/prctl.h
+++ b/libc/kernel/uapi/linux/prctl.h
@@ -190,4 +190,21 @@
 #define PR_RISCV_V_VSTATE_CTRL_CUR_MASK 0x3
 #define PR_RISCV_V_VSTATE_CTRL_NEXT_MASK 0xc
 #define PR_RISCV_V_VSTATE_CTRL_MASK 0x1f
+#define PR_RISCV_SET_ICACHE_FLUSH_CTX 71
+#define PR_RISCV_CTX_SW_FENCEI_ON 0
+#define PR_RISCV_CTX_SW_FENCEI_OFF 1
+#define PR_RISCV_SCOPE_PER_PROCESS 0
+#define PR_RISCV_SCOPE_PER_THREAD 1
+#define PR_PPC_GET_DEXCR 72
+#define PR_PPC_SET_DEXCR 73
+#define PR_PPC_DEXCR_SBHE 0
+#define PR_PPC_DEXCR_IBRTPD 1
+#define PR_PPC_DEXCR_SRAPD 2
+#define PR_PPC_DEXCR_NPHIE 3
+#define PR_PPC_DEXCR_CTRL_EDITABLE 0x1
+#define PR_PPC_DEXCR_CTRL_SET 0x2
+#define PR_PPC_DEXCR_CTRL_CLEAR 0x4
+#define PR_PPC_DEXCR_CTRL_SET_ONEXEC 0x8
+#define PR_PPC_DEXCR_CTRL_CLEAR_ONEXEC 0x10
+#define PR_PPC_DEXCR_CTRL_MASK 0x1f
 #endif
diff --git a/libc/kernel/uapi/linux/snmp.h b/libc/kernel/uapi/linux/snmp.h
index 2f4c65c..0f72302 100644
--- a/libc/kernel/uapi/linux/snmp.h
+++ b/libc/kernel/uapi/linux/snmp.h
@@ -289,6 +289,8 @@
   LINUX_MIB_XFRMFWDHDRERROR,
   LINUX_MIB_XFRMOUTSTATEINVALID,
   LINUX_MIB_XFRMACQUIREERROR,
+  LINUX_MIB_XFRMOUTSTATEDIRERROR,
+  LINUX_MIB_XFRMINSTATEDIRERROR,
   __LINUX_MIB_XFRMMAX
 };
 enum {
diff --git a/libc/kernel/uapi/linux/stat.h b/libc/kernel/uapi/linux/stat.h
index 9974f3e..ff98fd2 100644
--- a/libc/kernel/uapi/linux/stat.h
+++ b/libc/kernel/uapi/linux/stat.h
@@ -68,7 +68,8 @@
   __u64 stx_mnt_id;
   __u32 stx_dio_mem_align;
   __u32 stx_dio_offset_align;
-  __u64 __spare3[12];
+  __u64 stx_subvol;
+  __u64 __spare3[11];
 };
 #define STATX_TYPE 0x00000001U
 #define STATX_MODE 0x00000002U
@@ -86,6 +87,7 @@
 #define STATX_MNT_ID 0x00001000U
 #define STATX_DIOALIGN 0x00002000U
 #define STATX_MNT_ID_UNIQUE 0x00004000U
+#define STATX_SUBVOL 0x00008000U
 #define STATX__RESERVED 0x80000000U
 #define STATX_ALL 0x00000fffU
 #define STATX_ATTR_COMPRESSED 0x00000004
diff --git a/libc/kernel/uapi/linux/stddef.h b/libc/kernel/uapi/linux/stddef.h
index aa3a694..dc37c6f 100644
--- a/libc/kernel/uapi/linux/stddef.h
+++ b/libc/kernel/uapi/linux/stddef.h
@@ -19,4 +19,10 @@
 #ifndef __counted_by
 #define __counted_by(m)
 #endif
+#ifndef __counted_by_le
+#define __counted_by_le(m)
+#endif
+#ifndef __counted_by_be
+#define __counted_by_be(m)
+#endif
 #endif
diff --git a/libc/kernel/uapi/linux/tcp.h b/libc/kernel/uapi/linux/tcp.h
index cb26f97..c71715c 100644
--- a/libc/kernel/uapi/linux/tcp.h
+++ b/libc/kernel/uapi/linux/tcp.h
@@ -71,6 +71,7 @@
 #define TCP_AO_INFO 40
 #define TCP_AO_GET_KEYS 41
 #define TCP_AO_REPAIR 42
+#define TCP_IS_MPTCP 43
 #define TCP_REPAIR_ON 1
 #define TCP_REPAIR_OFF 0
 #define TCP_REPAIR_OFF_NO_WP - 1
diff --git a/libc/kernel/uapi/linux/tee.h b/libc/kernel/uapi/linux/tee.h
index d4772ee..6e4cff3 100644
--- a/libc/kernel/uapi/linux/tee.h
+++ b/libc/kernel/uapi/linux/tee.h
@@ -18,6 +18,7 @@
 #define TEE_MEMREF_NULL (__u64) (- 1)
 #define TEE_IMPL_ID_OPTEE 1
 #define TEE_IMPL_ID_AMDTEE 2
+#define TEE_IMPL_ID_TSTEE 3
 #define TEE_OPTEE_CAP_TZ (1 << 0)
 struct tee_ioctl_version_data {
   __u32 impl_id;
diff --git a/libc/kernel/uapi/linux/trace_mmap.h b/libc/kernel/uapi/linux/trace_mmap.h
new file mode 100644
index 0000000..e891a7e
--- /dev/null
+++ b/libc/kernel/uapi/linux/trace_mmap.h
@@ -0,0 +1,28 @@
+/*
+ * This file is auto-generated. Modifications will be lost.
+ *
+ * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
+ * for more information.
+ */
+#ifndef _TRACE_MMAP_H_
+#define _TRACE_MMAP_H_
+#include <linux/types.h>
+struct trace_buffer_meta {
+  __u32 meta_page_size;
+  __u32 meta_struct_len;
+  __u32 subbuf_size;
+  __u32 nr_subbufs;
+  struct {
+    __u64 lost_events;
+    __u32 id;
+    __u32 read;
+  } reader;
+  __u64 flags;
+  __u64 entries;
+  __u64 overrun;
+  __u64 read;
+  __u64 Reserved1;
+  __u64 Reserved2;
+};
+#define TRACE_MMAP_IOCTL_GET_READER _IO('R', 0x20)
+#endif
diff --git a/libc/kernel/uapi/linux/v4l2-subdev.h b/libc/kernel/uapi/linux/v4l2-subdev.h
index 9caaa47..b5a0c87 100644
--- a/libc/kernel/uapi/linux/v4l2-subdev.h
+++ b/libc/kernel/uapi/linux/v4l2-subdev.h
@@ -100,9 +100,10 @@
 };
 struct v4l2_subdev_routing {
   __u32 which;
-  __u32 num_routes;
+  __u32 len_routes;
   __u64 routes;
-  __u32 reserved[6];
+  __u32 num_routes;
+  __u32 reserved[11];
 };
 #define V4L2_SUBDEV_CLIENT_CAP_STREAMS (1ULL << 0)
 #define V4L2_SUBDEV_CLIENT_CAP_INTERVAL_USES_WHICH (1ULL << 1)
diff --git a/libc/kernel/uapi/linux/version.h b/libc/kernel/uapi/linux/version.h
index 1563f47..7faa30f 100644
--- a/libc/kernel/uapi/linux/version.h
+++ b/libc/kernel/uapi/linux/version.h
@@ -4,8 +4,8 @@
  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
  * for more information.
  */
-#define LINUX_VERSION_CODE 395520
+#define LINUX_VERSION_CODE 395776
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 6
-#define LINUX_VERSION_PATCHLEVEL 9
+#define LINUX_VERSION_PATCHLEVEL 10
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/libc/kernel/uapi/linux/videodev2.h b/libc/kernel/uapi/linux/videodev2.h
index ed91484..3905949 100644
--- a/libc/kernel/uapi/linux/videodev2.h
+++ b/libc/kernel/uapi/linux/videodev2.h
@@ -249,6 +249,8 @@
 #define V4L2_PIX_FMT_Y10BPACK v4l2_fourcc('Y', '1', '0', 'B')
 #define V4L2_PIX_FMT_Y10P v4l2_fourcc('Y', '1', '0', 'P')
 #define V4L2_PIX_FMT_IPU3_Y10 v4l2_fourcc('i', 'p', '3', 'y')
+#define V4L2_PIX_FMT_Y12P v4l2_fourcc('Y', '1', '2', 'P')
+#define V4L2_PIX_FMT_Y14P v4l2_fourcc('Y', '1', '4', 'P')
 #define V4L2_PIX_FMT_PAL8 v4l2_fourcc('P', 'A', 'L', '8')
 #define V4L2_PIX_FMT_UV8 v4l2_fourcc('U', 'V', '8', ' ')
 #define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V')
@@ -464,6 +466,7 @@
 #define V4L2_FMT_FLAG_CSC_YCBCR_ENC 0x0080
 #define V4L2_FMT_FLAG_CSC_HSV_ENC V4L2_FMT_FLAG_CSC_YCBCR_ENC
 #define V4L2_FMT_FLAG_CSC_QUANTIZATION 0x0100
+#define V4L2_FMT_FLAG_META_LINE_BASED 0x0200
 enum v4l2_frmsizetypes {
   V4L2_FRMSIZE_TYPE_DISCRETE = 1,
   V4L2_FRMSIZE_TYPE_CONTINUOUS = 2,
@@ -563,6 +566,7 @@
 #define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF (1 << 5)
 #define V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS (1 << 6)
 #define V4L2_BUF_CAP_SUPPORTS_MAX_NUM_BUFFERS (1 << 7)
+#define V4L2_BUF_CAP_SUPPORTS_REMOVE_BUFS (1 << 8)
 struct v4l2_plane {
   __u32 bytesused;
   __u32 length;
@@ -936,7 +940,7 @@
     struct v4l2_ctrl_hdr10_cll_info  * p_hdr10_cll_info;
     struct v4l2_ctrl_hdr10_mastering_display  * p_hdr10_mastering_display;
     void  * ptr;
-  };
+  } __attribute__((packed));
 } __attribute__((packed));
 struct v4l2_ext_controls {
   union {
@@ -1311,6 +1315,9 @@
 struct v4l2_meta_format {
   __u32 dataformat;
   __u32 buffersize;
+  __u32 width;
+  __u32 height;
+  __u32 bytesperline;
 } __attribute__((packed));
 struct v4l2_format {
   __u32 type;
@@ -1435,6 +1442,12 @@
   __u32 max_num_buffers;
   __u32 reserved[5];
 };
+struct v4l2_remove_buffers {
+  __u32 index;
+  __u32 count;
+  __u32 type;
+  __u32 reserved[13];
+};
 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
 #define VIDIOC_G_FMT _IOWR('V', 4, struct v4l2_format)
@@ -1517,6 +1530,7 @@
 #define VIDIOC_ENUM_FREQ_BANDS _IOWR('V', 101, struct v4l2_frequency_band)
 #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
 #define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
+#define VIDIOC_REMOVE_BUFS _IOWR('V', 104, struct v4l2_remove_buffers)
 #define BASE_VIDIOC_PRIVATE 192
 #define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
 #define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
diff --git a/libc/kernel/uapi/linux/virtio_bt.h b/libc/kernel/uapi/linux/virtio_bt.h
index 2b790ea..8799b66 100644
--- a/libc/kernel/uapi/linux/virtio_bt.h
+++ b/libc/kernel/uapi/linux/virtio_bt.h
@@ -13,7 +13,6 @@
 #define VIRTIO_BT_F_CONFIG_V2 3
 enum virtio_bt_config_type {
   VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
-  VIRTIO_BT_CONFIG_TYPE_AMP = 1,
 };
 enum virtio_bt_config_vendor {
   VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
diff --git a/libc/kernel/uapi/linux/virtio_mem.h b/libc/kernel/uapi/linux/virtio_mem.h
index e90853e..770623a 100644
--- a/libc/kernel/uapi/linux/virtio_mem.h
+++ b/libc/kernel/uapi/linux/virtio_mem.h
@@ -12,6 +12,7 @@
 #include <linux/virtio_config.h>
 #define VIRTIO_MEM_F_ACPI_PXM 0
 #define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
+#define VIRTIO_MEM_F_PERSISTENT_SUSPEND 2
 #define VIRTIO_MEM_REQ_PLUG 0
 #define VIRTIO_MEM_REQ_UNPLUG 1
 #define VIRTIO_MEM_REQ_UNPLUG_ALL 2
diff --git a/libc/kernel/uapi/linux/virtio_net.h b/libc/kernel/uapi/linux/virtio_net.h
index 7573209..26ff301 100644
--- a/libc/kernel/uapi/linux/virtio_net.h
+++ b/libc/kernel/uapi/linux/virtio_net.h
@@ -33,6 +33,7 @@
 #define VIRTIO_NET_F_GUEST_ANNOUNCE 21
 #define VIRTIO_NET_F_MQ 22
 #define VIRTIO_NET_F_CTRL_MAC_ADDR 23
+#define VIRTIO_NET_F_DEVICE_STATS 50
 #define VIRTIO_NET_F_VQ_NOTF_COAL 52
 #define VIRTIO_NET_F_NOTF_COAL 53
 #define VIRTIO_NET_F_GUEST_USO4 54
@@ -203,4 +204,103 @@
   __le16 reserved;
   struct virtio_net_ctrl_coal coal;
 };
+#define VIRTIO_NET_CTRL_STATS 8
+#define VIRTIO_NET_CTRL_STATS_QUERY 0
+#define VIRTIO_NET_CTRL_STATS_GET 1
+struct virtio_net_stats_capabilities {
+#define VIRTIO_NET_STATS_TYPE_CVQ (1ULL << 32)
+#define VIRTIO_NET_STATS_TYPE_RX_BASIC (1ULL << 0)
+#define VIRTIO_NET_STATS_TYPE_RX_CSUM (1ULL << 1)
+#define VIRTIO_NET_STATS_TYPE_RX_GSO (1ULL << 2)
+#define VIRTIO_NET_STATS_TYPE_RX_SPEED (1ULL << 3)
+#define VIRTIO_NET_STATS_TYPE_TX_BASIC (1ULL << 16)
+#define VIRTIO_NET_STATS_TYPE_TX_CSUM (1ULL << 17)
+#define VIRTIO_NET_STATS_TYPE_TX_GSO (1ULL << 18)
+#define VIRTIO_NET_STATS_TYPE_TX_SPEED (1ULL << 19)
+  __le64 supported_stats_types[1];
+};
+struct virtio_net_ctrl_queue_stats {
+  struct {
+    __le16 vq_index;
+    __le16 reserved[3];
+    __le64 types_bitmap[1];
+  } stats[1];
+};
+struct virtio_net_stats_reply_hdr {
+#define VIRTIO_NET_STATS_TYPE_REPLY_CVQ 32
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_BASIC 0
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_CSUM 1
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_GSO 2
+#define VIRTIO_NET_STATS_TYPE_REPLY_RX_SPEED 3
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_BASIC 16
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_CSUM 17
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_GSO 18
+#define VIRTIO_NET_STATS_TYPE_REPLY_TX_SPEED 19
+  __u8 type;
+  __u8 reserved;
+  __le16 vq_index;
+  __le16 reserved1;
+  __le16 size;
+};
+struct virtio_net_stats_cvq {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 command_num;
+  __le64 ok_num;
+};
+struct virtio_net_stats_rx_basic {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_notifications;
+  __le64 rx_packets;
+  __le64 rx_bytes;
+  __le64 rx_interrupts;
+  __le64 rx_drops;
+  __le64 rx_drop_overruns;
+};
+struct virtio_net_stats_tx_basic {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_notifications;
+  __le64 tx_packets;
+  __le64 tx_bytes;
+  __le64 tx_interrupts;
+  __le64 tx_drops;
+  __le64 tx_drop_malformed;
+};
+struct virtio_net_stats_rx_csum {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_csum_valid;
+  __le64 rx_needs_csum;
+  __le64 rx_csum_none;
+  __le64 rx_csum_bad;
+};
+struct virtio_net_stats_tx_csum {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_csum_none;
+  __le64 tx_needs_csum;
+};
+struct virtio_net_stats_rx_gso {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_gso_packets;
+  __le64 rx_gso_bytes;
+  __le64 rx_gso_packets_coalesced;
+  __le64 rx_gso_bytes_coalesced;
+};
+struct virtio_net_stats_tx_gso {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_gso_packets;
+  __le64 tx_gso_bytes;
+  __le64 tx_gso_segments;
+  __le64 tx_gso_segments_bytes;
+  __le64 tx_gso_packets_noseg;
+  __le64 tx_gso_bytes_noseg;
+};
+struct virtio_net_stats_rx_speed {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 rx_ratelimit_packets;
+  __le64 rx_ratelimit_bytes;
+};
+struct virtio_net_stats_tx_speed {
+  struct virtio_net_stats_reply_hdr hdr;
+  __le64 tx_ratelimit_packets;
+  __le64 tx_ratelimit_bytes;
+};
 #endif
diff --git a/libc/kernel/uapi/linux/xfrm.h b/libc/kernel/uapi/linux/xfrm.h
index e2f168d..b8e79e8 100644
--- a/libc/kernel/uapi/linux/xfrm.h
+++ b/libc/kernel/uapi/linux/xfrm.h
@@ -111,6 +111,10 @@
   XFRM_POLICY_MASK = 3,
   XFRM_POLICY_MAX = 3
 };
+enum xfrm_sa_dir {
+  XFRM_SA_DIR_IN = 1,
+  XFRM_SA_DIR_OUT = 2
+};
 enum {
   XFRM_SHARE_ANY,
   XFRM_SHARE_SESSION,
@@ -255,6 +259,7 @@
   XFRMA_SET_MARK_MASK,
   XFRMA_IF_ID,
   XFRMA_MTIMER_THRESH,
+  XFRMA_SA_DIR,
   __XFRMA_MAX
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
 #define XFRMA_MAX (__XFRMA_MAX - 1)
diff --git a/libc/kernel/uapi/misc/pvpanic.h b/libc/kernel/uapi/misc/pvpanic.h
index bc421ae..8e1be62 100644
--- a/libc/kernel/uapi/misc/pvpanic.h
+++ b/libc/kernel/uapi/misc/pvpanic.h
@@ -6,6 +6,8 @@
  */
 #ifndef __PVPANIC_H__
 #define __PVPANIC_H__
-#define PVPANIC_PANICKED (1 << 0)
-#define PVPANIC_CRASH_LOADED (1 << 1)
+#include <linux/const.h>
+#define PVPANIC_PANICKED _BITUL(0)
+#define PVPANIC_CRASH_LOADED _BITUL(1)
+#define PVPANIC_SHUTDOWN _BITUL(2)
 #endif
diff --git a/libc/kernel/uapi/rdma/efa-abi.h b/libc/kernel/uapi/rdma/efa-abi.h
index 2b30941..d4a9089 100644
--- a/libc/kernel/uapi/rdma/efa-abi.h
+++ b/libc/kernel/uapi/rdma/efa-abi.h
@@ -63,11 +63,16 @@
 enum {
   EFA_QP_DRIVER_TYPE_SRD = 0,
 };
+enum {
+  EFA_CREATE_QP_WITH_UNSOLICITED_WRITE_RECV = 1 << 0,
+};
 struct efa_ibv_create_qp {
   __u32 comp_mask;
   __u32 rq_ring_size;
   __u32 sq_ring_size;
   __u32 driver_qp_type;
+  __u16 flags;
+  __u8 reserved_90[6];
 };
 struct efa_ibv_create_qp_resp {
   __u32 comp_mask;
@@ -95,6 +100,7 @@
   EFA_QUERY_DEVICE_CAPS_CQ_WITH_SGID = 1 << 3,
   EFA_QUERY_DEVICE_CAPS_DATA_POLLING_128 = 1 << 4,
   EFA_QUERY_DEVICE_CAPS_RDMA_WRITE = 1 << 5,
+  EFA_QUERY_DEVICE_CAPS_UNSOLICITED_WRITE_RECV = 1 << 6,
 };
 struct efa_ibv_ex_query_device_resp {
   __u32 comp_mask;
diff --git a/libc/kernel/uapi/rdma/hns-abi.h b/libc/kernel/uapi/rdma/hns-abi.h
index 5b0f700..b76e45c 100644
--- a/libc/kernel/uapi/rdma/hns-abi.h
+++ b/libc/kernel/uapi/rdma/hns-abi.h
@@ -68,6 +68,11 @@
   __aligned_u64 cap_flags;
   __aligned_u64 dwqe_mmap_key;
 };
+struct hns_roce_ib_modify_qp_resp {
+  __u8 tc_mode;
+  __u8 priority;
+  __u8 reserved[6];
+};
 enum {
   HNS_ROCE_EXSGE_FLAGS = 1 << 0,
   HNS_ROCE_RQ_INLINE_FLAGS = 1 << 1,
@@ -97,6 +102,7 @@
 };
 struct hns_roce_ib_create_ah_resp {
   __u8 dmac[6];
-  __u8 reserved[2];
+  __u8 priority;
+  __u8 tc_mode;
 };
 #endif
diff --git a/libc/kernel/uapi/rdma/mana-abi.h b/libc/kernel/uapi/rdma/mana-abi.h
index 73967b4..7347175 100644
--- a/libc/kernel/uapi/rdma/mana-abi.h
+++ b/libc/kernel/uapi/rdma/mana-abi.h
@@ -9,8 +9,18 @@
 #include <linux/types.h>
 #include <rdma/ib_user_ioctl_verbs.h>
 #define MANA_IB_UVERBS_ABI_VERSION 1
+enum mana_ib_create_cq_flags {
+  MANA_IB_CREATE_RNIC_CQ = 1 << 0,
+};
 struct mana_ib_create_cq {
   __aligned_u64 buf_addr;
+  __u16 flags;
+  __u16 reserved0;
+  __u32 reserved1;
+};
+struct mana_ib_create_cq_resp {
+  __u32 cqid;
+  __u32 reserved;
 };
 struct mana_ib_create_qp {
   __aligned_u64 sq_buf_addr;
diff --git a/libc/kernel/uapi/rdma/rdma_netlink.h b/libc/kernel/uapi/rdma/rdma_netlink.h
index 2fe8c30..912a3c0 100644
--- a/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -304,6 +304,8 @@
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC,
   RDMA_NLDEV_SYS_ATTR_PRIVILEGED_QKEY_MODE,
+  RDMA_NLDEV_ATTR_DRIVER_DETAILS,
+  RDMA_NLDEV_ATTR_RES_SUBTYPE,
   RDMA_NLDEV_ATTR_MAX
 };
 enum rdma_nl_counter_mode {
diff --git a/libc/kernel/uapi/sound/asoc.h b/libc/kernel/uapi/sound/asoc.h
index 8718b46..f7992cb 100644
--- a/libc/kernel/uapi/sound/asoc.h
+++ b/libc/kernel/uapi/sound/asoc.h
@@ -336,48 +336,4 @@
   __le32 flags;
   struct snd_soc_tplg_private priv;
 } __attribute__((packed));
-struct snd_soc_tplg_manifest_v4 {
-  __le32 size;
-  __le32 control_elems;
-  __le32 widget_elems;
-  __le32 graph_elems;
-  __le32 pcm_elems;
-  __le32 dai_link_elems;
-  struct snd_soc_tplg_private priv;
-} __attribute__((__packed__));
-struct snd_soc_tplg_stream_caps_v4 {
-  __le32 size;
-  char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-  __le64 formats;
-  __le32 rates;
-  __le32 rate_min;
-  __le32 rate_max;
-  __le32 channels_min;
-  __le32 channels_max;
-  __le32 periods_min;
-  __le32 periods_max;
-  __le32 period_size_min;
-  __le32 period_size_max;
-  __le32 buffer_size_min;
-  __le32 buffer_size_max;
-} __attribute__((__packed__));
-struct snd_soc_tplg_pcm_v4 {
-  __le32 size;
-  char pcm_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-  char dai_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN];
-  __le32 pcm_id;
-  __le32 dai_id;
-  __le32 playback;
-  __le32 capture;
-  __le32 compress;
-  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
-  __le32 num_streams;
-  struct snd_soc_tplg_stream_caps_v4 caps[2];
-} __attribute__((__packed__));
-struct snd_soc_tplg_link_config_v4 {
-  __le32 size;
-  __le32 id;
-  struct snd_soc_tplg_stream stream[SND_SOC_TPLG_STREAM_CONFIG_MAX];
-  __le32 num_streams;
-} __attribute__((__packed__));
 #endif
diff --git a/libc/kernel/uapi/sound/skl-tplg-interface.h b/libc/kernel/uapi/sound/skl-tplg-interface.h
index c620295..d613c7f 100644
--- a/libc/kernel/uapi/sound/skl-tplg-interface.h
+++ b/libc/kernel/uapi/sound/skl-tplg-interface.h
@@ -109,66 +109,4 @@
   SKL_TYPE_TUPLE,
   SKL_TYPE_DATA
 };
-struct skl_dfw_v4_module_pin {
-  __u16 module_id;
-  __u16 instance_id;
-} __attribute__((__packed__));
-struct skl_dfw_v4_module_fmt {
-  __u32 channels;
-  __u32 freq;
-  __u32 bit_depth;
-  __u32 valid_bit_depth;
-  __u32 ch_cfg;
-  __u32 interleaving_style;
-  __u32 sample_type;
-  __u32 ch_map;
-} __attribute__((__packed__));
-struct skl_dfw_v4_module_caps {
-  __u32 set_params : 2;
-  __u32 rsvd : 30;
-  __u32 param_id;
-  __u32 caps_size;
-  __u32 caps[HDA_SST_CFG_MAX];
-} __attribute__((__packed__));
-struct skl_dfw_v4_pipe {
-  __u8 pipe_id;
-  __u8 pipe_priority;
-  __u16 conn_type : 4;
-  __u16 rsvd : 4;
-  __u16 memory_pages : 8;
-} __attribute__((__packed__));
-struct skl_dfw_v4_module {
-  char uuid[SKL_UUID_STR_SZ];
-  __u16 module_id;
-  __u16 instance_id;
-  __u32 max_mcps;
-  __u32 mem_pages;
-  __u32 obs;
-  __u32 ibs;
-  __u32 vbus_id;
-  __u32 max_in_queue : 8;
-  __u32 max_out_queue : 8;
-  __u32 time_slot : 8;
-  __u32 core_id : 4;
-  __u32 rsvd1 : 4;
-  __u32 module_type : 8;
-  __u32 conn_type : 4;
-  __u32 dev_type : 4;
-  __u32 hw_conn_type : 4;
-  __u32 rsvd2 : 12;
-  __u32 params_fixup : 8;
-  __u32 converter : 8;
-  __u32 input_pin_type : 1;
-  __u32 output_pin_type : 1;
-  __u32 is_dynamic_in_pin : 1;
-  __u32 is_dynamic_out_pin : 1;
-  __u32 is_loadable : 1;
-  __u32 rsvd3 : 11;
-  struct skl_dfw_v4_pipe pipe;
-  struct skl_dfw_v4_module_fmt in_fmt[MAX_IN_QUEUE];
-  struct skl_dfw_v4_module_fmt out_fmt[MAX_OUT_QUEUE];
-  struct skl_dfw_v4_module_pin in_pin[MAX_IN_QUEUE];
-  struct skl_dfw_v4_module_pin out_pin[MAX_OUT_QUEUE];
-  struct skl_dfw_v4_module_caps caps;
-} __attribute__((__packed__));
 #endif