Snap for 6227608 from b70fa55697dee030693a7847ac73a72392db5250 to r-keystone-qcom-release

Change-Id: Ib3748b62b37a29012a5a2090e8f420efd90a165d
diff --git a/original/uapi/asm-arm/asm/kvm.h b/original/uapi/asm-arm/asm/kvm.h
index 2769360..03cd7c1 100644
--- a/original/uapi/asm-arm/asm/kvm.h
+++ b/original/uapi/asm-arm/asm/kvm.h
@@ -131,8 +131,9 @@
 	struct {
 		__u8 serror_pending;
 		__u8 serror_has_esr;
+		__u8 ext_dabt_pending;
 		/* Align it to 8 bytes */
-		__u8 pad[6];
+		__u8 pad[5];
 		__u64 serror_esr;
 	} exception;
 	__u32 reserved[12];
diff --git a/original/uapi/asm-arm64/asm/kvm.h b/original/uapi/asm-arm64/asm/kvm.h
index 67c21f9..820e575 100644
--- a/original/uapi/asm-arm64/asm/kvm.h
+++ b/original/uapi/asm-arm64/asm/kvm.h
@@ -164,8 +164,9 @@
 	struct {
 		__u8 serror_pending;
 		__u8 serror_has_esr;
+		__u8 ext_dabt_pending;
 		/* Align it to 8 bytes */
-		__u8 pad[6];
+		__u8 pad[5];
 		__u64 serror_esr;
 	} exception;
 	__u32 reserved[12];
@@ -323,6 +324,8 @@
 #define KVM_ARM_VCPU_TIMER_CTRL		1
 #define   KVM_ARM_VCPU_TIMER_IRQ_VTIMER		0
 #define   KVM_ARM_VCPU_TIMER_IRQ_PTIMER		1
+#define KVM_ARM_VCPU_PVTIME_CTRL	2
+#define   KVM_ARM_VCPU_PVTIME_IPA	0
 
 /* KVM_IRQ_LINE irq field index values */
 #define KVM_ARM_IRQ_VCPU2_SHIFT		28
diff --git a/original/uapi/asm-arm64/asm/unistd.h b/original/uapi/asm-arm64/asm/unistd.h
index 4703d21..f83a70e 100644
--- a/original/uapi/asm-arm64/asm/unistd.h
+++ b/original/uapi/asm-arm64/asm/unistd.h
@@ -19,5 +19,6 @@
 #define __ARCH_WANT_NEW_STAT
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
+#define __ARCH_WANT_SYS_CLONE3
 
 #include <asm-generic/unistd.h>
diff --git a/original/uapi/asm-generic/ipcbuf.h b/original/uapi/asm-generic/ipcbuf.h
index 7d80dbd..41a01b4 100644
--- a/original/uapi/asm-generic/ipcbuf.h
+++ b/original/uapi/asm-generic/ipcbuf.h
@@ -2,6 +2,8 @@
 #ifndef __ASM_GENERIC_IPCBUF_H
 #define __ASM_GENERIC_IPCBUF_H
 
+#include <linux/posix_types.h>
+
 /*
  * The generic ipc64_perm structure:
  * Note extra padding because this structure is passed back and forth
diff --git a/original/uapi/asm-generic/msgbuf.h b/original/uapi/asm-generic/msgbuf.h
index 9fe4881..6504d7b 100644
--- a/original/uapi/asm-generic/msgbuf.h
+++ b/original/uapi/asm-generic/msgbuf.h
@@ -3,6 +3,8 @@
 #define __ASM_GENERIC_MSGBUF_H
 
 #include <asm/bitsperlong.h>
+#include <asm/ipcbuf.h>
+
 /*
  * generic msqid64_ds structure.
  *
@@ -13,9 +15,9 @@
  * everyone just ended up making identical copies without specific
  * optimizations, so we may just as well all use the same one.
  *
- * 64 bit architectures typically define a 64 bit __kernel_time_t,
- * so they do not need the first three padding words.
- * On big-endian systems, the padding is in the wrong place.
+ * 64 bit architectures use a 64-bit long time field here, while
+ * 32 bit architectures have a pair of unsigned long values.
+ * On big-endian systems, the lower half is in the wrong place.
  *
  * Pad space is left for:
  * - 2 miscellaneous 32-bit values
@@ -24,9 +26,9 @@
 struct msqid64_ds {
 	struct ipc64_perm msg_perm;
 #if __BITS_PER_LONG == 64
-	__kernel_time_t msg_stime;	/* last msgsnd time */
-	__kernel_time_t msg_rtime;	/* last msgrcv time */
-	__kernel_time_t msg_ctime;	/* last change time */
+	long		 msg_stime;	/* last msgsnd time */
+	long		 msg_rtime;	/* last msgrcv time */
+	long		 msg_ctime;	/* last change time */
 #else
 	unsigned long	msg_stime;	/* last msgsnd time */
 	unsigned long	msg_stime_high;
diff --git a/original/uapi/asm-generic/posix_types.h b/original/uapi/asm-generic/posix_types.h
index f0733a2..2f9c805 100644
--- a/original/uapi/asm-generic/posix_types.h
+++ b/original/uapi/asm-generic/posix_types.h
@@ -86,6 +86,7 @@
  */
 typedef __kernel_long_t	__kernel_off_t;
 typedef long long	__kernel_loff_t;
+typedef __kernel_long_t	__kernel_old_time_t;
 typedef __kernel_long_t	__kernel_time_t;
 typedef long long __kernel_time64_t;
 typedef __kernel_long_t	__kernel_clock_t;
diff --git a/original/uapi/asm-generic/sembuf.h b/original/uapi/asm-generic/sembuf.h
index 0bae010..0e709bd 100644
--- a/original/uapi/asm-generic/sembuf.h
+++ b/original/uapi/asm-generic/sembuf.h
@@ -3,6 +3,7 @@
 #define __ASM_GENERIC_SEMBUF_H
 
 #include <asm/bitsperlong.h>
+#include <asm/ipcbuf.h>
 
 /*
  * The semid64_ds structure for x86 architecture.
@@ -13,9 +14,8 @@
  * everyone just ended up making identical copies without specific
  * optimizations, so we may just as well all use the same one.
  *
- * 64 bit architectures use a 64-bit __kernel_time_t here, while
+ * 64 bit architectures use a 64-bit long time field here, while
  * 32 bit architectures have a pair of unsigned long values.
- * so they do not need the first two padding words.
  *
  * On big-endian systems, the padding is in the wrong place for
  * historic reasons, so user space has to reconstruct a time_t
@@ -29,8 +29,8 @@
 struct semid64_ds {
 	struct ipc64_perm sem_perm;	/* permissions .. see ipc.h */
 #if __BITS_PER_LONG == 64
-	__kernel_time_t	sem_otime;	/* last semop time */
-	__kernel_time_t	sem_ctime;	/* last change time */
+	long		sem_otime;	/* last semop time */
+	long		sem_ctime;	/* last change time */
 #else
 	unsigned long	sem_otime;	/* last semop time */
 	unsigned long	sem_otime_high;
diff --git a/original/uapi/asm-generic/shmbuf.h b/original/uapi/asm-generic/shmbuf.h
index e504422..2bab955 100644
--- a/original/uapi/asm-generic/shmbuf.h
+++ b/original/uapi/asm-generic/shmbuf.h
@@ -13,9 +13,9 @@
  * everyone just ended up making identical copies without specific
  * optimizations, so we may just as well all use the same one.
  *
- * 64 bit architectures typically define a 64 bit __kernel_time_t,
- * so they do not need the first two padding words.
- * On big-endian systems, the padding is in the wrong place.
+ * 64 bit architectures use a 64-bit long time field here, while
+ * 32 bit architectures have a pair of unsigned long values.
+ * On big-endian systems, the lower half is in the wrong place.
  *
  *
  * Pad space is left for:
@@ -26,9 +26,9 @@
 	struct ipc64_perm	shm_perm;	/* operation perms */
 	size_t			shm_segsz;	/* size of segment (bytes) */
 #if __BITS_PER_LONG == 64
-	__kernel_time_t		shm_atime;	/* last attach time */
-	__kernel_time_t		shm_dtime;	/* last detach time */
-	__kernel_time_t		shm_ctime;	/* last change time */
+	long			shm_atime;	/* last attach time */
+	long			shm_dtime;	/* last detach time */
+	long			shm_ctime;	/* last change time */
 #else
 	unsigned long		shm_atime;	/* last attach time */
 	unsigned long		shm_atime_high;
diff --git a/original/uapi/asm-mips/asm/auxvec.h b/original/uapi/asm-mips/asm/auxvec.h
deleted file mode 100644
index 612c2c4..0000000
--- a/original/uapi/asm-mips/asm/auxvec.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * Copyright (C) 2015 Imagination Technologies
- * Author: Alex Smith <alex.smith@imgtec.com>
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation;  either version 2 of the  License, or (at your
- * option) any later version.
- */
-
-#ifndef __ASM_AUXVEC_H
-#define __ASM_AUXVEC_H
-
-/* Location of VDSO image. */
-#define AT_SYSINFO_EHDR		33
-
-#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
-
-#endif /* __ASM_AUXVEC_H */
diff --git a/original/uapi/asm-mips/asm/bitfield.h b/original/uapi/asm-mips/asm/bitfield.h
deleted file mode 100644
index b11713d..0000000
--- a/original/uapi/asm-mips/asm/bitfield.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2014 by Ralf Baechle <ralf@linux-mips.org>
- */
-#ifndef __UAPI_ASM_BITFIELD_H
-#define __UAPI_ASM_BITFIELD_H
-
-/*
- *  * Damn ...  bitfields depend from byteorder :-(
- *   */
-#ifdef __MIPSEB__
-#define __BITFIELD_FIELD(field, more)					\
-	field;								\
-	more
-
-#elif defined(__MIPSEL__)
-
-#define __BITFIELD_FIELD(field, more)					\
-	more								\
-	field;
-
-#else /* !defined (__MIPSEB__) && !defined (__MIPSEL__) */
-#error "MIPS but neither __MIPSEL__ nor __MIPSEB__?"
-#endif
-
-#endif /* __UAPI_ASM_BITFIELD_H */
diff --git a/original/uapi/asm-mips/asm/bitsperlong.h b/original/uapi/asm-mips/asm/bitsperlong.h
deleted file mode 100644
index 7268380..0000000
--- a/original/uapi/asm-mips/asm/bitsperlong.h
+++ /dev/null
@@ -1,9 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef __ASM_MIPS_BITSPERLONG_H
-#define __ASM_MIPS_BITSPERLONG_H
-
-#define __BITS_PER_LONG _MIPS_SZLONG
-
-#include <asm-generic/bitsperlong.h>
-
-#endif /* __ASM_MIPS_BITSPERLONG_H */
diff --git a/original/uapi/asm-mips/asm/bpf_perf_event.h b/original/uapi/asm-mips/asm/bpf_perf_event.h
deleted file mode 100644
index 3097758..0000000
--- a/original/uapi/asm-mips/asm/bpf_perf_event.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <asm-generic/bpf_perf_event.h>
diff --git a/original/uapi/asm-mips/asm/break.h b/original/uapi/asm-mips/asm/break.h
deleted file mode 100644
index 10380b1..0000000
--- a/original/uapi/asm-mips/asm/break.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 2003 by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- */
-#ifndef __UAPI_ASM_BREAK_H
-#define __UAPI_ASM_BREAK_H
-
-/*
- * The following break codes are or were in use for specific purposes in
- * other MIPS operating systems.  Linux/MIPS doesn't use all of them.  The
- * unused ones are here as placeholders; we might encounter them in
- * non-Linux/MIPS object files or make use of them in the future.
- */
-#define BRK_USERBP	0	/* User bp (used by debuggers) */
-#define BRK_SSTEPBP	5	/* User bp (used by debuggers) */
-#define BRK_OVERFLOW	6	/* Overflow check */
-#define BRK_DIVZERO	7	/* Divide by zero check */
-#define BRK_RANGE	8	/* Range error check */
-#define BRK_BUG		12	/* Used by BUG() */
-#define BRK_UPROBE	13	/* See <asm/uprobes.h> */
-#define BRK_UPROBE_XOL	14	/* See <asm/uprobes.h> */
-#define BRK_MEMU	514	/* Used by FPU emulator */
-#define BRK_KPROBE_BP	515	/* Kprobe break */
-#define BRK_KPROBE_SSTEPBP 516	/* Kprobe single step software implementation */
-#define BRK_MULOVF	1023	/* Multiply overflow */
-
-#endif /* __UAPI_ASM_BREAK_H */
diff --git a/original/uapi/asm-mips/asm/byteorder.h b/original/uapi/asm-mips/asm/byteorder.h
deleted file mode 100644
index b4edc85..0000000
--- a/original/uapi/asm-mips/asm/byteorder.h
+++ /dev/null
@@ -1,20 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996, 99, 2003 by Ralf Baechle
- */
-#ifndef _ASM_BYTEORDER_H
-#define _ASM_BYTEORDER_H
-
-#if defined(__MIPSEB__)
-#include <linux/byteorder/big_endian.h>
-#elif defined(__MIPSEL__)
-#include <linux/byteorder/little_endian.h>
-#else
-# error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???"
-#endif
-
-#endif /* _ASM_BYTEORDER_H */
diff --git a/original/uapi/asm-mips/asm/cachectl.h b/original/uapi/asm-mips/asm/cachectl.h
deleted file mode 100644
index af7639f..0000000
--- a/original/uapi/asm-mips/asm/cachectl.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1994, 1995, 1996 by Ralf Baechle
- */
-#ifndef _ASM_CACHECTL
-#define _ASM_CACHECTL
-
-/*
- * Options for cacheflush system call
- */
-#define ICACHE	(1<<0)		/* flush instruction cache	  */
-#define DCACHE	(1<<1)		/* writeback and flush data cache */
-#define BCACHE	(ICACHE|DCACHE) /* flush both caches		  */
-
-/*
- * Caching modes for the cachectl(2) call
- *
- * cachectl(2) is currently not supported and returns ENOSYS.
- */
-#define CACHEABLE	0	/* make pages cacheable */
-#define UNCACHEABLE	1	/* make pages uncacheable */
-
-#endif	/* _ASM_CACHECTL */
diff --git a/original/uapi/asm-mips/asm/errno.h b/original/uapi/asm-mips/asm/errno.h
deleted file mode 100644
index 2fb714e..0000000
--- a/original/uapi/asm-mips/asm/errno.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 1999, 2001, 2002 by Ralf Baechle
- */
-#ifndef _UAPI_ASM_ERRNO_H
-#define _UAPI_ASM_ERRNO_H
-
-/*
- * These error numbers are intended to be MIPS ABI compatible
- */
-
-#include <asm-generic/errno-base.h>
-
-#define ENOMSG		35	/* No message of desired type */
-#define EIDRM		36	/* Identifier removed */
-#define ECHRNG		37	/* Channel number out of range */
-#define EL2NSYNC	38	/* Level 2 not synchronized */
-#define EL3HLT		39	/* Level 3 halted */
-#define EL3RST		40	/* Level 3 reset */
-#define ELNRNG		41	/* Link number out of range */
-#define EUNATCH		42	/* Protocol driver not attached */
-#define ENOCSI		43	/* No CSI structure available */
-#define EL2HLT		44	/* Level 2 halted */
-#define EDEADLK		45	/* Resource deadlock would occur */
-#define ENOLCK		46	/* No record locks available */
-#define EBADE		50	/* Invalid exchange */
-#define EBADR		51	/* Invalid request descriptor */
-#define EXFULL		52	/* Exchange full */
-#define ENOANO		53	/* No anode */
-#define EBADRQC		54	/* Invalid request code */
-#define EBADSLT		55	/* Invalid slot */
-#define EDEADLOCK	56	/* File locking deadlock error */
-#define EBFONT		59	/* Bad font file format */
-#define ENOSTR		60	/* Device not a stream */
-#define ENODATA		61	/* No data available */
-#define ETIME		62	/* Timer expired */
-#define ENOSR		63	/* Out of streams resources */
-#define ENONET		64	/* Machine is not on the network */
-#define ENOPKG		65	/* Package not installed */
-#define EREMOTE		66	/* Object is remote */
-#define ENOLINK		67	/* Link has been severed */
-#define EADV		68	/* Advertise error */
-#define ESRMNT		69	/* Srmount error */
-#define ECOMM		70	/* Communication error on send */
-#define EPROTO		71	/* Protocol error */
-#define EDOTDOT		73	/* RFS specific error */
-#define EMULTIHOP	74	/* Multihop attempted */
-#define EBADMSG		77	/* Not a data message */
-#define ENAMETOOLONG	78	/* File name too long */
-#define EOVERFLOW	79	/* Value too large for defined data type */
-#define ENOTUNIQ	80	/* Name not unique on network */
-#define EBADFD		81	/* File descriptor in bad state */
-#define EREMCHG		82	/* Remote address changed */
-#define ELIBACC		83	/* Can not access a needed shared library */
-#define ELIBBAD		84	/* Accessing a corrupted shared library */
-#define ELIBSCN		85	/* .lib section in a.out corrupted */
-#define ELIBMAX		86	/* Attempting to link in too many shared libraries */
-#define ELIBEXEC	87	/* Cannot exec a shared library directly */
-#define EILSEQ		88	/* Illegal byte sequence */
-#define ENOSYS		89	/* Function not implemented */
-#define ELOOP		90	/* Too many symbolic links encountered */
-#define ERESTART	91	/* Interrupted system call should be restarted */
-#define ESTRPIPE	92	/* Streams pipe error */
-#define ENOTEMPTY	93	/* Directory not empty */
-#define EUSERS		94	/* Too many users */
-#define ENOTSOCK	95	/* Socket operation on non-socket */
-#define EDESTADDRREQ	96	/* Destination address required */
-#define EMSGSIZE	97	/* Message too long */
-#define EPROTOTYPE	98	/* Protocol wrong type for socket */
-#define ENOPROTOOPT	99	/* Protocol not available */
-#define EPROTONOSUPPORT 120	/* Protocol not supported */
-#define ESOCKTNOSUPPORT 121	/* Socket type not supported */
-#define EOPNOTSUPP	122	/* Operation not supported on transport endpoint */
-#define EPFNOSUPPORT	123	/* Protocol family not supported */
-#define EAFNOSUPPORT	124	/* Address family not supported by protocol */
-#define EADDRINUSE	125	/* Address already in use */
-#define EADDRNOTAVAIL	126	/* Cannot assign requested address */
-#define ENETDOWN	127	/* Network is down */
-#define ENETUNREACH	128	/* Network is unreachable */
-#define ENETRESET	129	/* Network dropped connection because of reset */
-#define ECONNABORTED	130	/* Software caused connection abort */
-#define ECONNRESET	131	/* Connection reset by peer */
-#define ENOBUFS		132	/* No buffer space available */
-#define EISCONN		133	/* Transport endpoint is already connected */
-#define ENOTCONN	134	/* Transport endpoint is not connected */
-#define EUCLEAN		135	/* Structure needs cleaning */
-#define ENOTNAM		137	/* Not a XENIX named type file */
-#define ENAVAIL		138	/* No XENIX semaphores available */
-#define EISNAM		139	/* Is a named type file */
-#define EREMOTEIO	140	/* Remote I/O error */
-#define EINIT		141	/* Reserved */
-#define EREMDEV		142	/* Error 142 */
-#define ESHUTDOWN	143	/* Cannot send after transport endpoint shutdown */
-#define ETOOMANYREFS	144	/* Too many references: cannot splice */
-#define ETIMEDOUT	145	/* Connection timed out */
-#define ECONNREFUSED	146	/* Connection refused */
-#define EHOSTDOWN	147	/* Host is down */
-#define EHOSTUNREACH	148	/* No route to host */
-#define EWOULDBLOCK	EAGAIN	/* Operation would block */
-#define EALREADY	149	/* Operation already in progress */
-#define EINPROGRESS	150	/* Operation now in progress */
-#define ESTALE		151	/* Stale file handle */
-#define ECANCELED	158	/* AIO operation canceled */
-
-/*
- * These error are Linux extensions.
- */
-#define ENOMEDIUM	159	/* No medium found */
-#define EMEDIUMTYPE	160	/* Wrong medium type */
-#define ENOKEY		161	/* Required key not available */
-#define EKEYEXPIRED	162	/* Key has expired */
-#define EKEYREVOKED	163	/* Key has been revoked */
-#define EKEYREJECTED	164	/* Key was rejected by service */
-
-/* for robust mutexes */
-#define EOWNERDEAD	165	/* Owner died */
-#define ENOTRECOVERABLE 166	/* State not recoverable */
-
-#define ERFKILL		167	/* Operation not possible due to RF-kill */
-
-#define EHWPOISON	168	/* Memory page has hardware error */
-
-#define EDQUOT		1133	/* Quota exceeded */
-
-
-#endif /* _UAPI_ASM_ERRNO_H */
diff --git a/original/uapi/asm-mips/asm/fcntl.h b/original/uapi/asm-mips/asm/fcntl.h
deleted file mode 100644
index 42e13de..0000000
--- a/original/uapi/asm-mips/asm/fcntl.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 96, 97, 98, 99, 2003, 05 Ralf Baechle
- */
-#ifndef _UAPI_ASM_FCNTL_H
-#define _UAPI_ASM_FCNTL_H
-
-#include <asm/sgidefs.h>
-
-#define O_APPEND	0x0008
-#define O_DSYNC		0x0010	/* used to be O_SYNC, see below */
-#define O_NONBLOCK	0x0080
-#define O_CREAT		0x0100	/* not fcntl */
-#define O_TRUNC		0x0200	/* not fcntl */
-#define O_EXCL		0x0400	/* not fcntl */
-#define O_NOCTTY	0x0800	/* not fcntl */
-#define FASYNC		0x1000	/* fcntl, for BSD compatibility */
-#define O_LARGEFILE	0x2000	/* allow large file opens */
-/*
- * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
- * the O_SYNC flag.  We continue to use the existing numerical value
- * for O_DSYNC semantics now, but using the correct symbolic name for it.
- * This new value is used to request true Posix O_SYNC semantics.  It is
- * defined in this strange way to make sure applications compiled against
- * new headers get at least O_DSYNC semantics on older kernels.
- *
- * This has the nice side-effect that we can simply test for O_DSYNC
- * wherever we do not care if O_DSYNC or O_SYNC is used.
- *
- * Note: __O_SYNC must never be used directly.
- */
-#define __O_SYNC	0x4000
-#define O_SYNC		(__O_SYNC|O_DSYNC)
-#define O_DIRECT	0x8000	/* direct disk access hint */
-
-#define F_GETLK		14
-#define F_SETLK		6
-#define F_SETLKW	7
-
-#define F_SETOWN	24	/*  for sockets. */
-#define F_GETOWN	23	/*  for sockets. */
-
-#ifndef __mips64
-#define F_GETLK64	33	/*  using 'struct flock64' */
-#define F_SETLK64	34
-#define F_SETLKW64	35
-#endif
-
-/*
- * The flavours of struct flock.  "struct flock" is the ABI compliant
- * variant.  Finally struct flock64 is the LFS variant of struct flock.	 As
- * a historic accident and inconsistence with the ABI definition it doesn't
- * contain all the same fields as struct flock.
- */
-
-#if _MIPS_SIM != _MIPS_SIM_ABI64
-
-#include <linux/types.h>
-
-struct flock {
-	short	l_type;
-	short	l_whence;
-	__kernel_off_t	l_start;
-	__kernel_off_t	l_len;
-	long	l_sysid;
-	__kernel_pid_t l_pid;
-	long	pad[4];
-};
-
-#define HAVE_ARCH_STRUCT_FLOCK
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-
-#include <asm-generic/fcntl.h>
-
-#endif /* _UAPI_ASM_FCNTL_H */
diff --git a/original/uapi/asm-mips/asm/hwcap.h b/original/uapi/asm-mips/asm/hwcap.h
deleted file mode 100644
index 1ade1da..0000000
--- a/original/uapi/asm-mips/asm/hwcap.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_ASM_HWCAP_H
-#define _UAPI_ASM_HWCAP_H
-
-/* HWCAP flags */
-#define HWCAP_MIPS_R6		(1 << 0)
-#define HWCAP_MIPS_MSA		(1 << 1)
-#define HWCAP_MIPS_CRC32	(1 << 2)
-#define HWCAP_MIPS_MIPS16	(1 << 3)
-#define HWCAP_MIPS_MDMX     (1 << 4)
-#define HWCAP_MIPS_MIPS3D   (1 << 5)
-#define HWCAP_MIPS_SMARTMIPS (1 << 6)
-#define HWCAP_MIPS_DSP      (1 << 7)
-#define HWCAP_MIPS_DSP2     (1 << 8)
-#define HWCAP_MIPS_DSP3     (1 << 9)
-#define HWCAP_MIPS_MIPS16E2 (1 << 10)
-#define HWCAP_LOONGSON_MMI  (1 << 11)
-#define HWCAP_LOONGSON_EXT  (1 << 12)
-#define HWCAP_LOONGSON_EXT2 (1 << 13)
-
-#endif /* _UAPI_ASM_HWCAP_H */
diff --git a/original/uapi/asm-mips/asm/inst.h b/original/uapi/asm-mips/asm/inst.h
deleted file mode 100644
index eaa3a80..0000000
--- a/original/uapi/asm-mips/asm/inst.h
+++ /dev/null
@@ -1,1104 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Format of an instruction in memory.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996, 2000 by Ralf Baechle
- * Copyright (C) 2006 by Thiemo Seufer
- * Copyright (C) 2012 MIPS Technologies, Inc.  All rights reserved.
- * Copyright (C) 2014 Imagination Technologies Ltd.
- */
-#ifndef _UAPI_ASM_INST_H
-#define _UAPI_ASM_INST_H
-
-#include <asm/bitfield.h>
-
-/*
- * Major opcodes; before MIPS IV cop1x was called cop3.
- */
-enum major_op {
-	spec_op, bcond_op, j_op, jal_op,
-	beq_op, bne_op, blez_op, bgtz_op,
-	addi_op, pop10_op = addi_op, addiu_op, slti_op, sltiu_op,
-	andi_op, ori_op, xori_op, lui_op,
-	cop0_op, cop1_op, cop2_op, cop1x_op,
-	beql_op, bnel_op, blezl_op, bgtzl_op,
-	daddi_op, pop30_op = daddi_op, daddiu_op, ldl_op, ldr_op,
-	spec2_op, jalx_op, mdmx_op, msa_op = mdmx_op, spec3_op,
-	lb_op, lh_op, lwl_op, lw_op,
-	lbu_op, lhu_op, lwr_op, lwu_op,
-	sb_op, sh_op, swl_op, sw_op,
-	sdl_op, sdr_op, swr_op, cache_op,
-	ll_op, lwc1_op, lwc2_op, bc6_op = lwc2_op, pref_op,
-	lld_op, ldc1_op, ldc2_op, pop66_op = ldc2_op, ld_op,
-	sc_op, swc1_op, swc2_op, balc6_op = swc2_op, major_3b_op,
-	scd_op, sdc1_op, sdc2_op, pop76_op = sdc2_op, sd_op
-};
-
-/*
- * func field of spec opcode.
- */
-enum spec_op {
-	sll_op, movc_op, srl_op, sra_op,
-	sllv_op, pmon_op, srlv_op, srav_op,
-	jr_op, jalr_op, movz_op, movn_op,
-	syscall_op, break_op, spim_op, sync_op,
-	mfhi_op, mthi_op, mflo_op, mtlo_op,
-	dsllv_op, spec2_unused_op, dsrlv_op, dsrav_op,
-	mult_op, multu_op, div_op, divu_op,
-	dmult_op, dmultu_op, ddiv_op, ddivu_op,
-	add_op, addu_op, sub_op, subu_op,
-	and_op, or_op, xor_op, nor_op,
-	spec3_unused_op, spec4_unused_op, slt_op, sltu_op,
-	dadd_op, daddu_op, dsub_op, dsubu_op,
-	tge_op, tgeu_op, tlt_op, tltu_op,
-	teq_op, seleqz_op, tne_op, selnez_op,
-	dsll_op, spec5_unused_op, dsrl_op, dsra_op,
-	dsll32_op, spec6_unused_op, dsrl32_op, dsra32_op
-};
-
-/*
- * func field of spec2 opcode.
- */
-enum spec2_op {
-	madd_op, maddu_op, mul_op, spec2_3_unused_op,
-	msub_op, msubu_op, /* more unused ops */
-	clz_op = 0x20, clo_op,
-	dclz_op = 0x24, dclo_op,
-	sdbpp_op = 0x3f
-};
-
-/*
- * func field of spec3 opcode.
- */
-enum spec3_op {
-	ext_op, dextm_op, dextu_op, dext_op,
-	ins_op, dinsm_op, dinsu_op, dins_op,
-	yield_op  = 0x09, lx_op     = 0x0a,
-	lwle_op   = 0x19, lwre_op   = 0x1a,
-	cachee_op = 0x1b, sbe_op    = 0x1c,
-	she_op    = 0x1d, sce_op    = 0x1e,
-	swe_op    = 0x1f, bshfl_op  = 0x20,
-	swle_op   = 0x21, swre_op   = 0x22,
-	prefe_op  = 0x23, dbshfl_op = 0x24,
-	cache6_op = 0x25, sc6_op    = 0x26,
-	scd6_op   = 0x27, lbue_op   = 0x28,
-	lhue_op   = 0x29, lbe_op    = 0x2c,
-	lhe_op    = 0x2d, lle_op    = 0x2e,
-	lwe_op    = 0x2f, pref6_op  = 0x35,
-	ll6_op    = 0x36, lld6_op   = 0x37,
-	rdhwr_op  = 0x3b
-};
-
-/*
- * Bits 10-6 minor opcode for r6 spec mult/div encodings
- */
-enum mult_op {
-	mult_mult_op = 0x0,
-	mult_mul_op = 0x2,
-	mult_muh_op = 0x3,
-};
-enum multu_op {
-	multu_multu_op = 0x0,
-	multu_mulu_op = 0x2,
-	multu_muhu_op = 0x3,
-};
-enum div_op {
-	div_div_op = 0x0,
-	div_div6_op = 0x2,
-	div_mod_op = 0x3,
-};
-enum divu_op {
-	divu_divu_op = 0x0,
-	divu_divu6_op = 0x2,
-	divu_modu_op = 0x3,
-};
-enum dmult_op {
-	dmult_dmult_op = 0x0,
-	dmult_dmul_op = 0x2,
-	dmult_dmuh_op = 0x3,
-};
-enum dmultu_op {
-	dmultu_dmultu_op = 0x0,
-	dmultu_dmulu_op = 0x2,
-	dmultu_dmuhu_op = 0x3,
-};
-enum ddiv_op {
-	ddiv_ddiv_op = 0x0,
-	ddiv_ddiv6_op = 0x2,
-	ddiv_dmod_op = 0x3,
-};
-enum ddivu_op {
-	ddivu_ddivu_op = 0x0,
-	ddivu_ddivu6_op = 0x2,
-	ddivu_dmodu_op = 0x3,
-};
-
-/*
- * rt field of bcond opcodes.
- */
-enum rt_op {
-	bltz_op, bgez_op, bltzl_op, bgezl_op,
-	spimi_op, unused_rt_op_0x05, unused_rt_op_0x06, unused_rt_op_0x07,
-	tgei_op, tgeiu_op, tlti_op, tltiu_op,
-	teqi_op, unused_0x0d_rt_op, tnei_op, unused_0x0f_rt_op,
-	bltzal_op, bgezal_op, bltzall_op, bgezall_op,
-	rt_op_0x14, rt_op_0x15, rt_op_0x16, rt_op_0x17,
-	rt_op_0x18, rt_op_0x19, rt_op_0x1a, rt_op_0x1b,
-	bposge32_op, rt_op_0x1d, rt_op_0x1e, synci_op
-};
-
-/*
- * rs field of cop opcodes.
- */
-enum cop_op {
-	mfc_op	      = 0x00, dmfc_op	    = 0x01,
-	cfc_op	      = 0x02, mfhc0_op	    = 0x02,
-	mfhc_op       = 0x03, mtc_op	    = 0x04,
-	dmtc_op	      = 0x05, ctc_op	    = 0x06,
-	mthc0_op      = 0x06, mthc_op	    = 0x07,
-	bc_op	      = 0x08, bc1eqz_op     = 0x09,
-	mfmc0_op      = 0x0b, bc1nez_op     = 0x0d,
-	wrpgpr_op     = 0x0e, cop_op	    = 0x10,
-	copm_op	      = 0x18
-};
-
-/*
- * rt field of cop.bc_op opcodes
- */
-enum bcop_op {
-	bcf_op, bct_op, bcfl_op, bctl_op
-};
-
-/*
- * func field of cop0 coi opcodes.
- */
-enum cop0_coi_func {
-	tlbr_op	      = 0x01, tlbwi_op	    = 0x02,
-	tlbwr_op      = 0x06, tlbp_op	    = 0x08,
-	rfe_op	      = 0x10, eret_op	    = 0x18,
-	wait_op       = 0x20, hypcall_op    = 0x28
-};
-
-/*
- * func field of cop0 com opcodes.
- */
-enum cop0_com_func {
-	tlbr1_op      = 0x01, tlbw_op	    = 0x02,
-	tlbp1_op      = 0x08, dctr_op	    = 0x09,
-	dctw_op	      = 0x0a
-};
-
-/*
- * fmt field of cop1 opcodes.
- */
-enum cop1_fmt {
-	s_fmt, d_fmt, e_fmt, q_fmt,
-	w_fmt, l_fmt
-};
-
-/*
- * func field of cop1 instructions using d, s or w format.
- */
-enum cop1_sdw_func {
-	fadd_op	     =	0x00, fsub_op	   =  0x01,
-	fmul_op	     =	0x02, fdiv_op	   =  0x03,
-	fsqrt_op     =	0x04, fabs_op	   =  0x05,
-	fmov_op	     =	0x06, fneg_op	   =  0x07,
-	froundl_op   =	0x08, ftruncl_op   =  0x09,
-	fceill_op    =	0x0a, ffloorl_op   =  0x0b,
-	fround_op    =	0x0c, ftrunc_op	   =  0x0d,
-	fceil_op     =	0x0e, ffloor_op	   =  0x0f,
-	fsel_op      =  0x10,
-	fmovc_op     =	0x11, fmovz_op	   =  0x12,
-	fmovn_op     =	0x13, fseleqz_op   =  0x14,
-	frecip_op    =  0x15, frsqrt_op    =  0x16,
-	fselnez_op   =  0x17, fmaddf_op    =  0x18,
-	fmsubf_op    =  0x19, frint_op     =  0x1a,
-	fclass_op    =  0x1b, fmin_op      =  0x1c,
-	fmina_op     =  0x1d, fmax_op      =  0x1e,
-	fmaxa_op     =  0x1f, fcvts_op     =  0x20,
-	fcvtd_op     =	0x21, fcvte_op	   =  0x22,
-	fcvtw_op     =	0x24, fcvtl_op	   =  0x25,
-	fcmp_op	     =	0x30
-};
-
-/*
- * func field of cop1x opcodes (MIPS IV).
- */
-enum cop1x_func {
-	lwxc1_op     =	0x00, ldxc1_op	   =  0x01,
-	swxc1_op     =  0x08, sdxc1_op	   =  0x09,
-	pfetch_op    =	0x0f, madd_s_op	   =  0x20,
-	madd_d_op    =	0x21, madd_e_op	   =  0x22,
-	msub_s_op    =	0x28, msub_d_op	   =  0x29,
-	msub_e_op    =	0x2a, nmadd_s_op   =  0x30,
-	nmadd_d_op   =	0x31, nmadd_e_op   =  0x32,
-	nmsub_s_op   =	0x38, nmsub_d_op   =  0x39,
-	nmsub_e_op   =	0x3a
-};
-
-/*
- * func field for mad opcodes (MIPS IV).
- */
-enum mad_func {
-	madd_fp_op	= 0x08, msub_fp_op	= 0x0a,
-	nmadd_fp_op	= 0x0c, nmsub_fp_op	= 0x0e
-};
-
-/*
- * func field for page table walker (Loongson-3).
- */
-enum ptw_func {
-	lwdir_op = 0x00,
-	lwpte_op = 0x01,
-	lddir_op = 0x02,
-	ldpte_op = 0x03,
-};
-
-/*
- * func field for special3 lx opcodes (Cavium Octeon).
- */
-enum lx_func {
-	lwx_op	= 0x00,
-	lhx_op	= 0x04,
-	lbux_op = 0x06,
-	ldx_op	= 0x08,
-	lwux_op = 0x10,
-	lhux_op = 0x14,
-	lbx_op	= 0x16,
-};
-
-/*
- * BSHFL opcodes
- */
-enum bshfl_func {
-	wsbh_op = 0x2,
-	seb_op  = 0x10,
-	seh_op  = 0x18,
-};
-
-/*
- * DBSHFL opcodes
- */
-enum dbshfl_func {
-	dsbh_op = 0x2,
-	dshd_op = 0x5,
-};
-
-/*
- * MSA minor opcodes.
- */
-enum msa_func {
-	msa_elm_op = 0x19,
-};
-
-/*
- * MSA ELM opcodes.
- */
-enum msa_elm {
-	msa_ctc_op = 0x3e,
-	msa_cfc_op = 0x7e,
-};
-
-/*
- * func field for MSA MI10 format.
- */
-enum msa_mi10_func {
-	msa_ld_op = 8,
-	msa_st_op = 9,
-};
-
-/*
- * MSA 2 bit format fields.
- */
-enum msa_2b_fmt {
-	msa_fmt_b = 0,
-	msa_fmt_h = 1,
-	msa_fmt_w = 2,
-	msa_fmt_d = 3,
-};
-
-/*
- * (microMIPS) Major opcodes.
- */
-enum mm_major_op {
-	mm_pool32a_op, mm_pool16a_op, mm_lbu16_op, mm_move16_op,
-	mm_addi32_op, mm_lbu32_op, mm_sb32_op, mm_lb32_op,
-	mm_pool32b_op, mm_pool16b_op, mm_lhu16_op, mm_andi16_op,
-	mm_addiu32_op, mm_lhu32_op, mm_sh32_op, mm_lh32_op,
-	mm_pool32i_op, mm_pool16c_op, mm_lwsp16_op, mm_pool16d_op,
-	mm_ori32_op, mm_pool32f_op, mm_pool32s_op, mm_reserved2_op,
-	mm_pool32c_op, mm_lwgp16_op, mm_lw16_op, mm_pool16e_op,
-	mm_xori32_op, mm_jals32_op, mm_addiupc_op, mm_reserved3_op,
-	mm_reserved4_op, mm_pool16f_op, mm_sb16_op, mm_beqz16_op,
-	mm_slti32_op, mm_beq32_op, mm_swc132_op, mm_lwc132_op,
-	mm_reserved5_op, mm_reserved6_op, mm_sh16_op, mm_bnez16_op,
-	mm_sltiu32_op, mm_bne32_op, mm_sdc132_op, mm_ldc132_op,
-	mm_reserved7_op, mm_reserved8_op, mm_swsp16_op, mm_b16_op,
-	mm_andi32_op, mm_j32_op, mm_sd32_op, mm_ld32_op,
-	mm_reserved11_op, mm_reserved12_op, mm_sw16_op, mm_li16_op,
-	mm_jalx32_op, mm_jal32_op, mm_sw32_op, mm_lw32_op,
-};
-
-/*
- * (microMIPS) POOL32I minor opcodes.
- */
-enum mm_32i_minor_op {
-	mm_bltz_op, mm_bltzal_op, mm_bgez_op, mm_bgezal_op,
-	mm_blez_op, mm_bnezc_op, mm_bgtz_op, mm_beqzc_op,
-	mm_tlti_op, mm_tgei_op, mm_tltiu_op, mm_tgeiu_op,
-	mm_tnei_op, mm_lui_op, mm_teqi_op, mm_reserved13_op,
-	mm_synci_op, mm_bltzals_op, mm_reserved14_op, mm_bgezals_op,
-	mm_bc2f_op, mm_bc2t_op, mm_reserved15_op, mm_reserved16_op,
-	mm_reserved17_op, mm_reserved18_op, mm_bposge64_op, mm_bposge32_op,
-	mm_bc1f_op, mm_bc1t_op, mm_reserved19_op, mm_reserved20_op,
-	mm_bc1any2f_op, mm_bc1any2t_op, mm_bc1any4f_op, mm_bc1any4t_op,
-};
-
-/*
- * (microMIPS) POOL32A minor opcodes.
- */
-enum mm_32a_minor_op {
-	mm_sll32_op = 0x000,
-	mm_ins_op = 0x00c,
-	mm_sllv32_op = 0x010,
-	mm_ext_op = 0x02c,
-	mm_pool32axf_op = 0x03c,
-	mm_srl32_op = 0x040,
-	mm_srlv32_op = 0x050,
-	mm_sra_op = 0x080,
-	mm_srav_op = 0x090,
-	mm_rotr_op = 0x0c0,
-	mm_lwxs_op = 0x118,
-	mm_addu32_op = 0x150,
-	mm_subu32_op = 0x1d0,
-	mm_wsbh_op = 0x1ec,
-	mm_mul_op = 0x210,
-	mm_and_op = 0x250,
-	mm_or32_op = 0x290,
-	mm_xor32_op = 0x310,
-	mm_slt_op = 0x350,
-	mm_sltu_op = 0x390,
-};
-
-/*
- * (microMIPS) POOL32B functions.
- */
-enum mm_32b_func {
-	mm_lwc2_func = 0x0,
-	mm_lwp_func = 0x1,
-	mm_ldc2_func = 0x2,
-	mm_ldp_func = 0x4,
-	mm_lwm32_func = 0x5,
-	mm_cache_func = 0x6,
-	mm_ldm_func = 0x7,
-	mm_swc2_func = 0x8,
-	mm_swp_func = 0x9,
-	mm_sdc2_func = 0xa,
-	mm_sdp_func = 0xc,
-	mm_swm32_func = 0xd,
-	mm_sdm_func = 0xf,
-};
-
-/*
- * (microMIPS) POOL32C functions.
- */
-enum mm_32c_func {
-	mm_pref_func = 0x2,
-	mm_ll_func = 0x3,
-	mm_swr_func = 0x9,
-	mm_sc_func = 0xb,
-	mm_lwu_func = 0xe,
-};
-
-/*
- * (microMIPS) POOL32AXF minor opcodes.
- */
-enum mm_32axf_minor_op {
-	mm_mfc0_op = 0x003,
-	mm_mtc0_op = 0x00b,
-	mm_tlbp_op = 0x00d,
-	mm_mfhi32_op = 0x035,
-	mm_jalr_op = 0x03c,
-	mm_tlbr_op = 0x04d,
-	mm_mflo32_op = 0x075,
-	mm_jalrhb_op = 0x07c,
-	mm_tlbwi_op = 0x08d,
-	mm_mthi32_op = 0x0b5,
-	mm_tlbwr_op = 0x0cd,
-	mm_mtlo32_op = 0x0f5,
-	mm_di_op = 0x11d,
-	mm_jalrs_op = 0x13c,
-	mm_jalrshb_op = 0x17c,
-	mm_sync_op = 0x1ad,
-	mm_syscall_op = 0x22d,
-	mm_wait_op = 0x24d,
-	mm_eret_op = 0x3cd,
-	mm_divu_op = 0x5dc,
-};
-
-/*
- * (microMIPS) POOL32F minor opcodes.
- */
-enum mm_32f_minor_op {
-	mm_32f_00_op = 0x00,
-	mm_32f_01_op = 0x01,
-	mm_32f_02_op = 0x02,
-	mm_32f_10_op = 0x08,
-	mm_32f_11_op = 0x09,
-	mm_32f_12_op = 0x0a,
-	mm_32f_20_op = 0x10,
-	mm_32f_30_op = 0x18,
-	mm_32f_40_op = 0x20,
-	mm_32f_41_op = 0x21,
-	mm_32f_42_op = 0x22,
-	mm_32f_50_op = 0x28,
-	mm_32f_51_op = 0x29,
-	mm_32f_52_op = 0x2a,
-	mm_32f_60_op = 0x30,
-	mm_32f_70_op = 0x38,
-	mm_32f_73_op = 0x3b,
-	mm_32f_74_op = 0x3c,
-};
-
-/*
- * (microMIPS) POOL32F secondary minor opcodes.
- */
-enum mm_32f_10_minor_op {
-	mm_lwxc1_op = 0x1,
-	mm_swxc1_op,
-	mm_ldxc1_op,
-	mm_sdxc1_op,
-	mm_luxc1_op,
-	mm_suxc1_op,
-};
-
-enum mm_32f_func {
-	mm_lwxc1_func = 0x048,
-	mm_swxc1_func = 0x088,
-	mm_ldxc1_func = 0x0c8,
-	mm_sdxc1_func = 0x108,
-};
-
-/*
- * (microMIPS) POOL32F secondary minor opcodes.
- */
-enum mm_32f_40_minor_op {
-	mm_fmovf_op,
-	mm_fmovt_op,
-};
-
-/*
- * (microMIPS) POOL32F secondary minor opcodes.
- */
-enum mm_32f_60_minor_op {
-	mm_fadd_op,
-	mm_fsub_op,
-	mm_fmul_op,
-	mm_fdiv_op,
-};
-
-/*
- * (microMIPS) POOL32F secondary minor opcodes.
- */
-enum mm_32f_70_minor_op {
-	mm_fmovn_op,
-	mm_fmovz_op,
-};
-
-/*
- * (microMIPS) POOL32FXF secondary minor opcodes for POOL32F.
- */
-enum mm_32f_73_minor_op {
-	mm_fmov0_op = 0x01,
-	mm_fcvtl_op = 0x04,
-	mm_movf0_op = 0x05,
-	mm_frsqrt_op = 0x08,
-	mm_ffloorl_op = 0x0c,
-	mm_fabs0_op = 0x0d,
-	mm_fcvtw_op = 0x24,
-	mm_movt0_op = 0x25,
-	mm_fsqrt_op = 0x28,
-	mm_ffloorw_op = 0x2c,
-	mm_fneg0_op = 0x2d,
-	mm_cfc1_op = 0x40,
-	mm_frecip_op = 0x48,
-	mm_fceill_op = 0x4c,
-	mm_fcvtd0_op = 0x4d,
-	mm_ctc1_op = 0x60,
-	mm_fceilw_op = 0x6c,
-	mm_fcvts0_op = 0x6d,
-	mm_mfc1_op = 0x80,
-	mm_fmov1_op = 0x81,
-	mm_movf1_op = 0x85,
-	mm_ftruncl_op = 0x8c,
-	mm_fabs1_op = 0x8d,
-	mm_mtc1_op = 0xa0,
-	mm_movt1_op = 0xa5,
-	mm_ftruncw_op = 0xac,
-	mm_fneg1_op = 0xad,
-	mm_mfhc1_op = 0xc0,
-	mm_froundl_op = 0xcc,
-	mm_fcvtd1_op = 0xcd,
-	mm_mthc1_op = 0xe0,
-	mm_froundw_op = 0xec,
-	mm_fcvts1_op = 0xed,
-};
-
-/*
- * (microMIPS) POOL32S minor opcodes.
- */
-enum mm_32s_minor_op {
-	mm_32s_elm_op = 0x16,
-};
-
-/*
- * (microMIPS) POOL16C minor opcodes.
- */
-enum mm_16c_minor_op {
-	mm_lwm16_op = 0x04,
-	mm_swm16_op = 0x05,
-	mm_jr16_op = 0x0c,
-	mm_jrc_op = 0x0d,
-	mm_jalr16_op = 0x0e,
-	mm_jalrs16_op = 0x0f,
-	mm_jraddiusp_op = 0x18,
-};
-
-/*
- * (microMIPS) POOL16D minor opcodes.
- */
-enum mm_16d_minor_op {
-	mm_addius5_func,
-	mm_addiusp_func,
-};
-
-/*
- * (MIPS16e) opcodes.
- */
-enum MIPS16e_ops {
-	MIPS16e_jal_op = 003,
-	MIPS16e_ld_op = 007,
-	MIPS16e_i8_op = 014,
-	MIPS16e_sd_op = 017,
-	MIPS16e_lb_op = 020,
-	MIPS16e_lh_op = 021,
-	MIPS16e_lwsp_op = 022,
-	MIPS16e_lw_op = 023,
-	MIPS16e_lbu_op = 024,
-	MIPS16e_lhu_op = 025,
-	MIPS16e_lwpc_op = 026,
-	MIPS16e_lwu_op = 027,
-	MIPS16e_sb_op = 030,
-	MIPS16e_sh_op = 031,
-	MIPS16e_swsp_op = 032,
-	MIPS16e_sw_op = 033,
-	MIPS16e_rr_op = 035,
-	MIPS16e_extend_op = 036,
-	MIPS16e_i64_op = 037,
-};
-
-enum MIPS16e_i64_func {
-	MIPS16e_ldsp_func,
-	MIPS16e_sdsp_func,
-	MIPS16e_sdrasp_func,
-	MIPS16e_dadjsp_func,
-	MIPS16e_ldpc_func,
-};
-
-enum MIPS16e_rr_func {
-	MIPS16e_jr_func,
-};
-
-enum MIPS6e_i8_func {
-	MIPS16e_swrasp_func = 02,
-};
-
-/*
- * (microMIPS) NOP instruction.
- */
-#define MM_NOP16	0x0c00
-
-struct j_format {
-	__BITFIELD_FIELD(unsigned int opcode : 6, /* Jump format */
-	__BITFIELD_FIELD(unsigned int target : 26,
-	;))
-};
-
-struct i_format {			/* signed immediate format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(signed int simmediate : 16,
-	;))))
-};
-
-struct u_format {			/* unsigned immediate format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int uimmediate : 16,
-	;))))
-};
-
-struct c_format {			/* Cache (>= R6000) format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int c_op : 3,
-	__BITFIELD_FIELD(unsigned int cache : 2,
-	__BITFIELD_FIELD(unsigned int simmediate : 16,
-	;)))))
-};
-
-struct r_format {			/* Register format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int re : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct c0r_format {			/* C0 register format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int z: 8,
-	__BITFIELD_FIELD(unsigned int sel : 3,
-	;))))))
-};
-
-struct mfmc0_format {			/* MFMC0 register format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int re : 5,
-	__BITFIELD_FIELD(unsigned int sc : 1,
-	__BITFIELD_FIELD(unsigned int : 2,
-	__BITFIELD_FIELD(unsigned int sel : 3,
-	;))))))))
-};
-
-struct co_format {			/* C0 CO format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int co : 1,
-	__BITFIELD_FIELD(unsigned int code : 19,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))
-};
-
-struct p_format {		/* Performance counter format (R10000) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int re : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct f_format {			/* FPU register format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int : 1,
-	__BITFIELD_FIELD(unsigned int fmt : 4,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int re : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;)))))))
-};
-
-struct ma_format {		/* FPU multiply and add format (MIPS IV) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int fr : 5,
-	__BITFIELD_FIELD(unsigned int ft : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int func : 4,
-	__BITFIELD_FIELD(unsigned int fmt : 2,
-	;)))))))
-};
-
-struct b_format {			/* BREAK and SYSCALL */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int code : 20,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;)))
-};
-
-struct ps_format {			/* MIPS-3D / paired single format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int ft : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct v_format {				/* MDMX vector format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int sel : 4,
-	__BITFIELD_FIELD(unsigned int fmt : 1,
-	__BITFIELD_FIELD(unsigned int vt : 5,
-	__BITFIELD_FIELD(unsigned int vs : 5,
-	__BITFIELD_FIELD(unsigned int vd : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;)))))))
-};
-
-struct msa_mi10_format {		/* MSA MI10 */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(signed int s10 : 10,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(unsigned int wd : 5,
-	__BITFIELD_FIELD(unsigned int func : 4,
-	__BITFIELD_FIELD(unsigned int df : 2,
-	;))))))
-};
-
-struct dsp_format {		/* SPEC3 DSP format instructions */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int base : 5,
-	__BITFIELD_FIELD(unsigned int index : 5,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int op : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct spec3_format {   /* SPEC3 */
-	__BITFIELD_FIELD(unsigned int opcode:6,
-	__BITFIELD_FIELD(unsigned int rs:5,
-	__BITFIELD_FIELD(unsigned int rt:5,
-	__BITFIELD_FIELD(signed int simmediate:9,
-	__BITFIELD_FIELD(unsigned int func:7,
-	;)))))
-};
-
-/*
- * microMIPS instruction formats (32-bit length)
- *
- * NOTE:
- *	Parenthesis denote whether the format is a microMIPS instruction or
- *	if it is MIPS32 instruction re-encoded for use in the microMIPS ASE.
- */
-struct fb_format {		/* FPU branch format (MIPS32) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int bc : 5,
-	__BITFIELD_FIELD(unsigned int cc : 3,
-	__BITFIELD_FIELD(unsigned int flag : 2,
-	__BITFIELD_FIELD(signed int simmediate : 16,
-	;)))))
-};
-
-struct fp0_format {		/* FPU multiply and add format (MIPS32) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int fmt : 5,
-	__BITFIELD_FIELD(unsigned int ft : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct mm_fp0_format {		/* FPU multiply and add format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int ft : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int fmt : 3,
-	__BITFIELD_FIELD(unsigned int op : 2,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;)))))))
-};
-
-struct fp1_format {		/* FPU mfc1 and cfc1 format (MIPS32) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int op : 5,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct mm_fp1_format {		/* FPU mfc1 and cfc1 format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fmt : 2,
-	__BITFIELD_FIELD(unsigned int op : 8,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct mm_fp2_format {		/* FPU movt and movf format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int cc : 3,
-	__BITFIELD_FIELD(unsigned int zero : 2,
-	__BITFIELD_FIELD(unsigned int fmt : 2,
-	__BITFIELD_FIELD(unsigned int op : 3,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))))
-};
-
-struct mm_fp3_format {		/* FPU abs and neg format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fmt : 3,
-	__BITFIELD_FIELD(unsigned int op : 7,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct mm_fp4_format {		/* FPU c.cond format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int cc : 3,
-	__BITFIELD_FIELD(unsigned int fmt : 3,
-	__BITFIELD_FIELD(unsigned int cond : 4,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;)))))))
-};
-
-struct mm_fp5_format {		/* FPU lwxc1 and swxc1 format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int index : 5,
-	__BITFIELD_FIELD(unsigned int base : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int op : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct fp6_format {		/* FPU madd and msub format (MIPS IV) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int fr : 5,
-	__BITFIELD_FIELD(unsigned int ft : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct mm_fp6_format {		/* FPU madd and msub format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int ft : 5,
-	__BITFIELD_FIELD(unsigned int fs : 5,
-	__BITFIELD_FIELD(unsigned int fd : 5,
-	__BITFIELD_FIELD(unsigned int fr : 5,
-	__BITFIELD_FIELD(unsigned int func : 6,
-	;))))))
-};
-
-struct mm_i_format {		/* Immediate format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int rs : 5,
-	__BITFIELD_FIELD(signed int simmediate : 16,
-	;))))
-};
-
-struct mm_m_format {		/* Multi-word load/store format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int base : 5,
-	__BITFIELD_FIELD(unsigned int func : 4,
-	__BITFIELD_FIELD(signed int simmediate : 12,
-	;)))))
-};
-
-struct mm_x_format {		/* Scaled indexed load format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int index : 5,
-	__BITFIELD_FIELD(unsigned int base : 5,
-	__BITFIELD_FIELD(unsigned int rd : 5,
-	__BITFIELD_FIELD(unsigned int func : 11,
-	;)))))
-};
-
-struct mm_a_format {		/* ADDIUPC format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 3,
-	__BITFIELD_FIELD(signed int simmediate : 23,
-	;)))
-};
-
-/*
- * microMIPS instruction formats (16-bit length)
- */
-struct mm_b0_format {		/* Unconditional branch format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(signed int simmediate : 10,
-	__BITFIELD_FIELD(unsigned int : 16, /* Ignored */
-	;)))
-};
-
-struct mm_b1_format {		/* Conditional branch format (microMIPS) */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rs : 3,
-	__BITFIELD_FIELD(signed int simmediate : 7,
-	__BITFIELD_FIELD(unsigned int : 16, /* Ignored */
-	;))))
-};
-
-struct mm16_m_format {		/* Multi-word load/store format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int func : 4,
-	__BITFIELD_FIELD(unsigned int rlist : 2,
-	__BITFIELD_FIELD(unsigned int imm : 4,
-	__BITFIELD_FIELD(unsigned int : 16, /* Ignored */
-	;)))))
-};
-
-struct mm16_rb_format {		/* Signed immediate format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rt : 3,
-	__BITFIELD_FIELD(unsigned int base : 3,
-	__BITFIELD_FIELD(signed int simmediate : 4,
-	__BITFIELD_FIELD(unsigned int : 16, /* Ignored */
-	;)))))
-};
-
-struct mm16_r3_format {		/* Load from global pointer format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rt : 3,
-	__BITFIELD_FIELD(signed int simmediate : 7,
-	__BITFIELD_FIELD(unsigned int : 16, /* Ignored */
-	;))))
-};
-
-struct mm16_r5_format {		/* Load/store from stack pointer format */
-	__BITFIELD_FIELD(unsigned int opcode : 6,
-	__BITFIELD_FIELD(unsigned int rt : 5,
-	__BITFIELD_FIELD(unsigned int imm : 5,
-	__BITFIELD_FIELD(unsigned int : 16, /* Ignored */
-	;))))
-};
-
-/*
- * MIPS16e instruction formats (16-bit length)
- */
-struct m16e_rr {
-	__BITFIELD_FIELD(unsigned int opcode : 5,
-	__BITFIELD_FIELD(unsigned int rx : 3,
-	__BITFIELD_FIELD(unsigned int nd : 1,
-	__BITFIELD_FIELD(unsigned int l : 1,
-	__BITFIELD_FIELD(unsigned int ra : 1,
-	__BITFIELD_FIELD(unsigned int func : 5,
-	;))))))
-};
-
-struct m16e_jal {
-	__BITFIELD_FIELD(unsigned int opcode : 5,
-	__BITFIELD_FIELD(unsigned int x : 1,
-	__BITFIELD_FIELD(unsigned int imm20_16 : 5,
-	__BITFIELD_FIELD(signed int imm25_21 : 5,
-	;))))
-};
-
-struct m16e_i64 {
-	__BITFIELD_FIELD(unsigned int opcode : 5,
-	__BITFIELD_FIELD(unsigned int func : 3,
-	__BITFIELD_FIELD(unsigned int imm : 8,
-	;)))
-};
-
-struct m16e_ri64 {
-	__BITFIELD_FIELD(unsigned int opcode : 5,
-	__BITFIELD_FIELD(unsigned int func : 3,
-	__BITFIELD_FIELD(unsigned int ry : 3,
-	__BITFIELD_FIELD(unsigned int imm : 5,
-	;))))
-};
-
-struct m16e_ri {
-	__BITFIELD_FIELD(unsigned int opcode : 5,
-	__BITFIELD_FIELD(unsigned int rx : 3,
-	__BITFIELD_FIELD(unsigned int imm : 8,
-	;)))
-};
-
-struct m16e_rri {
-	__BITFIELD_FIELD(unsigned int opcode : 5,
-	__BITFIELD_FIELD(unsigned int rx : 3,
-	__BITFIELD_FIELD(unsigned int ry : 3,
-	__BITFIELD_FIELD(unsigned int imm : 5,
-	;))))
-};
-
-struct m16e_i8 {
-	__BITFIELD_FIELD(unsigned int opcode : 5,
-	__BITFIELD_FIELD(unsigned int func : 3,
-	__BITFIELD_FIELD(unsigned int imm : 8,
-	;)))
-};
-
-union mips_instruction {
-	unsigned int word;
-	unsigned short halfword[2];
-	unsigned char byte[4];
-	struct j_format j_format;
-	struct i_format i_format;
-	struct u_format u_format;
-	struct c_format c_format;
-	struct r_format r_format;
-	struct c0r_format c0r_format;
-	struct mfmc0_format mfmc0_format;
-	struct co_format co_format;
-	struct p_format p_format;
-	struct f_format f_format;
-	struct ma_format ma_format;
-	struct msa_mi10_format msa_mi10_format;
-	struct b_format b_format;
-	struct ps_format ps_format;
-	struct v_format v_format;
-	struct dsp_format dsp_format;
-	struct spec3_format spec3_format;
-	struct fb_format fb_format;
-	struct fp0_format fp0_format;
-	struct mm_fp0_format mm_fp0_format;
-	struct fp1_format fp1_format;
-	struct mm_fp1_format mm_fp1_format;
-	struct mm_fp2_format mm_fp2_format;
-	struct mm_fp3_format mm_fp3_format;
-	struct mm_fp4_format mm_fp4_format;
-	struct mm_fp5_format mm_fp5_format;
-	struct fp6_format fp6_format;
-	struct mm_fp6_format mm_fp6_format;
-	struct mm_i_format mm_i_format;
-	struct mm_m_format mm_m_format;
-	struct mm_x_format mm_x_format;
-	struct mm_a_format mm_a_format;
-	struct mm_b0_format mm_b0_format;
-	struct mm_b1_format mm_b1_format;
-	struct mm16_m_format mm16_m_format ;
-	struct mm16_rb_format mm16_rb_format;
-	struct mm16_r3_format mm16_r3_format;
-	struct mm16_r5_format mm16_r5_format;
-};
-
-union mips16e_instruction {
-	unsigned int full : 16;
-	struct m16e_rr rr;
-	struct m16e_jal jal;
-	struct m16e_i64 i64;
-	struct m16e_ri64 ri64;
-	struct m16e_ri ri;
-	struct m16e_rri rri;
-	struct m16e_i8 i8;
-};
-
-#endif /* _UAPI_ASM_INST_H */
diff --git a/original/uapi/asm-mips/asm/ioctl.h b/original/uapi/asm-mips/asm/ioctl.h
deleted file mode 100644
index 1050a6e..0000000
--- a/original/uapi/asm-mips/asm/ioctl.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 96, 99, 2001 Ralf Baechle <ralf@linux-mips.org>
- * Copyright (C) 2009 Wind River Systems
- * Written by Ralf Baechle <ralf@linux-mips.org>
- */
-#ifndef __ASM_IOCTL_H
-#define __ASM_IOCTL_H
-
-#define _IOC_SIZEBITS	13
-#define _IOC_DIRBITS	3
-
-/*
- * Direction bits _IOC_NONE could be 0, but OSF/1 gives it a bit.
- * And this turns out useful to catch old ioctl numbers in header
- * files for us.
- */
-#define _IOC_NONE	1U
-#define _IOC_READ	2U
-#define _IOC_WRITE	4U
-
-#include <asm-generic/ioctl.h>
-
-#endif /* __ASM_IOCTL_H */
diff --git a/original/uapi/asm-mips/asm/ioctls.h b/original/uapi/asm-mips/asm/ioctls.h
deleted file mode 100644
index 16aa8a7..0000000
--- a/original/uapi/asm-mips/asm/ioctls.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 1996, 2001 Ralf Baechle
- * Copyright (C) 2001 MIPS Technologies, Inc.
- */
-#ifndef __ASM_IOCTLS_H
-#define __ASM_IOCTLS_H
-
-#include <asm/ioctl.h>
-
-#define TCGETA		0x5401
-#define TCSETA		0x5402	/* Clashes with SNDCTL_TMR_START sound ioctl */
-#define TCSETAW		0x5403
-#define TCSETAF		0x5404
-
-#define TCSBRK		0x5405
-#define TCXONC		0x5406
-#define TCFLSH		0x5407
-
-#define TCGETS		0x540d
-#define TCSETS		0x540e
-#define TCSETSW		0x540f
-#define TCSETSF		0x5410
-
-#define TIOCEXCL	0x740d		/* set exclusive use of tty */
-#define TIOCNXCL	0x740e		/* reset exclusive use of tty */
-#define TIOCOUTQ	0x7472		/* output queue size */
-#define TIOCSTI		0x5472		/* simulate terminal input */
-#define TIOCMGET	0x741d		/* get all modem bits */
-#define TIOCMBIS	0x741b		/* bis modem bits */
-#define TIOCMBIC	0x741c		/* bic modem bits */
-#define TIOCMSET	0x741a		/* set all modem bits */
-#define TIOCPKT		0x5470		/* pty: set/clear packet mode */
-#define	 TIOCPKT_DATA		0x00	/* data packet */
-#define	 TIOCPKT_FLUSHREAD	0x01	/* flush packet */
-#define	 TIOCPKT_FLUSHWRITE	0x02	/* flush packet */
-#define	 TIOCPKT_STOP		0x04	/* stop output */
-#define	 TIOCPKT_START		0x08	/* start output */
-#define	 TIOCPKT_NOSTOP		0x10	/* no more ^S, ^Q */
-#define	 TIOCPKT_DOSTOP		0x20	/* now do ^S ^Q */
-#define	 TIOCPKT_IOCTL		0x40	/* state change of pty driver */
-#define TIOCSWINSZ	_IOW('t', 103, struct winsize)	/* set window size */
-#define TIOCGWINSZ	_IOR('t', 104, struct winsize)	/* get window size */
-#define TIOCNOTTY	0x5471		/* void tty association */
-#define TIOCSETD	0x7401
-#define TIOCGETD	0x7400
-
-#define FIOCLEX		0x6601
-#define FIONCLEX	0x6602
-#define FIOASYNC	0x667d
-#define FIONBIO		0x667e
-#define FIOQSIZE	0x667f
-
-#define TIOCGLTC	0x7474			/* get special local chars */
-#define TIOCSLTC	0x7475			/* set special local chars */
-#define TIOCSPGRP	_IOW('t', 118, int)	/* set pgrp of tty */
-#define TIOCGPGRP	_IOR('t', 119, int)	/* get pgrp of tty */
-#define TIOCCONS	_IOW('t', 120, int)	/* become virtual console */
-
-#define FIONREAD	0x467f
-#define TIOCINQ		FIONREAD
-
-#define TIOCGETP	0x7408
-#define TIOCSETP	0x7409
-#define TIOCSETN	0x740a			/* TIOCSETP wo flush */
-
-/* #define TIOCSETA	_IOW('t', 20, struct termios) set termios struct */
-/* #define TIOCSETAW	_IOW('t', 21, struct termios) drain output, set */
-/* #define TIOCSETAF	_IOW('t', 22, struct termios) drn out, fls in, set */
-/* #define TIOCGETD	_IOR('t', 26, int)	get line discipline */
-/* #define TIOCSETD	_IOW('t', 27, int)	set line discipline */
-						/* 127-124 compat */
-
-#define TIOCSBRK	0x5427	/* BSD compatibility */
-#define TIOCCBRK	0x5428	/* BSD compatibility */
-#define TIOCGSID	0x7416	/* Return the session ID of FD */
-#define TCGETS2		_IOR('T', 0x2A, struct termios2)
-#define TCSETS2		_IOW('T', 0x2B, struct termios2)
-#define TCSETSW2	_IOW('T', 0x2C, struct termios2)
-#define TCSETSF2	_IOW('T', 0x2D, struct termios2)
-#define TIOCGRS485	_IOR('T', 0x2E, struct serial_rs485)
-#define TIOCSRS485	_IOWR('T', 0x2F, struct serial_rs485)
-#define TIOCGPTN	_IOR('T', 0x30, unsigned int) /* Get Pty Number (of pty-mux device) */
-#define TIOCSPTLCK	_IOW('T', 0x31, int)  /* Lock/unlock Pty */
-#define TIOCGDEV	_IOR('T', 0x32, unsigned int) /* Get primary device node of /dev/console */
-#define TIOCSIG		_IOW('T', 0x36, int)  /* Generate signal on Pty slave */
-#define TIOCVHANGUP	0x5437
-#define TIOCGPKT	_IOR('T', 0x38, int) /* Get packet mode state */
-#define TIOCGPTLCK	_IOR('T', 0x39, int) /* Get Pty lock state */
-#define TIOCGEXCL	_IOR('T', 0x40, int) /* Get exclusive mode state */
-#define TIOCGPTPEER	_IO('T', 0x41) /* Safely open the slave */
-#define TIOCGISO7816	_IOR('T', 0x42, struct serial_iso7816)
-#define TIOCSISO7816	_IOWR('T', 0x43, struct serial_iso7816)
-
-/* I hope the range from 0x5480 on is free ... */
-#define TIOCSCTTY	0x5480		/* become controlling tty */
-#define TIOCGSOFTCAR	0x5481
-#define TIOCSSOFTCAR	0x5482
-#define TIOCLINUX	0x5483
-#define TIOCGSERIAL	0x5484
-#define TIOCSSERIAL	0x5485
-#define TCSBRKP		0x5486	/* Needed for POSIX tcsendbreak() */
-#define TIOCSERCONFIG	0x5488
-#define TIOCSERGWILD	0x5489
-#define TIOCSERSWILD	0x548a
-#define TIOCGLCKTRMIOS	0x548b
-#define TIOCSLCKTRMIOS	0x548c
-#define TIOCSERGSTRUCT	0x548d /* For debugging only */
-#define TIOCSERGETLSR	0x548e /* Get line status register */
-#define TIOCSERGETMULTI 0x548f /* Get multiport config	*/
-#define TIOCSERSETMULTI 0x5490 /* Set multiport config */
-#define TIOCMIWAIT	0x5491 /* wait for a change on serial input line(s) */
-#define TIOCGICOUNT	0x5492 /* read serial port inline interrupt counts */
-
-#endif /* __ASM_IOCTLS_H */
diff --git a/original/uapi/asm-mips/asm/ipcbuf.h b/original/uapi/asm-mips/asm/ipcbuf.h
deleted file mode 100644
index 84c7e51..0000000
--- a/original/uapi/asm-mips/asm/ipcbuf.h
+++ /dev/null
@@ -1 +0,0 @@
-#include <asm-generic/ipcbuf.h>
diff --git a/original/uapi/asm-mips/asm/kvm.h b/original/uapi/asm-mips/asm/kvm.h
deleted file mode 100644
index edcf717..0000000
--- a/original/uapi/asm-mips/asm/kvm.h
+++ /dev/null
@@ -1,227 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 2012  MIPS Technologies, Inc.  All rights reserved.
- * Copyright (C) 2013 Cavium, Inc.
- * Authors: Sanjay Lal <sanjayl@kymasys.com>
- */
-
-#ifndef __LINUX_KVM_MIPS_H
-#define __LINUX_KVM_MIPS_H
-
-#include <linux/types.h>
-
-/*
- * KVM MIPS specific structures and definitions.
- *
- * Some parts derived from the x86 version of this file.
- */
-
-#define __KVM_HAVE_READONLY_MEM
-
-#define KVM_COALESCED_MMIO_PAGE_OFFSET 1
-
-/*
- * for KVM_GET_REGS and KVM_SET_REGS
- *
- * If Config[AT] is zero (32-bit CPU), the register contents are
- * stored in the lower 32-bits of the struct kvm_regs fields and sign
- * extended to 64-bits.
- */
-struct kvm_regs {
-	/* out (KVM_GET_REGS) / in (KVM_SET_REGS) */
-	__u64 gpr[32];
-	__u64 hi;
-	__u64 lo;
-	__u64 pc;
-};
-
-/*
- * for KVM_GET_FPU and KVM_SET_FPU
- */
-struct kvm_fpu {
-};
-
-
-/*
- * For MIPS, we use KVM_SET_ONE_REG and KVM_GET_ONE_REG to access various
- * registers.  The id field is broken down as follows:
- *
- *  bits[63..52] - As per linux/kvm.h
- *  bits[51..32] - Must be zero.
- *  bits[31..16] - Register set.
- *
- * Register set = 0: GP registers from kvm_regs (see definitions below).
- *
- * Register set = 1: CP0 registers.
- *  bits[15..8]  - COP0 register set.
- *
- *  COP0 register set = 0: Main CP0 registers.
- *   bits[7..3]   - Register 'rd'  index.
- *   bits[2..0]   - Register 'sel' index.
- *
- *  COP0 register set = 1: MAARs.
- *   bits[7..0]   - MAAR index.
- *
- * Register set = 2: KVM specific registers (see definitions below).
- *
- * Register set = 3: FPU / MSA registers (see definitions below).
- *
- * Other sets registers may be added in the future.  Each set would
- * have its own identifier in bits[31..16].
- */
-
-#define KVM_REG_MIPS_GP		(KVM_REG_MIPS | 0x0000000000000000ULL)
-#define KVM_REG_MIPS_CP0	(KVM_REG_MIPS | 0x0000000000010000ULL)
-#define KVM_REG_MIPS_KVM	(KVM_REG_MIPS | 0x0000000000020000ULL)
-#define KVM_REG_MIPS_FPU	(KVM_REG_MIPS | 0x0000000000030000ULL)
-
-
-/*
- * KVM_REG_MIPS_GP - General purpose registers from kvm_regs.
- */
-
-#define KVM_REG_MIPS_R0		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  0)
-#define KVM_REG_MIPS_R1		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  1)
-#define KVM_REG_MIPS_R2		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  2)
-#define KVM_REG_MIPS_R3		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  3)
-#define KVM_REG_MIPS_R4		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  4)
-#define KVM_REG_MIPS_R5		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  5)
-#define KVM_REG_MIPS_R6		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  6)
-#define KVM_REG_MIPS_R7		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  7)
-#define KVM_REG_MIPS_R8		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  8)
-#define KVM_REG_MIPS_R9		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 |  9)
-#define KVM_REG_MIPS_R10	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 10)
-#define KVM_REG_MIPS_R11	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 11)
-#define KVM_REG_MIPS_R12	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 12)
-#define KVM_REG_MIPS_R13	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 13)
-#define KVM_REG_MIPS_R14	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 14)
-#define KVM_REG_MIPS_R15	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 15)
-#define KVM_REG_MIPS_R16	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 16)
-#define KVM_REG_MIPS_R17	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 17)
-#define KVM_REG_MIPS_R18	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 18)
-#define KVM_REG_MIPS_R19	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 19)
-#define KVM_REG_MIPS_R20	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 20)
-#define KVM_REG_MIPS_R21	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 21)
-#define KVM_REG_MIPS_R22	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 22)
-#define KVM_REG_MIPS_R23	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 23)
-#define KVM_REG_MIPS_R24	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 24)
-#define KVM_REG_MIPS_R25	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 25)
-#define KVM_REG_MIPS_R26	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 26)
-#define KVM_REG_MIPS_R27	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 27)
-#define KVM_REG_MIPS_R28	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 28)
-#define KVM_REG_MIPS_R29	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 29)
-#define KVM_REG_MIPS_R30	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 30)
-#define KVM_REG_MIPS_R31	(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 31)
-
-#define KVM_REG_MIPS_HI		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 32)
-#define KVM_REG_MIPS_LO		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 33)
-#define KVM_REG_MIPS_PC		(KVM_REG_MIPS_GP | KVM_REG_SIZE_U64 | 34)
-
-
-/*
- * KVM_REG_MIPS_CP0 - Coprocessor 0 registers.
- */
-
-#define KVM_REG_MIPS_MAAR	(KVM_REG_MIPS_CP0 | (1 << 8))
-#define KVM_REG_MIPS_CP0_MAAR(n)	(KVM_REG_MIPS_MAAR | \
-					 KVM_REG_SIZE_U64 | (n))
-
-
-/*
- * KVM_REG_MIPS_KVM - KVM specific control registers.
- */
-
-/*
- * CP0_Count control
- * DC:    Set 0: Master disable CP0_Count and set COUNT_RESUME to now
- *        Set 1: Master re-enable CP0_Count with unchanged bias, handling timer
- *               interrupts since COUNT_RESUME
- *        This can be used to freeze the timer to get a consistent snapshot of
- *        the CP0_Count and timer interrupt pending state, while also resuming
- *        safely without losing time or guest timer interrupts.
- * Other: Reserved, do not change.
- */
-#define KVM_REG_MIPS_COUNT_CTL	    (KVM_REG_MIPS_KVM | KVM_REG_SIZE_U64 | 0)
-#define KVM_REG_MIPS_COUNT_CTL_DC	0x00000001
-
-/*
- * CP0_Count resume monotonic nanoseconds
- * The monotonic nanosecond time of the last set of COUNT_CTL.DC (master
- * disable). Any reads and writes of Count related registers while
- * COUNT_CTL.DC=1 will appear to occur at this time. When COUNT_CTL.DC is
- * cleared again (master enable) any timer interrupts since this time will be
- * emulated.
- * Modifications to times in the future are rejected.
- */
-#define KVM_REG_MIPS_COUNT_RESUME   (KVM_REG_MIPS_KVM | KVM_REG_SIZE_U64 | 1)
-/*
- * CP0_Count rate in Hz
- * Specifies the rate of the CP0_Count timer in Hz. Modifications occur without
- * discontinuities in CP0_Count.
- */
-#define KVM_REG_MIPS_COUNT_HZ	    (KVM_REG_MIPS_KVM | KVM_REG_SIZE_U64 | 2)
-
-
-/*
- * KVM_REG_MIPS_FPU - Floating Point and MIPS SIMD Architecture (MSA) registers.
- *
- *  bits[15..8]  - Register subset (see definitions below).
- *  bits[7..5]   - Must be zero.
- *  bits[4..0]   - Register number within register subset.
- */
-
-#define KVM_REG_MIPS_FPR	(KVM_REG_MIPS_FPU | 0x0000000000000000ULL)
-#define KVM_REG_MIPS_FCR	(KVM_REG_MIPS_FPU | 0x0000000000000100ULL)
-#define KVM_REG_MIPS_MSACR	(KVM_REG_MIPS_FPU | 0x0000000000000200ULL)
-
-/*
- * KVM_REG_MIPS_FPR - Floating point / Vector registers.
- */
-#define KVM_REG_MIPS_FPR_32(n)	(KVM_REG_MIPS_FPR | KVM_REG_SIZE_U32  | (n))
-#define KVM_REG_MIPS_FPR_64(n)	(KVM_REG_MIPS_FPR | KVM_REG_SIZE_U64  | (n))
-#define KVM_REG_MIPS_VEC_128(n)	(KVM_REG_MIPS_FPR | KVM_REG_SIZE_U128 | (n))
-
-/*
- * KVM_REG_MIPS_FCR - Floating point control registers.
- */
-#define KVM_REG_MIPS_FCR_IR	(KVM_REG_MIPS_FCR | KVM_REG_SIZE_U32 |  0)
-#define KVM_REG_MIPS_FCR_CSR	(KVM_REG_MIPS_FCR | KVM_REG_SIZE_U32 | 31)
-
-/*
- * KVM_REG_MIPS_MSACR - MIPS SIMD Architecture (MSA) control registers.
- */
-#define KVM_REG_MIPS_MSA_IR	 (KVM_REG_MIPS_MSACR | KVM_REG_SIZE_U32 |  0)
-#define KVM_REG_MIPS_MSA_CSR	 (KVM_REG_MIPS_MSACR | KVM_REG_SIZE_U32 |  1)
-
-
-/*
- * KVM MIPS specific structures and definitions
- *
- */
-struct kvm_debug_exit_arch {
-	__u64 epc;
-};
-
-/* for KVM_SET_GUEST_DEBUG */
-struct kvm_guest_debug_arch {
-};
-
-/* definition of registers in kvm_run */
-struct kvm_sync_regs {
-};
-
-/* dummy definition */
-struct kvm_sregs {
-};
-
-struct kvm_mips_interrupt {
-	/* in */
-	__u32 cpu;
-	__u32 irq;
-};
-
-#endif /* __LINUX_KVM_MIPS_H */
diff --git a/original/uapi/asm-mips/asm/kvm_para.h b/original/uapi/asm-mips/asm/kvm_para.h
deleted file mode 100644
index 7e16d7c..0000000
--- a/original/uapi/asm-mips/asm/kvm_para.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef _UAPI_ASM_MIPS_KVM_PARA_H
-#define _UAPI_ASM_MIPS_KVM_PARA_H
-
-
-#endif /* _UAPI_ASM_MIPS_KVM_PARA_H */
diff --git a/original/uapi/asm-mips/asm/mman.h b/original/uapi/asm-mips/asm/mman.h
deleted file mode 100644
index 57dc2ac..0000000
--- a/original/uapi/asm-mips/asm/mman.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 1999, 2002 by Ralf Baechle
- */
-#ifndef _ASM_MMAN_H
-#define _ASM_MMAN_H
-
-/*
- * Protections are chosen from these bits, OR'd together.  The
- * implementation does not necessarily support PROT_EXEC or PROT_WRITE
- * without PROT_READ.  The only guarantees are that no writing will be
- * allowed without PROT_WRITE and no access will be allowed for PROT_NONE.
- */
-#define PROT_NONE	0x00		/* page can not be accessed */
-#define PROT_READ	0x01		/* page can be read */
-#define PROT_WRITE	0x02		/* page can be written */
-#define PROT_EXEC	0x04		/* page can be executed */
-/*			0x08		   reserved for PROT_EXEC_NOFLUSH */
-#define PROT_SEM	0x10		/* page may be used for atomic ops */
-#define PROT_GROWSDOWN	0x01000000	/* mprotect flag: extend change to start of growsdown vma */
-#define PROT_GROWSUP	0x02000000	/* mprotect flag: extend change to end of growsup vma */
-
-/*
- * Flags for mmap
- */
-/* 0x01 - 0x03 are defined in linux/mman.h */
-#define MAP_TYPE	0x00f		/* Mask for type of mapping */
-#define MAP_FIXED	0x010		/* Interpret addr exactly */
-
-/* not used by linux, but here to make sure we don't clash with ABI defines */
-#define MAP_RENAME	0x020		/* Assign page to file */
-#define MAP_AUTOGROW	0x040		/* File may grow by writing */
-#define MAP_LOCAL	0x080		/* Copy on fork/sproc */
-#define MAP_AUTORSRV	0x100		/* Logical swap reserved on demand */
-
-/* These are linux-specific */
-#define MAP_NORESERVE	0x0400		/* don't check for reservations */
-#define MAP_ANONYMOUS	0x0800		/* don't use a file */
-#define MAP_GROWSDOWN	0x1000		/* stack-like segment */
-#define MAP_DENYWRITE	0x2000		/* ETXTBSY */
-#define MAP_EXECUTABLE	0x4000		/* mark it as an executable */
-#define MAP_LOCKED	0x8000		/* pages are locked */
-#define MAP_POPULATE	0x10000		/* populate (prefault) pagetables */
-#define MAP_NONBLOCK	0x20000		/* do not block on IO */
-#define MAP_STACK	0x40000		/* give out an address that is best suited for process/thread stacks */
-#define MAP_HUGETLB	0x80000		/* create a huge page mapping */
-#define MAP_FIXED_NOREPLACE 0x100000	/* MAP_FIXED which doesn't unmap underlying mapping */
-
-/*
- * Flags for msync
- */
-#define MS_ASYNC	0x0001		/* sync memory asynchronously */
-#define MS_INVALIDATE	0x0002		/* invalidate mappings & caches */
-#define MS_SYNC		0x0004		/* synchronous memory sync */
-
-/*
- * Flags for mlockall
- */
-#define MCL_CURRENT	1		/* lock all current mappings */
-#define MCL_FUTURE	2		/* lock all future mappings */
-#define MCL_ONFAULT	4		/* lock all pages that are faulted in */
-
-/*
- * Flags for mlock
- */
-#define MLOCK_ONFAULT	0x01		/* Lock pages in range after they are faulted in, do not prefault */
-
-#define MADV_NORMAL	0		/* no further special treatment */
-#define MADV_RANDOM	1		/* expect random page references */
-#define MADV_SEQUENTIAL 2		/* expect sequential page references */
-#define MADV_WILLNEED	3		/* will need these pages */
-#define MADV_DONTNEED	4		/* don't need these pages */
-
-/* common parameters: try to keep these consistent across architectures */
-#define MADV_FREE	8		/* free pages only if memory pressure */
-#define MADV_REMOVE	9		/* remove these pages & resources */
-#define MADV_DONTFORK	10		/* don't inherit across fork */
-#define MADV_DOFORK	11		/* do inherit across fork */
-
-#define MADV_MERGEABLE	 12		/* KSM may merge identical pages */
-#define MADV_UNMERGEABLE 13		/* KSM may not merge identical pages */
-#define MADV_HWPOISON	 100		/* poison a page for testing */
-
-#define MADV_HUGEPAGE	14		/* Worth backing with hugepages */
-#define MADV_NOHUGEPAGE 15		/* Not worth backing with hugepages */
-
-#define MADV_DONTDUMP	16		/* Explicity exclude from the core dump,
-					   overrides the coredump filter bits */
-#define MADV_DODUMP	17		/* Clear the MADV_NODUMP flag */
-
-#define MADV_WIPEONFORK 18		/* Zero memory on fork, child only */
-#define MADV_KEEPONFORK 19		/* Undo MADV_WIPEONFORK */
-
-#define MADV_COLD	20		/* deactivate these pages */
-#define MADV_PAGEOUT	21		/* reclaim these pages */
-
-/* compatibility flags */
-#define MAP_FILE	0
-
-#define PKEY_DISABLE_ACCESS	0x1
-#define PKEY_DISABLE_WRITE	0x2
-#define PKEY_ACCESS_MASK	(PKEY_DISABLE_ACCESS |\
-				 PKEY_DISABLE_WRITE)
-
-#endif /* _ASM_MMAN_H */
diff --git a/original/uapi/asm-mips/asm/msgbuf.h b/original/uapi/asm-mips/asm/msgbuf.h
deleted file mode 100644
index 46aa15b..0000000
--- a/original/uapi/asm-mips/asm/msgbuf.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _ASM_MSGBUF_H
-#define _ASM_MSGBUF_H
-
-
-/*
- * The msqid64_ds structure for the MIPS architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for:
- * - 2 miscellaneous unsigned long values
- */
-
-#if defined(__mips64)
-struct msqid64_ds {
-	struct ipc64_perm msg_perm;
-	__kernel_time_t msg_stime;	/* last msgsnd time */
-	__kernel_time_t msg_rtime;	/* last msgrcv time */
-	__kernel_time_t msg_ctime;	/* last change time */
-	unsigned long  msg_cbytes;	/* current number of bytes on queue */
-	unsigned long  msg_qnum;	/* number of messages in queue */
-	unsigned long  msg_qbytes;	/* max number of bytes on queue */
-	__kernel_pid_t msg_lspid;	/* pid of last msgsnd */
-	__kernel_pid_t msg_lrpid;	/* last receive pid */
-	unsigned long  __unused4;
-	unsigned long  __unused5;
-};
-#elif defined (__MIPSEB__)
-struct msqid64_ds {
-	struct ipc64_perm msg_perm;
-	unsigned long  msg_stime_high;
-	unsigned long  msg_stime;	/* last msgsnd time */
-	unsigned long  msg_rtime_high;
-	unsigned long  msg_rtime;	/* last msgrcv time */
-	unsigned long  msg_ctime_high;
-	unsigned long  msg_ctime;	/* last change time */
-	unsigned long  msg_cbytes;	/* current number of bytes on queue */
-	unsigned long  msg_qnum;	/* number of messages in queue */
-	unsigned long  msg_qbytes;	/* max number of bytes on queue */
-	__kernel_pid_t msg_lspid;	/* pid of last msgsnd */
-	__kernel_pid_t msg_lrpid;	/* last receive pid */
-	unsigned long  __unused4;
-	unsigned long  __unused5;
-};
-#elif defined (__MIPSEL__)
-struct msqid64_ds {
-	struct ipc64_perm msg_perm;
-	unsigned long  msg_stime;	/* last msgsnd time */
-	unsigned long  msg_stime_high;
-	unsigned long  msg_rtime;	/* last msgrcv time */
-	unsigned long  msg_rtime_high;
-	unsigned long  msg_ctime;	/* last change time */
-	unsigned long  msg_ctime_high;
-	unsigned long  msg_cbytes;	/* current number of bytes on queue */
-	unsigned long  msg_qnum;	/* number of messages in queue */
-	unsigned long  msg_qbytes;	/* max number of bytes on queue */
-	__kernel_pid_t msg_lspid;	/* pid of last msgsnd */
-	__kernel_pid_t msg_lrpid;	/* last receive pid */
-	unsigned long  __unused4;
-	unsigned long  __unused5;
-};
-#else
-#warning no endianess set
-#endif
-
-#endif /* _ASM_MSGBUF_H */
diff --git a/original/uapi/asm-mips/asm/param.h b/original/uapi/asm-mips/asm/param.h
deleted file mode 100644
index 3f337ed..0000000
--- a/original/uapi/asm-mips/asm/param.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright 1994 - 2000, 2002 Ralf Baechle (ralf@gnu.org)
- * Copyright 2000 Silicon Graphics, Inc.
- */
-#ifndef _ASM_PARAM_H
-#define _ASM_PARAM_H
-
-#define EXEC_PAGESIZE	65536
-
-#include <asm-generic/param.h>
-
-#endif /* _ASM_PARAM_H */
diff --git a/original/uapi/asm-mips/asm/poll.h b/original/uapi/asm-mips/asm/poll.h
deleted file mode 100644
index ad289d7..0000000
--- a/original/uapi/asm-mips/asm/poll.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef __ASM_POLL_H
-#define __ASM_POLL_H
-
-#define POLLWRNORM	POLLOUT
-#define POLLWRBAND	0x0100
-
-#include <asm-generic/poll.h>
-
-#endif /* __ASM_POLL_H */
diff --git a/original/uapi/asm-mips/asm/posix_types.h b/original/uapi/asm-mips/asm/posix_types.h
deleted file mode 100644
index f0ccb5b..0000000
--- a/original/uapi/asm-mips/asm/posix_types.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996, 97, 98, 99, 2000 by Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */
-#ifndef _ASM_POSIX_TYPES_H
-#define _ASM_POSIX_TYPES_H
-
-#include <asm/sgidefs.h>
-
-/*
- * This file is generally used by user-level software, so you need to
- * be a little careful about namespace pollution etc.  Also, we cannot
- * assume GCC is being used.
- */
-
-typedef long		__kernel_daddr_t;
-#define __kernel_daddr_t __kernel_daddr_t
-
-#include <asm-generic/posix_types.h>
-
-#endif /* _ASM_POSIX_TYPES_H */
diff --git a/original/uapi/asm-mips/asm/ptrace.h b/original/uapi/asm-mips/asm/ptrace.h
deleted file mode 100644
index f3c0254..0000000
--- a/original/uapi/asm-mips/asm/ptrace.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1994, 95, 96, 97, 98, 99, 2000 by Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */
-#ifndef _UAPI_ASM_PTRACE_H
-#define _UAPI_ASM_PTRACE_H
-
-#include <linux/types.h>
-
-/* 0 - 31 are integer registers, 32 - 63 are fp registers.  */
-#define FPR_BASE	32
-#define PC		64
-#define CAUSE		65
-#define BADVADDR	66
-#define MMHI		67
-#define MMLO		68
-#define FPC_CSR		69
-#define FPC_EIR		70
-#define DSP_BASE	71		/* 3 more hi / lo register pairs */
-#define DSP_CONTROL	77
-#define ACX		78
-
-/*
- * This struct defines the registers as used by PTRACE_{GET,SET}REGS. The
- * format is the same for both 32- and 64-bit processes. Registers for 32-bit
- * processes are sign extended.
- */
-#ifdef __KERNEL__
-struct user_pt_regs {
-#else
-struct pt_regs {
-#endif
-	/* Saved main processor registers. */
-	__u64 regs[32];
-
-	/* Saved special registers. */
-	__u64 lo;
-	__u64 hi;
-	__u64 cp0_epc;
-	__u64 cp0_badvaddr;
-	__u64 cp0_status;
-	__u64 cp0_cause;
-} __attribute__ ((aligned (8)));
-
-/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
-#define PTRACE_GETREGS		12
-#define PTRACE_SETREGS		13
-#define PTRACE_GETFPREGS		14
-#define PTRACE_SETFPREGS		15
-/* #define PTRACE_GETFPXREGS		18 */
-/* #define PTRACE_SETFPXREGS		19 */
-
-#define PTRACE_OLDSETOPTIONS	21
-
-#define PTRACE_GET_THREAD_AREA	25
-#define PTRACE_SET_THREAD_AREA	26
-
-/* Calls to trace a 64bit program from a 32bit program.	 */
-#define PTRACE_PEEKTEXT_3264	0xc0
-#define PTRACE_PEEKDATA_3264	0xc1
-#define PTRACE_POKETEXT_3264	0xc2
-#define PTRACE_POKEDATA_3264	0xc3
-#define PTRACE_GET_THREAD_AREA_3264	0xc4
-
-/* Read and write watchpoint registers.	 */
-enum pt_watch_style {
-	pt_watch_style_mips32,
-	pt_watch_style_mips64
-};
-struct mips32_watch_regs {
-	unsigned int watchlo[8];
-	/* Lower 16 bits of watchhi. */
-	unsigned short watchhi[8];
-	/* Valid mask and I R W bits.
-	 * bit 0 -- 1 if W bit is usable.
-	 * bit 1 -- 1 if R bit is usable.
-	 * bit 2 -- 1 if I bit is usable.
-	 * bits 3 - 11 -- Valid watchhi mask bits.
-	 */
-	unsigned short watch_masks[8];
-	/* The number of valid watch register pairs.  */
-	unsigned int num_valid;
-} __attribute__((aligned(8)));
-
-struct mips64_watch_regs {
-	unsigned long long watchlo[8];
-	unsigned short watchhi[8];
-	unsigned short watch_masks[8];
-	unsigned int num_valid;
-} __attribute__((aligned(8)));
-
-struct pt_watch_regs {
-	enum pt_watch_style style;
-	union {
-		struct mips32_watch_regs mips32;
-		struct mips64_watch_regs mips64;
-	};
-};
-
-#define PTRACE_GET_WATCH_REGS	0xd0
-#define PTRACE_SET_WATCH_REGS	0xd1
-
-
-#endif /* _UAPI_ASM_PTRACE_H */
diff --git a/original/uapi/asm-mips/asm/reg.h b/original/uapi/asm-mips/asm/reg.h
deleted file mode 100644
index 56d15cb..0000000
--- a/original/uapi/asm-mips/asm/reg.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Various register offset definitions for debuggers, core file
- * examiners and whatnot.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 1999 Ralf Baechle
- * Copyright (C) 1995, 1999 Silicon Graphics
- */
-#ifndef __UAPI_ASM_MIPS_REG_H
-#define __UAPI_ASM_MIPS_REG_H
-
-#define MIPS32_EF_R0		6
-#define MIPS32_EF_R1		7
-#define MIPS32_EF_R2		8
-#define MIPS32_EF_R3		9
-#define MIPS32_EF_R4		10
-#define MIPS32_EF_R5		11
-#define MIPS32_EF_R6		12
-#define MIPS32_EF_R7		13
-#define MIPS32_EF_R8		14
-#define MIPS32_EF_R9		15
-#define MIPS32_EF_R10		16
-#define MIPS32_EF_R11		17
-#define MIPS32_EF_R12		18
-#define MIPS32_EF_R13		19
-#define MIPS32_EF_R14		20
-#define MIPS32_EF_R15		21
-#define MIPS32_EF_R16		22
-#define MIPS32_EF_R17		23
-#define MIPS32_EF_R18		24
-#define MIPS32_EF_R19		25
-#define MIPS32_EF_R20		26
-#define MIPS32_EF_R21		27
-#define MIPS32_EF_R22		28
-#define MIPS32_EF_R23		29
-#define MIPS32_EF_R24		30
-#define MIPS32_EF_R25		31
-
-/*
- * k0/k1 unsaved
- */
-#define MIPS32_EF_R26		32
-#define MIPS32_EF_R27		33
-
-#define MIPS32_EF_R28		34
-#define MIPS32_EF_R29		35
-#define MIPS32_EF_R30		36
-#define MIPS32_EF_R31		37
-
-/*
- * Saved special registers
- */
-#define MIPS32_EF_LO		38
-#define MIPS32_EF_HI		39
-
-#define MIPS32_EF_CP0_EPC	40
-#define MIPS32_EF_CP0_BADVADDR	41
-#define MIPS32_EF_CP0_STATUS	42
-#define MIPS32_EF_CP0_CAUSE	43
-#define MIPS32_EF_UNUSED0	44
-
-#define MIPS32_EF_SIZE		180
-
-#define MIPS64_EF_R0		0
-#define MIPS64_EF_R1		1
-#define MIPS64_EF_R2		2
-#define MIPS64_EF_R3		3
-#define MIPS64_EF_R4		4
-#define MIPS64_EF_R5		5
-#define MIPS64_EF_R6		6
-#define MIPS64_EF_R7		7
-#define MIPS64_EF_R8		8
-#define MIPS64_EF_R9		9
-#define MIPS64_EF_R10		10
-#define MIPS64_EF_R11		11
-#define MIPS64_EF_R12		12
-#define MIPS64_EF_R13		13
-#define MIPS64_EF_R14		14
-#define MIPS64_EF_R15		15
-#define MIPS64_EF_R16		16
-#define MIPS64_EF_R17		17
-#define MIPS64_EF_R18		18
-#define MIPS64_EF_R19		19
-#define MIPS64_EF_R20		20
-#define MIPS64_EF_R21		21
-#define MIPS64_EF_R22		22
-#define MIPS64_EF_R23		23
-#define MIPS64_EF_R24		24
-#define MIPS64_EF_R25		25
-
-/*
- * k0/k1 unsaved
- */
-#define MIPS64_EF_R26		26
-#define MIPS64_EF_R27		27
-
-
-#define MIPS64_EF_R28		28
-#define MIPS64_EF_R29		29
-#define MIPS64_EF_R30		30
-#define MIPS64_EF_R31		31
-
-/*
- * Saved special registers
- */
-#define MIPS64_EF_LO		32
-#define MIPS64_EF_HI		33
-
-#define MIPS64_EF_CP0_EPC	34
-#define MIPS64_EF_CP0_BADVADDR	35
-#define MIPS64_EF_CP0_STATUS	36
-#define MIPS64_EF_CP0_CAUSE	37
-
-#define MIPS64_EF_SIZE		304	/* size in bytes */
-
-#if _MIPS_SIM == _MIPS_SIM_ABI32
-
-#define EF_R0			MIPS32_EF_R0
-#define EF_R1			MIPS32_EF_R1
-#define EF_R2			MIPS32_EF_R2
-#define EF_R3			MIPS32_EF_R3
-#define EF_R4			MIPS32_EF_R4
-#define EF_R5			MIPS32_EF_R5
-#define EF_R6			MIPS32_EF_R6
-#define EF_R7			MIPS32_EF_R7
-#define EF_R8			MIPS32_EF_R8
-#define EF_R9			MIPS32_EF_R9
-#define EF_R10			MIPS32_EF_R10
-#define EF_R11			MIPS32_EF_R11
-#define EF_R12			MIPS32_EF_R12
-#define EF_R13			MIPS32_EF_R13
-#define EF_R14			MIPS32_EF_R14
-#define EF_R15			MIPS32_EF_R15
-#define EF_R16			MIPS32_EF_R16
-#define EF_R17			MIPS32_EF_R17
-#define EF_R18			MIPS32_EF_R18
-#define EF_R19			MIPS32_EF_R19
-#define EF_R20			MIPS32_EF_R20
-#define EF_R21			MIPS32_EF_R21
-#define EF_R22			MIPS32_EF_R22
-#define EF_R23			MIPS32_EF_R23
-#define EF_R24			MIPS32_EF_R24
-#define EF_R25			MIPS32_EF_R25
-#define EF_R26			MIPS32_EF_R26
-#define EF_R27			MIPS32_EF_R27
-#define EF_R28			MIPS32_EF_R28
-#define EF_R29			MIPS32_EF_R29
-#define EF_R30			MIPS32_EF_R30
-#define EF_R31			MIPS32_EF_R31
-#define EF_LO			MIPS32_EF_LO
-#define EF_HI			MIPS32_EF_HI
-#define EF_CP0_EPC		MIPS32_EF_CP0_EPC
-#define EF_CP0_BADVADDR		MIPS32_EF_CP0_BADVADDR
-#define EF_CP0_STATUS		MIPS32_EF_CP0_STATUS
-#define EF_CP0_CAUSE		MIPS32_EF_CP0_CAUSE
-#define EF_UNUSED0		MIPS32_EF_UNUSED0
-#define EF_SIZE			MIPS32_EF_SIZE
-
-#elif _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
-
-#define EF_R0			MIPS64_EF_R0
-#define EF_R1			MIPS64_EF_R1
-#define EF_R2			MIPS64_EF_R2
-#define EF_R3			MIPS64_EF_R3
-#define EF_R4			MIPS64_EF_R4
-#define EF_R5			MIPS64_EF_R5
-#define EF_R6			MIPS64_EF_R6
-#define EF_R7			MIPS64_EF_R7
-#define EF_R8			MIPS64_EF_R8
-#define EF_R9			MIPS64_EF_R9
-#define EF_R10			MIPS64_EF_R10
-#define EF_R11			MIPS64_EF_R11
-#define EF_R12			MIPS64_EF_R12
-#define EF_R13			MIPS64_EF_R13
-#define EF_R14			MIPS64_EF_R14
-#define EF_R15			MIPS64_EF_R15
-#define EF_R16			MIPS64_EF_R16
-#define EF_R17			MIPS64_EF_R17
-#define EF_R18			MIPS64_EF_R18
-#define EF_R19			MIPS64_EF_R19
-#define EF_R20			MIPS64_EF_R20
-#define EF_R21			MIPS64_EF_R21
-#define EF_R22			MIPS64_EF_R22
-#define EF_R23			MIPS64_EF_R23
-#define EF_R24			MIPS64_EF_R24
-#define EF_R25			MIPS64_EF_R25
-#define EF_R26			MIPS64_EF_R26
-#define EF_R27			MIPS64_EF_R27
-#define EF_R28			MIPS64_EF_R28
-#define EF_R29			MIPS64_EF_R29
-#define EF_R30			MIPS64_EF_R30
-#define EF_R31			MIPS64_EF_R31
-#define EF_LO			MIPS64_EF_LO
-#define EF_HI			MIPS64_EF_HI
-#define EF_CP0_EPC		MIPS64_EF_CP0_EPC
-#define EF_CP0_BADVADDR		MIPS64_EF_CP0_BADVADDR
-#define EF_CP0_STATUS		MIPS64_EF_CP0_STATUS
-#define EF_CP0_CAUSE		MIPS64_EF_CP0_CAUSE
-#define EF_SIZE			MIPS64_EF_SIZE
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
-
-#endif /* __UAPI_ASM_MIPS_REG_H */
diff --git a/original/uapi/asm-mips/asm/resource.h b/original/uapi/asm-mips/asm/resource.h
deleted file mode 100644
index 372ff8f..0000000
--- a/original/uapi/asm-mips/asm/resource.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 96, 98, 99, 2000 by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- */
-#ifndef _ASM_RESOURCE_H
-#define _ASM_RESOURCE_H
-
-
-/*
- * These five resource limit IDs have a MIPS/Linux-specific ordering,
- * the rest comes from the generic header:
- */
-#define RLIMIT_NOFILE		5	/* max number of open files */
-#define RLIMIT_AS		6	/* address space limit */
-#define RLIMIT_RSS		7	/* max resident set size */
-#define RLIMIT_NPROC		8	/* max number of processes */
-#define RLIMIT_MEMLOCK		9	/* max locked-in-memory address space */
-
-/*
- * SuS says limits have to be unsigned.
- * Which makes a ton more sense anyway,
- * but we keep the old value on MIPS32,
- * for compatibility:
- */
-#ifndef __mips64
-# define RLIM_INFINITY		0x7fffffffUL
-#endif
-
-#include <asm-generic/resource.h>
-
-#endif /* _ASM_RESOURCE_H */
diff --git a/original/uapi/asm-mips/asm/sembuf.h b/original/uapi/asm-mips/asm/sembuf.h
deleted file mode 100644
index 60c89e6..0000000
--- a/original/uapi/asm-mips/asm/sembuf.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _ASM_SEMBUF_H
-#define _ASM_SEMBUF_H
-
-/*
- * The semid64_ds structure for the MIPS architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * Pad space is left for 2 miscellaneous 64-bit values on mips64,
- * but used for the upper 32 bit of the time values on mips32.
- */
-
-#ifdef __mips64
-struct semid64_ds {
-	struct ipc64_perm sem_perm;		/* permissions .. see ipc.h */
-	__kernel_time_t sem_otime;		/* last semop time */
-	__kernel_time_t sem_ctime;		/* last change time */
-	unsigned long	sem_nsems;		/* no. of semaphores in array */
-	unsigned long	__unused1;
-	unsigned long	__unused2;
-};
-#else
-struct semid64_ds {
-	struct ipc64_perm sem_perm;		/* permissions .. see ipc.h */
-	unsigned long   sem_otime;		/* last semop time */
-	unsigned long   sem_ctime;		/* last change time */
-	unsigned long	sem_nsems;		/* no. of semaphores in array */
-	unsigned long	sem_otime_high;
-	unsigned long	sem_ctime_high;
-};
-#endif
-
-#endif /* _ASM_SEMBUF_H */
diff --git a/original/uapi/asm-mips/asm/setup.h b/original/uapi/asm-mips/asm/setup.h
deleted file mode 100644
index 7d48c43..0000000
--- a/original/uapi/asm-mips/asm/setup.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_MIPS_SETUP_H
-#define _UAPI_MIPS_SETUP_H
-
-#define COMMAND_LINE_SIZE	4096
-
-
-#endif /* _UAPI_MIPS_SETUP_H */
diff --git a/original/uapi/asm-mips/asm/sgidefs.h b/original/uapi/asm-mips/asm/sgidefs.h
deleted file mode 100644
index 69c3de9..0000000
--- a/original/uapi/asm-mips/asm/sgidefs.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996, 1999, 2001 Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- * Copyright (C) 2001 MIPS Technologies, Inc.
- */
-#ifndef __ASM_SGIDEFS_H
-#define __ASM_SGIDEFS_H
-
-/*
- * Definitions for the ISA levels
- *
- * With the introduction of MIPS32 / MIPS64 instruction sets definitions
- * MIPS ISAs are no longer subsets of each other.  Therefore comparisons
- * on these symbols except with == may result in unexpected results and
- * are forbidden!
- */
-#define _MIPS_ISA_MIPS1		1
-#define _MIPS_ISA_MIPS2		2
-#define _MIPS_ISA_MIPS3		3
-#define _MIPS_ISA_MIPS4		4
-#define _MIPS_ISA_MIPS5		5
-#define _MIPS_ISA_MIPS32	6
-#define _MIPS_ISA_MIPS64	7
-
-/*
- * Subprogram calling convention
- */
-#define _MIPS_SIM_ABI32		1
-#define _MIPS_SIM_NABI32	2
-#define _MIPS_SIM_ABI64		3
-
-#endif /* __ASM_SGIDEFS_H */
diff --git a/original/uapi/asm-mips/asm/shmbuf.h b/original/uapi/asm-mips/asm/shmbuf.h
deleted file mode 100644
index 9b9bba3..0000000
--- a/original/uapi/asm-mips/asm/shmbuf.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _ASM_SHMBUF_H
-#define _ASM_SHMBUF_H
-
-/*
- * The shmid64_ds structure for the MIPS architecture.
- * Note extra padding because this structure is passed back and forth
- * between kernel and user space.
- *
- * As MIPS was lacking proper padding after shm_?time, we use 48 bits
- * of the padding at the end to store a few additional bits of the time.
- * libc implementations need to take care to convert this into a proper
- * data structure when moving to 64-bit time_t.
- */
-
-#ifdef __mips64
-struct shmid64_ds {
-	struct ipc64_perm	shm_perm;	/* operation perms */
-	size_t			shm_segsz;	/* size of segment (bytes) */
-	__kernel_time_t		shm_atime;	/* last attach time */
-	__kernel_time_t		shm_dtime;	/* last detach time */
-	__kernel_time_t		shm_ctime;	/* last change time */
-	__kernel_pid_t		shm_cpid;	/* pid of creator */
-	__kernel_pid_t		shm_lpid;	/* pid of last operator */
-	unsigned long		shm_nattch;	/* no. of current attaches */
-	unsigned long		__unused1;
-	unsigned long		__unused2;
-};
-#else
-struct shmid64_ds {
-	struct ipc64_perm	shm_perm;	/* operation perms */
-	size_t			shm_segsz;	/* size of segment (bytes) */
-	unsigned long		shm_atime;	/* last attach time */
-	unsigned long		shm_dtime;	/* last detach time */
-	unsigned long		shm_ctime;	/* last change time */
-	__kernel_pid_t		shm_cpid;	/* pid of creator */
-	__kernel_pid_t		shm_lpid;	/* pid of last operator */
-	unsigned long		shm_nattch;	/* no. of current attaches */
-	unsigned short		shm_atime_high;
-	unsigned short		shm_dtime_high;
-	unsigned short		shm_ctime_high;
-	unsigned short		__unused1;
-};
-#endif
-
-struct shminfo64 {
-	unsigned long	shmmax;
-	unsigned long	shmmin;
-	unsigned long	shmmni;
-	unsigned long	shmseg;
-	unsigned long	shmall;
-	unsigned long	__unused1;
-	unsigned long	__unused2;
-	unsigned long	__unused3;
-	unsigned long	__unused4;
-};
-
-#endif /* _ASM_SHMBUF_H */
diff --git a/original/uapi/asm-mips/asm/sigcontext.h b/original/uapi/asm-mips/asm/sigcontext.h
deleted file mode 100644
index d0a540e..0000000
--- a/original/uapi/asm-mips/asm/sigcontext.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996, 1997, 1999 by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- */
-#ifndef _UAPI_ASM_SIGCONTEXT_H
-#define _UAPI_ASM_SIGCONTEXT_H
-
-#include <linux/types.h>
-#include <asm/sgidefs.h>
-
-/* scalar FP context was used */
-#define USED_FP			(1 << 0)
-
-/* the value of Status.FR when context was saved */
-#define USED_FR1		(1 << 1)
-
-/* FR=1, but with odd singles in bits 63:32 of preceding even double */
-#define USED_HYBRID_FPRS	(1 << 2)
-
-/* extended context was used, see struct extcontext for details */
-#define USED_EXTCONTEXT		(1 << 3)
-
-#if _MIPS_SIM == _MIPS_SIM_ABI32
-
-/*
- * Keep this struct definition in sync with the sigcontext fragment
- * in arch/mips/kernel/asm-offsets.c
- */
-struct sigcontext {
-	unsigned int		sc_regmask;	/* Unused */
-	unsigned int		sc_status;	/* Unused */
-	unsigned long long	sc_pc;
-	unsigned long long	sc_regs[32];
-	unsigned long long	sc_fpregs[32];
-	unsigned int		sc_acx;		/* Was sc_ownedfp */
-	unsigned int		sc_fpc_csr;
-	unsigned int		sc_fpc_eir;	/* Unused */
-	unsigned int		sc_used_math;
-	unsigned int		sc_dsp;		/* dsp status, was sc_ssflags */
-	unsigned long long	sc_mdhi;
-	unsigned long long	sc_mdlo;
-	unsigned long		sc_hi1;		/* Was sc_cause */
-	unsigned long		sc_lo1;		/* Was sc_badvaddr */
-	unsigned long		sc_hi2;		/* Was sc_sigset[4] */
-	unsigned long		sc_lo2;
-	unsigned long		sc_hi3;
-	unsigned long		sc_lo3;
-};
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-
-#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
-
-#include <linux/posix_types.h>
-/*
- * Keep this struct definition in sync with the sigcontext fragment
- * in arch/mips/kernel/asm-offsets.c
- *
- * Warning: this structure illdefined with sc_badvaddr being just an unsigned
- * int so it was changed to unsigned long in 2.6.0-test1.  This may break
- * binary compatibility - no prisoners.
- * DSP ASE in 2.6.12-rc4.  Turn sc_mdhi and sc_mdlo into an array of four
- * entries, add sc_dsp and sc_reserved for padding.  No prisoners.
- */
-struct sigcontext {
-	__u64	sc_regs[32];
-	__u64	sc_fpregs[32];
-	__u64	sc_mdhi;
-	__u64	sc_hi1;
-	__u64	sc_hi2;
-	__u64	sc_hi3;
-	__u64	sc_mdlo;
-	__u64	sc_lo1;
-	__u64	sc_lo2;
-	__u64	sc_lo3;
-	__u64	sc_pc;
-	__u32	sc_fpc_csr;
-	__u32	sc_used_math;
-	__u32	sc_dsp;
-	__u32	sc_reserved;
-};
-
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32 */
-
-#endif /* _UAPI_ASM_SIGCONTEXT_H */
diff --git a/original/uapi/asm-mips/asm/siginfo.h b/original/uapi/asm-mips/asm/siginfo.h
deleted file mode 100644
index c34c7ee..0000000
--- a/original/uapi/asm-mips/asm/siginfo.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1998, 1999, 2001, 2003 Ralf Baechle
- * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
- */
-#ifndef _UAPI_ASM_SIGINFO_H
-#define _UAPI_ASM_SIGINFO_H
-
-
-#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(long) + 2*sizeof(int))
-#undef __ARCH_SI_TRAPNO /* exception code needs to fill this ...  */
-
-#define __ARCH_HAS_SWAPPED_SIGINFO
-
-#include <asm-generic/siginfo.h>
-
-/*
- * si_code values
- * Again these have been chosen to be IRIX compatible.
- */
-#undef SI_ASYNCIO
-#undef SI_TIMER
-#undef SI_MESGQ
-#define SI_ASYNCIO	-2	/* sent by AIO completion */
-#define SI_TIMER	-3	/* sent by timer expiration */
-#define SI_MESGQ	-4	/* sent by real time mesq state change */
-
-#endif /* _UAPI_ASM_SIGINFO_H */
diff --git a/original/uapi/asm-mips/asm/signal.h b/original/uapi/asm-mips/asm/signal.h
deleted file mode 100644
index 53104b1..0000000
--- a/original/uapi/asm-mips/asm/signal.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 96, 97, 98, 99, 2003 by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- */
-#ifndef _UAPI_ASM_SIGNAL_H
-#define _UAPI_ASM_SIGNAL_H
-
-#include <linux/types.h>
-
-#define _NSIG		128
-#define _NSIG_BPW	(sizeof(unsigned long) * 8)
-#define _NSIG_WORDS	(_NSIG / _NSIG_BPW)
-
-typedef struct {
-	unsigned long sig[_NSIG_WORDS];
-} sigset_t;
-
-typedef unsigned long old_sigset_t;		/* at least 32 bits */
-
-#define SIGHUP		 1	/* Hangup (POSIX).  */
-#define SIGINT		 2	/* Interrupt (ANSI).  */
-#define SIGQUIT		 3	/* Quit (POSIX).  */
-#define SIGILL		 4	/* Illegal instruction (ANSI).	*/
-#define SIGTRAP		 5	/* Trace trap (POSIX).	*/
-#define SIGIOT		 6	/* IOT trap (4.2 BSD).	*/
-#define SIGABRT		 SIGIOT /* Abort (ANSI).  */
-#define SIGEMT		 7
-#define SIGFPE		 8	/* Floating-point exception (ANSI).  */
-#define SIGKILL		 9	/* Kill, unblockable (POSIX).  */
-#define SIGBUS		10	/* BUS error (4.2 BSD).	 */
-#define SIGSEGV		11	/* Segmentation violation (ANSI).  */
-#define SIGSYS		12
-#define SIGPIPE		13	/* Broken pipe (POSIX).	 */
-#define SIGALRM		14	/* Alarm clock (POSIX).	 */
-#define SIGTERM		15	/* Termination (ANSI).	*/
-#define SIGUSR1		16	/* User-defined signal 1 (POSIX).  */
-#define SIGUSR2		17	/* User-defined signal 2 (POSIX).  */
-#define SIGCHLD		18	/* Child status has changed (POSIX).  */
-#define SIGCLD		SIGCHLD /* Same as SIGCHLD (System V).	*/
-#define SIGPWR		19	/* Power failure restart (System V).  */
-#define SIGWINCH	20	/* Window size change (4.3 BSD, Sun).  */
-#define SIGURG		21	/* Urgent condition on socket (4.2 BSD).  */
-#define SIGIO		22	/* I/O now possible (4.2 BSD).	*/
-#define SIGPOLL		SIGIO	/* Pollable event occurred (System V).	*/
-#define SIGSTOP		23	/* Stop, unblockable (POSIX).  */
-#define SIGTSTP		24	/* Keyboard stop (POSIX).  */
-#define SIGCONT		25	/* Continue (POSIX).  */
-#define SIGTTIN		26	/* Background read from tty (POSIX).  */
-#define SIGTTOU		27	/* Background write to tty (POSIX).  */
-#define SIGVTALRM	28	/* Virtual alarm clock (4.2 BSD).  */
-#define SIGPROF		29	/* Profiling alarm clock (4.2 BSD).  */
-#define SIGXCPU		30	/* CPU limit exceeded (4.2 BSD).  */
-#define SIGXFSZ		31	/* File size limit exceeded (4.2 BSD).	*/
-
-/* These should not be considered constants from userland.  */
-#define SIGRTMIN	32
-#define SIGRTMAX	_NSIG
-
-/*
- * SA_FLAGS values:
- *
- * SA_ONSTACK indicates that a registered stack_t will be used.
- * SA_RESTART flag to get restarting signals (which were the default long ago)
- * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
- * SA_RESETHAND clears the handler when the signal is delivered.
- * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
- * SA_NODEFER prevents the current signal from being masked in the handler.
- *
- * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
- * Unix names RESETHAND and NODEFER respectively.
- *
- * SA_RESTORER used to be defined as 0x04000000 but only the O32 ABI ever
- * supported its use and no libc was using it, so the entire sa-restorer
- * functionality was removed with lmo commit 39bffc12c3580ab for 2.5.48
- * retaining only the SA_RESTORER definition as a reminder to avoid
- * accidental reuse of the mask bit.
- */
-#define SA_ONSTACK	0x08000000
-#define SA_RESETHAND	0x80000000
-#define SA_RESTART	0x10000000
-#define SA_SIGINFO	0x00000008
-#define SA_NODEFER	0x40000000
-#define SA_NOCLDWAIT	0x00010000
-#define SA_NOCLDSTOP	0x00000001
-
-#define SA_NOMASK	SA_NODEFER
-#define SA_ONESHOT	SA_RESETHAND
-
-#define MINSIGSTKSZ    2048
-#define SIGSTKSZ       8192
-
-
-#define SIG_BLOCK	1	/* for blocking signals */
-#define SIG_UNBLOCK	2	/* for unblocking signals */
-#define SIG_SETMASK	3	/* for setting the signal mask */
-
-#include <asm-generic/signal-defs.h>
-
-#ifndef __KERNEL__
-struct sigaction {
-	unsigned int	sa_flags;
-	__sighandler_t	sa_handler;
-	sigset_t	sa_mask;
-};
-#endif
-
-/* IRIX compatible stack_t  */
-typedef struct sigaltstack {
-	void __user *ss_sp;
-	size_t ss_size;
-	int ss_flags;
-} stack_t;
-
-
-#endif /* _UAPI_ASM_SIGNAL_H */
diff --git a/original/uapi/asm-mips/asm/socket.h b/original/uapi/asm-mips/asm/socket.h
deleted file mode 100644
index d0a9ed2..0000000
--- a/original/uapi/asm-mips/asm/socket.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1997, 1999, 2000, 2001 Ralf Baechle
- * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
- */
-#ifndef _UAPI_ASM_SOCKET_H
-#define _UAPI_ASM_SOCKET_H
-
-#include <linux/posix_types.h>
-#include <asm/sockios.h>
-
-/*
- * For setsockopt(2)
- *
- * This defines are ABI conformant as far as Linux supports these ...
- */
-#define SOL_SOCKET	0xffff
-
-#define SO_DEBUG	0x0001	/* Record debugging information.  */
-#define SO_REUSEADDR	0x0004	/* Allow reuse of local addresses.  */
-#define SO_KEEPALIVE	0x0008	/* Keep connections alive and send
-				   SIGPIPE when they die.  */
-#define SO_DONTROUTE	0x0010	/* Don't do local routing.  */
-#define SO_BROADCAST	0x0020	/* Allow transmission of
-				   broadcast messages.	*/
-#define SO_LINGER	0x0080	/* Block on close of a reliable
-				   socket to transmit pending data.  */
-#define SO_OOBINLINE 0x0100	/* Receive out-of-band data in-band.  */
-#define SO_REUSEPORT 0x0200	/* Allow local address and port reuse.  */
-
-#define SO_TYPE		0x1008	/* Compatible name for SO_STYLE.  */
-#define SO_STYLE	SO_TYPE /* Synonym */
-#define SO_ERROR	0x1007	/* get error status and clear */
-#define SO_SNDBUF	0x1001	/* Send buffer size. */
-#define SO_RCVBUF	0x1002	/* Receive buffer. */
-#define SO_SNDLOWAT	0x1003	/* send low-water mark */
-#define SO_RCVLOWAT	0x1004	/* receive low-water mark */
-#define SO_SNDTIMEO_OLD	0x1005	/* send timeout */
-#define SO_RCVTIMEO_OLD	0x1006	/* receive timeout */
-#define SO_ACCEPTCONN	0x1009
-#define SO_PROTOCOL	0x1028	/* protocol type */
-#define SO_DOMAIN	0x1029	/* domain/socket family */
-
-/* linux-specific, might as well be the same as on i386 */
-#define SO_NO_CHECK	11
-#define SO_PRIORITY	12
-#define SO_BSDCOMPAT	14
-
-#define SO_PASSCRED	17
-#define SO_PEERCRED	18
-
-/* Security levels - as per NRL IPv6 - don't actually do anything */
-#define SO_SECURITY_AUTHENTICATION		22
-#define SO_SECURITY_ENCRYPTION_TRANSPORT	23
-#define SO_SECURITY_ENCRYPTION_NETWORK		24
-
-#define SO_BINDTODEVICE		25
-
-/* Socket filtering */
-#define SO_ATTACH_FILTER	26
-#define SO_DETACH_FILTER	27
-#define SO_GET_FILTER		SO_ATTACH_FILTER
-
-#define SO_PEERNAME		28
-
-#define SO_PEERSEC		30
-#define SO_SNDBUFFORCE		31
-#define SO_RCVBUFFORCE		33
-#define SO_PASSSEC		34
-
-#define SO_MARK			36
-
-#define SO_RXQ_OVFL		40
-
-#define SO_WIFI_STATUS		41
-#define SCM_WIFI_STATUS		SO_WIFI_STATUS
-#define SO_PEEK_OFF		42
-
-/* Instruct lower device to use last 4-bytes of skb data as FCS */
-#define SO_NOFCS		43
-
-#define SO_LOCK_FILTER		44
-
-#define SO_SELECT_ERR_QUEUE	45
-
-#define SO_BUSY_POLL		46
-
-#define SO_MAX_PACING_RATE	47
-
-#define SO_BPF_EXTENSIONS	48
-
-#define SO_INCOMING_CPU		49
-
-#define SO_ATTACH_BPF		50
-#define SO_DETACH_BPF		SO_DETACH_FILTER
-
-#define SO_ATTACH_REUSEPORT_CBPF	51
-#define SO_ATTACH_REUSEPORT_EBPF	52
-
-#define SO_CNX_ADVICE		53
-
-#define SCM_TIMESTAMPING_OPT_STATS	54
-
-#define SO_MEMINFO		55
-
-#define SO_INCOMING_NAPI_ID	56
-
-#define SO_COOKIE		57
-
-#define SCM_TIMESTAMPING_PKTINFO	58
-
-#define SO_PEERGROUPS		59
-
-#define SO_ZEROCOPY		60
-
-#define SO_TXTIME		61
-#define SCM_TXTIME		SO_TXTIME
-
-#define SO_BINDTOIFINDEX	62
-
-#define SO_TIMESTAMP_OLD        29
-#define SO_TIMESTAMPNS_OLD      35
-#define SO_TIMESTAMPING_OLD     37
-
-#define SO_TIMESTAMP_NEW        63
-#define SO_TIMESTAMPNS_NEW      64
-#define SO_TIMESTAMPING_NEW     65
-
-#define SO_RCVTIMEO_NEW         66
-#define SO_SNDTIMEO_NEW         67
-
-#define SO_DETACH_REUSEPORT_BPF 68
-
-#if !defined(__KERNEL__)
-
-#if __BITS_PER_LONG == 64
-#define SO_TIMESTAMP		SO_TIMESTAMP_OLD
-#define SO_TIMESTAMPNS		SO_TIMESTAMPNS_OLD
-#define SO_TIMESTAMPING		SO_TIMESTAMPING_OLD
-
-#define SO_RCVTIMEO             SO_RCVTIMEO_OLD
-#define SO_SNDTIMEO             SO_SNDTIMEO_OLD
-#else
-#define SO_TIMESTAMP (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMP_OLD : SO_TIMESTAMP_NEW)
-#define SO_TIMESTAMPNS (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPNS_OLD : SO_TIMESTAMPNS_NEW)
-#define SO_TIMESTAMPING (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_TIMESTAMPING_OLD : SO_TIMESTAMPING_NEW)
-
-#define SO_RCVTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_RCVTIMEO_OLD : SO_RCVTIMEO_NEW)
-#define SO_SNDTIMEO (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_SNDTIMEO_OLD : SO_SNDTIMEO_NEW)
-#endif
-
-#define SCM_TIMESTAMP           SO_TIMESTAMP
-#define SCM_TIMESTAMPNS         SO_TIMESTAMPNS
-#define SCM_TIMESTAMPING        SO_TIMESTAMPING
-
-#endif
-
-#endif /* _UAPI_ASM_SOCKET_H */
diff --git a/original/uapi/asm-mips/asm/sockios.h b/original/uapi/asm-mips/asm/sockios.h
deleted file mode 100644
index 66f6023..0000000
--- a/original/uapi/asm-mips/asm/sockios.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Socket-level I/O control calls.
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995 by Ralf Baechle
- */
-#ifndef _ASM_SOCKIOS_H
-#define _ASM_SOCKIOS_H
-
-#include <asm/ioctl.h>
-
-/* Socket-level I/O control calls. */
-#define FIOGETOWN	_IOR('f', 123, int)
-#define FIOSETOWN	_IOW('f', 124, int)
-
-#define SIOCATMARK	_IOR('s', 7, int)
-#define SIOCSPGRP	_IOW('s', 8, pid_t)
-#define SIOCGPGRP	_IOR('s', 9, pid_t)
-
-#define SIOCGSTAMP_OLD	0x8906		/* Get stamp (timeval) */
-#define SIOCGSTAMPNS_OLD 0x8907		/* Get stamp (timespec) */
-
-#endif /* _ASM_SOCKIOS_H */
diff --git a/original/uapi/asm-mips/asm/stat.h b/original/uapi/asm-mips/asm/stat.h
deleted file mode 100644
index 95416f3..0000000
--- a/original/uapi/asm-mips/asm/stat.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 1999, 2000 Ralf Baechle
- * Copyright (C) 2000 Silicon Graphics, Inc.
- */
-#ifndef _ASM_STAT_H
-#define _ASM_STAT_H
-
-#include <linux/types.h>
-
-#include <asm/sgidefs.h>
-
-#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
-
-struct stat {
-	unsigned	st_dev;
-	long		st_pad1[3];		/* Reserved for network id */
-	ino_t		st_ino;
-	mode_t		st_mode;
-	__u32		st_nlink;
-	uid_t		st_uid;
-	gid_t		st_gid;
-	unsigned	st_rdev;
-	long		st_pad2[2];
-	off_t		st_size;
-	long		st_pad3;
-	/*
-	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
-	 * but we don't have it under Linux.
-	 */
-	time_t		st_atime;
-	long		st_atime_nsec;
-	time_t		st_mtime;
-	long		st_mtime_nsec;
-	time_t		st_ctime;
-	long		st_ctime_nsec;
-	long		st_blksize;
-	long		st_blocks;
-	long		st_pad4[14];
-};
-
-/*
- * This matches struct stat64 in glibc2.1, hence the absolutely insane
- * amounts of padding around dev_t's.  The memory layout is the same as of
- * struct stat of the 64-bit kernel.
- */
-
-struct stat64 {
-	unsigned long	st_dev;
-	unsigned long	st_pad0[3];	/* Reserved for st_dev expansion  */
-
-	unsigned long long	st_ino;
-
-	mode_t		st_mode;
-	__u32		st_nlink;
-
-	uid_t		st_uid;
-	gid_t		st_gid;
-
-	unsigned long	st_rdev;
-	unsigned long	st_pad1[3];	/* Reserved for st_rdev expansion  */
-
-	long long	st_size;
-
-	/*
-	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
-	 * but we don't have it under Linux.
-	 */
-	time_t		st_atime;
-	unsigned long	st_atime_nsec;	/* Reserved for st_atime expansion  */
-
-	time_t		st_mtime;
-	unsigned long	st_mtime_nsec;	/* Reserved for st_mtime expansion  */
-
-	time_t		st_ctime;
-	unsigned long	st_ctime_nsec;	/* Reserved for st_ctime expansion  */
-
-	unsigned long	st_blksize;
-	unsigned long	st_pad2;
-
-	long long	st_blocks;
-};
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-
-#if _MIPS_SIM == _MIPS_SIM_ABI64
-
-/* The memory layout is the same as of struct stat64 of the 32-bit kernel.  */
-struct stat {
-	unsigned int		st_dev;
-	unsigned int		st_pad0[3]; /* Reserved for st_dev expansion */
-
-	unsigned long		st_ino;
-
-	mode_t			st_mode;
-	__u32			st_nlink;
-
-	uid_t			st_uid;
-	gid_t			st_gid;
-
-	unsigned int		st_rdev;
-	unsigned int		st_pad1[3]; /* Reserved for st_rdev expansion */
-
-	off_t			st_size;
-
-	/*
-	 * Actually this should be timestruc_t st_atime, st_mtime and st_ctime
-	 * but we don't have it under Linux.
-	 */
-	unsigned int		st_atime;
-	unsigned int		st_atime_nsec;
-
-	unsigned int		st_mtime;
-	unsigned int		st_mtime_nsec;
-
-	unsigned int		st_ctime;
-	unsigned int		st_ctime_nsec;
-
-	unsigned int		st_blksize;
-	unsigned int		st_pad2;
-
-	unsigned long		st_blocks;
-};
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
-
-#define STAT_HAVE_NSEC 1
-
-#endif /* _ASM_STAT_H */
diff --git a/original/uapi/asm-mips/asm/statfs.h b/original/uapi/asm-mips/asm/statfs.h
deleted file mode 100644
index f4174dc..0000000
--- a/original/uapi/asm-mips/asm/statfs.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 1999 by Ralf Baechle
- */
-#ifndef _ASM_STATFS_H
-#define _ASM_STATFS_H
-
-#include <linux/posix_types.h>
-#include <asm/sgidefs.h>
-
-#ifndef __KERNEL_STRICT_NAMES
-
-#include <linux/types.h>
-
-typedef __kernel_fsid_t	       fsid_t;
-
-#endif
-
-struct statfs {
-	long		f_type;
-#define f_fstyp f_type
-	long		f_bsize;
-	long		f_frsize;	/* Fragment size - unsupported */
-	long		f_blocks;
-	long		f_bfree;
-	long		f_files;
-	long		f_ffree;
-	long		f_bavail;
-
-	/* Linux specials */
-	__kernel_fsid_t f_fsid;
-	long		f_namelen;
-	long		f_flags;
-	long		f_spare[5];
-};
-
-#if (_MIPS_SIM == _MIPS_SIM_ABI32) || (_MIPS_SIM == _MIPS_SIM_NABI32)
-
-/*
- * Unlike the traditional version the LFAPI version has none of the ABI junk
- */
-struct statfs64 {
-	__u32	f_type;
-	__u32	f_bsize;
-	__u32	f_frsize;	/* Fragment size - unsupported */
-	__u32	__pad;
-	__u64	f_blocks;
-	__u64	f_bfree;
-	__u64	f_files;
-	__u64	f_ffree;
-	__u64	f_bavail;
-	__kernel_fsid_t f_fsid;
-	__u32	f_namelen;
-	__u32	f_flags;
-	__u32	f_spare[5];
-};
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-
-#if _MIPS_SIM == _MIPS_SIM_ABI64
-
-struct statfs64 {			/* Same as struct statfs */
-	long		f_type;
-	long		f_bsize;
-	long		f_frsize;	/* Fragment size - unsupported */
-	long		f_blocks;
-	long		f_bfree;
-	long		f_files;
-	long		f_ffree;
-	long		f_bavail;
-
-	/* Linux specials */
-	__kernel_fsid_t f_fsid;
-	long		f_namelen;
-	long		f_flags;
-	long		f_spare[5];
-};
-
-struct compat_statfs64 {
-	__u32	f_type;
-	__u32	f_bsize;
-	__u32	f_frsize;	/* Fragment size - unsupported */
-	__u32	__pad;
-	__u64	f_blocks;
-	__u64	f_bfree;
-	__u64	f_files;
-	__u64	f_ffree;
-	__u64	f_bavail;
-	__kernel_fsid_t f_fsid;
-	__u32	f_namelen;
-	__u32	f_flags;
-	__u32	f_spare[5];
-};
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
-
-#endif /* _ASM_STATFS_H */
diff --git a/original/uapi/asm-mips/asm/swab.h b/original/uapi/asm-mips/asm/swab.h
deleted file mode 100644
index d6795fe..0000000
--- a/original/uapi/asm-mips/asm/swab.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1996, 99, 2003 by Ralf Baechle
- */
-#ifndef _ASM_SWAB_H
-#define _ASM_SWAB_H
-
-#include <linux/compiler.h>
-#include <linux/types.h>
-
-#define __SWAB_64_THRU_32__
-
-#if !defined(__mips16) &&					\
-	((defined(__mips_isa_rev) && (__mips_isa_rev >= 2)) ||	\
-	 defined(_MIPS_ARCH_LOONGSON3A))
-
-static inline __attribute_const__ __u16 __arch_swab16(__u16 x)
-{
-	__asm__(
-	"	.set	push			\n"
-	"	.set	arch=mips32r2		\n"
-	"	wsbh	%0, %1			\n"
-	"	.set	pop			\n"
-	: "=r" (x)
-	: "r" (x));
-
-	return x;
-}
-#define __arch_swab16 __arch_swab16
-
-static inline __attribute_const__ __u32 __arch_swab32(__u32 x)
-{
-	__asm__(
-	"	.set	push			\n"
-	"	.set	arch=mips32r2		\n"
-	"	wsbh	%0, %1			\n"
-	"	rotr	%0, %0, 16		\n"
-	"	.set	pop			\n"
-	: "=r" (x)
-	: "r" (x));
-
-	return x;
-}
-#define __arch_swab32 __arch_swab32
-
-/*
- * Having already checked for MIPS R2, enable the optimized version for
- * 64-bit kernel on r2 CPUs.
- */
-#ifdef __mips64
-static inline __attribute_const__ __u64 __arch_swab64(__u64 x)
-{
-	__asm__(
-	"	.set	push			\n"
-	"	.set	arch=mips64r2		\n"
-	"	dsbh	%0, %1			\n"
-	"	dshd	%0, %0			\n"
-	"	.set	pop			\n"
-	: "=r" (x)
-	: "r" (x));
-
-	return x;
-}
-#define __arch_swab64 __arch_swab64
-#endif /* __mips64 */
-#endif /* (not __mips16) and (MIPS R2 or newer or Loongson 3A) */
-#endif /* _ASM_SWAB_H */
diff --git a/original/uapi/asm-mips/asm/sysmips.h b/original/uapi/asm-mips/asm/sysmips.h
deleted file mode 100644
index 4c009e1..0000000
--- a/original/uapi/asm-mips/asm/sysmips.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Definitions for the MIPS sysmips(2) call
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995 by Ralf Baechle
- */
-#ifndef _ASM_SYSMIPS_H
-#define _ASM_SYSMIPS_H
-
-/*
- * Commands for the sysmips(2) call
- *
- * sysmips(2) is deprecated - though some existing software uses it.
- * We only support the following commands.
- */
-#define SETNAME			   1	/* set hostname			 */
-#define FLUSH_CACHE		   3	/* writeback and invalidate caches */
-#define MIPS_FIXADE		   7	/* control address error fixing	 */
-#define MIPS_RDNVRAM		  10	/* read NVRAM */
-#define MIPS_ATOMIC_SET		2001	/* atomically set variable	 */
-
-#endif /* _ASM_SYSMIPS_H */
diff --git a/original/uapi/asm-mips/asm/termbits.h b/original/uapi/asm-mips/asm/termbits.h
deleted file mode 100644
index dfeffba..0000000
--- a/original/uapi/asm-mips/asm/termbits.h
+++ /dev/null
@@ -1,228 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 96, 99, 2001, 06 Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- * Copyright (C) 2001 MIPS Technologies, Inc.
- */
-#ifndef _ASM_TERMBITS_H
-#define _ASM_TERMBITS_H
-
-#include <linux/posix_types.h>
-
-typedef unsigned char cc_t;
-typedef unsigned int speed_t;
-typedef unsigned int tcflag_t;
-
-/*
- * The ABI says nothing about NCC but seems to use NCCS as
- * replacement for it in struct termio
- */
-#define NCCS	23
-struct termios {
-	tcflag_t c_iflag;		/* input mode flags */
-	tcflag_t c_oflag;		/* output mode flags */
-	tcflag_t c_cflag;		/* control mode flags */
-	tcflag_t c_lflag;		/* local mode flags */
-	cc_t c_line;			/* line discipline */
-	cc_t c_cc[NCCS];		/* control characters */
-};
-
-struct termios2 {
-	tcflag_t c_iflag;		/* input mode flags */
-	tcflag_t c_oflag;		/* output mode flags */
-	tcflag_t c_cflag;		/* control mode flags */
-	tcflag_t c_lflag;		/* local mode flags */
-	cc_t c_line;			/* line discipline */
-	cc_t c_cc[NCCS];		/* control characters */
-	speed_t c_ispeed;		/* input speed */
-	speed_t c_ospeed;		/* output speed */
-};
-
-struct ktermios {
-	tcflag_t c_iflag;		/* input mode flags */
-	tcflag_t c_oflag;		/* output mode flags */
-	tcflag_t c_cflag;		/* control mode flags */
-	tcflag_t c_lflag;		/* local mode flags */
-	cc_t c_line;			/* line discipline */
-	cc_t c_cc[NCCS];		/* control characters */
-	speed_t c_ispeed;		/* input speed */
-	speed_t c_ospeed;		/* output speed */
-};
-
-/* c_cc characters */
-#define VINTR		 0		/* Interrupt character [ISIG].	*/
-#define VQUIT		 1		/* Quit character [ISIG].  */
-#define VERASE		 2		/* Erase character [ICANON].  */
-#define VKILL		 3		/* Kill-line character [ICANON].  */
-#define VMIN		 4		/* Minimum number of bytes read at once [!ICANON].  */
-#define VTIME		 5		/* Time-out value (tenths of a second) [!ICANON].  */
-#define VEOL2		 6		/* Second EOL character [ICANON].  */
-#define VSWTC		 7		/* ??? */
-#define VSWTCH		VSWTC
-#define VSTART		 8		/* Start (X-ON) character [IXON, IXOFF].  */
-#define VSTOP		 9		/* Stop (X-OFF) character [IXON, IXOFF].  */
-#define VSUSP		10		/* Suspend character [ISIG].  */
-#if 0
-/*
- * VDSUSP is not supported
- */
-#define VDSUSP		11		/* Delayed suspend character [ISIG].  */
-#endif
-#define VREPRINT	12		/* Reprint-line character [ICANON].  */
-#define VDISCARD	13		/* Discard character [IEXTEN].	*/
-#define VWERASE		14		/* Word-erase character [ICANON].  */
-#define VLNEXT		15		/* Literal-next character [IEXTEN].  */
-#define VEOF		16		/* End-of-file character [ICANON].  */
-#define VEOL		17		/* End-of-line character [ICANON].  */
-
-/* c_iflag bits */
-#define IGNBRK	0000001		/* Ignore break condition.  */
-#define BRKINT	0000002		/* Signal interrupt on break.  */
-#define IGNPAR	0000004		/* Ignore characters with parity errors.  */
-#define PARMRK	0000010		/* Mark parity and framing errors.  */
-#define INPCK	0000020		/* Enable input parity check.  */
-#define ISTRIP	0000040		/* Strip 8th bit off characters.  */
-#define INLCR	0000100		/* Map NL to CR on input.  */
-#define IGNCR	0000200		/* Ignore CR.  */
-#define ICRNL	0000400		/* Map CR to NL on input.  */
-#define IUCLC	0001000		/* Map upper case to lower case on input.  */
-#define IXON	0002000		/* Enable start/stop output control.  */
-#define IXANY	0004000		/* Any character will restart after stop.  */
-#define IXOFF	0010000		/* Enable start/stop input control.  */
-#define IMAXBEL 0020000		/* Ring bell when input queue is full.	*/
-#define IUTF8	0040000		/* Input is UTF-8 */
-
-/* c_oflag bits */
-#define OPOST	0000001		/* Perform output processing.  */
-#define OLCUC	0000002		/* Map lower case to upper case on output.  */
-#define ONLCR	0000004		/* Map NL to CR-NL on output.  */
-#define OCRNL	0000010
-#define ONOCR	0000020
-#define ONLRET	0000040
-#define OFILL	0000100
-#define OFDEL	0000200
-#define NLDLY	0000400
-#define	  NL0	0000000
-#define	  NL1	0000400
-#define CRDLY	0003000
-#define	  CR0	0000000
-#define	  CR1	0001000
-#define	  CR2	0002000
-#define	  CR3	0003000
-#define TABDLY	0014000
-#define	  TAB0	0000000
-#define	  TAB1	0004000
-#define	  TAB2	0010000
-#define	  TAB3	0014000
-#define	  XTABS 0014000
-#define BSDLY	0020000
-#define	  BS0	0000000
-#define	  BS1	0020000
-#define VTDLY	0040000
-#define	  VT0	0000000
-#define	  VT1	0040000
-#define FFDLY	0100000
-#define	  FF0	0000000
-#define	  FF1	0100000
-/*
-#define PAGEOUT ???
-#define WRAP	???
- */
-
-/* c_cflag bit meaning */
-#define CBAUD	0010017
-#define	 B0	0000000		/* hang up */
-#define	 B50	0000001
-#define	 B75	0000002
-#define	 B110	0000003
-#define	 B134	0000004
-#define	 B150	0000005
-#define	 B200	0000006
-#define	 B300	0000007
-#define	 B600	0000010
-#define	 B1200	0000011
-#define	 B1800	0000012
-#define	 B2400	0000013
-#define	 B4800	0000014
-#define	 B9600	0000015
-#define	 B19200 0000016
-#define	 B38400 0000017
-#define EXTA B19200
-#define EXTB B38400
-#define CSIZE	0000060		/* Number of bits per byte (mask).  */
-#define	  CS5	0000000		/* 5 bits per byte.  */
-#define	  CS6	0000020		/* 6 bits per byte.  */
-#define	  CS7	0000040		/* 7 bits per byte.  */
-#define	  CS8	0000060		/* 8 bits per byte.  */
-#define CSTOPB	0000100		/* Two stop bits instead of one.  */
-#define CREAD	0000200		/* Enable receiver.  */
-#define PARENB	0000400		/* Parity enable.  */
-#define PARODD	0001000		/* Odd parity instead of even.	*/
-#define HUPCL	0002000		/* Hang up on last close.  */
-#define CLOCAL	0004000		/* Ignore modem status lines.  */
-#define CBAUDEX 0010000
-#define	   BOTHER 0010000
-#define	   B57600 0010001
-#define	  B115200 0010002
-#define	  B230400 0010003
-#define	  B460800 0010004
-#define	  B500000 0010005
-#define	  B576000 0010006
-#define	  B921600 0010007
-#define	 B1000000 0010010
-#define	 B1152000 0010011
-#define	 B1500000 0010012
-#define	 B2000000 0010013
-#define	 B2500000 0010014
-#define	 B3000000 0010015
-#define	 B3500000 0010016
-#define	 B4000000 0010017
-#define CIBAUD	  002003600000	/* input baud rate */
-#define CMSPAR	  010000000000	/* mark or space (stick) parity */
-#define CRTSCTS	  020000000000	/* flow control */
-
-#define IBSHIFT 16		/* Shift from CBAUD to CIBAUD */
-
-/* c_lflag bits */
-#define ISIG	0000001		/* Enable signals.  */
-#define ICANON	0000002		/* Do erase and kill processing.  */
-#define XCASE	0000004
-#define ECHO	0000010		/* Enable echo.	 */
-#define ECHOE	0000020		/* Visual erase for ERASE.  */
-#define ECHOK	0000040		/* Echo NL after KILL.	*/
-#define ECHONL	0000100		/* Echo NL even if ECHO is off.	 */
-#define NOFLSH	0000200		/* Disable flush after interrupt.  */
-#define IEXTEN	0000400		/* Enable DISCARD and LNEXT.  */
-#define ECHOCTL 0001000		/* Echo control characters as ^X.  */
-#define ECHOPRT 0002000		/* Hardcopy visual erase.  */
-#define ECHOKE	0004000		/* Visual erase for KILL.  */
-#define FLUSHO	0020000
-#define PENDIN	0040000		/* Retype pending input (state).  */
-#define TOSTOP	0100000		/* Send SIGTTOU for background output.	*/
-#define ITOSTOP TOSTOP
-#define EXTPROC 0200000		/* External processing on pty */
-
-/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
-#define TIOCSER_TEMT	0x01	/* Transmitter physically empty */
-
-/* tcflow() and TCXONC use these */
-#define TCOOFF		0	/* Suspend output.  */
-#define TCOON		1	/* Restart suspended output.  */
-#define TCIOFF		2	/* Send a STOP character.  */
-#define TCION		3	/* Send a START character.  */
-
-/* tcflush() and TCFLSH use these */
-#define TCIFLUSH	0	/* Discard data received but not yet read.  */
-#define TCOFLUSH	1	/* Discard data written but not yet sent.  */
-#define TCIOFLUSH	2	/* Discard all pending data.  */
-
-/* tcsetattr uses these */
-#define TCSANOW		TCSETS	/* Change immediately.	*/
-#define TCSADRAIN	TCSETSW /* Change when pending output is written.  */
-#define TCSAFLUSH	TCSETSF /* Flush pending input before changing.	 */
-
-#endif /* _ASM_TERMBITS_H */
diff --git a/original/uapi/asm-mips/asm/termios.h b/original/uapi/asm-mips/asm/termios.h
deleted file mode 100644
index d6c5767..0000000
--- a/original/uapi/asm-mips/asm/termios.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 1996, 2000, 2001 by Ralf Baechle
- * Copyright (C) 2000, 2001 Silicon Graphics, Inc.
- */
-#ifndef _UAPI_ASM_TERMIOS_H
-#define _UAPI_ASM_TERMIOS_H
-
-#include <linux/errno.h>
-#include <asm/termbits.h>
-#include <asm/ioctls.h>
-
-struct sgttyb {
-	char	sg_ispeed;
-	char	sg_ospeed;
-	char	sg_erase;
-	char	sg_kill;
-	int	sg_flags;	/* SGI special - int, not short */
-};
-
-struct tchars {
-	char	t_intrc;
-	char	t_quitc;
-	char	t_startc;
-	char	t_stopc;
-	char	t_eofc;
-	char	t_brkc;
-};
-
-struct ltchars {
-	char	t_suspc;	/* stop process signal */
-	char	t_dsuspc;	/* delayed stop process signal */
-	char	t_rprntc;	/* reprint line */
-	char	t_flushc;	/* flush output (toggles) */
-	char	t_werasc;	/* word erase */
-	char	t_lnextc;	/* literal next character */
-};
-
-/* TIOCGSIZE, TIOCSSIZE not defined yet.  Only needed for SunOS source
-   compatibility anyway ... */
-
-struct winsize {
-	unsigned short ws_row;
-	unsigned short ws_col;
-	unsigned short ws_xpixel;
-	unsigned short ws_ypixel;
-};
-
-#define NCC	8
-struct termio {
-	unsigned short c_iflag;		/* input mode flags */
-	unsigned short c_oflag;		/* output mode flags */
-	unsigned short c_cflag;		/* control mode flags */
-	unsigned short c_lflag;		/* local mode flags */
-	char c_line;			/* line discipline */
-	unsigned char c_cc[NCCS];	/* control characters */
-};
-
-
-/* modem lines */
-#define TIOCM_LE	0x001		/* line enable */
-#define TIOCM_DTR	0x002		/* data terminal ready */
-#define TIOCM_RTS	0x004		/* request to send */
-#define TIOCM_ST	0x010		/* secondary transmit */
-#define TIOCM_SR	0x020		/* secondary receive */
-#define TIOCM_CTS	0x040		/* clear to send */
-#define TIOCM_CAR	0x100		/* carrier detect */
-#define TIOCM_CD	TIOCM_CAR
-#define TIOCM_RNG	0x200		/* ring */
-#define TIOCM_RI	TIOCM_RNG
-#define TIOCM_DSR	0x400		/* data set ready */
-#define TIOCM_OUT1	0x2000
-#define TIOCM_OUT2	0x4000
-#define TIOCM_LOOP	0x8000
-
-
-#endif /* _UAPI_ASM_TERMIOS_H */
diff --git a/original/uapi/asm-mips/asm/types.h b/original/uapi/asm-mips/asm/types.h
deleted file mode 100644
index 6b21504..0000000
--- a/original/uapi/asm-mips/asm/types.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1994, 1995, 1996, 1999 by Ralf Baechle
- * Copyright (C) 2008 Wind River Systems,
- *   written by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- */
-#ifndef _UAPI_ASM_TYPES_H
-#define _UAPI_ASM_TYPES_H
-
-/*
- * We don't use int-l64.h for the kernel anymore but still use it for
- * userspace to avoid code changes.
- *
- * However, some user programs (e.g. perf) may not want this. They can
- * flag __SANE_USERSPACE_TYPES__ to get int-ll64.h here.
- */
-#ifndef __KERNEL__
-# if _MIPS_SZLONG == 64 && !defined(__SANE_USERSPACE_TYPES__)
-#  include <asm-generic/int-l64.h>
-# else
-#  include <asm-generic/int-ll64.h>
-# endif
-#endif
-
-
-#endif /* _UAPI_ASM_TYPES_H */
diff --git a/original/uapi/asm-mips/asm/ucontext.h b/original/uapi/asm-mips/asm/ucontext.h
deleted file mode 100644
index 2d3bf8e..0000000
--- a/original/uapi/asm-mips/asm/ucontext.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef __MIPS_UAPI_ASM_UCONTEXT_H
-#define __MIPS_UAPI_ASM_UCONTEXT_H
-
-/**
- * struct extcontext - extended context header structure
- * @magic:	magic value identifying the type of extended context
- * @size:	the size in bytes of the enclosing structure
- *
- * Extended context structures provide context which does not fit within struct
- * sigcontext. They are placed sequentially in memory at the end of struct
- * ucontext and struct sigframe, with each extended context structure beginning
- * with a header defined by this struct. The type of context represented is
- * indicated by the magic field. Userland may check each extended context
- * structure against magic values that it recognises. The size field allows any
- * unrecognised context to be skipped, allowing for future expansion. The end
- * of the extended context data is indicated by the magic value
- * END_EXTCONTEXT_MAGIC.
- */
-struct extcontext {
-	unsigned int		magic;
-	unsigned int		size;
-};
-
-/**
- * struct msa_extcontext - MSA extended context structure
- * @ext:	the extended context header, with magic == MSA_EXTCONTEXT_MAGIC
- * @wr:		the most significant 64 bits of each MSA vector register
- * @csr:	the value of the MSA control & status register
- *
- * If MSA context is live for a task at the time a signal is delivered to it,
- * this structure will hold the MSA context of the task as it was prior to the
- * signal delivery.
- */
-struct msa_extcontext {
-	struct extcontext	ext;
-#define MSA_EXTCONTEXT_MAGIC	0x784d5341	/* xMSA */
-
-	unsigned long long	wr[32];
-	unsigned int		csr;
-};
-
-#define END_EXTCONTEXT_MAGIC	0x78454e44	/* xEND */
-
-/**
- * struct ucontext - user context structure
- * @uc_flags:
- * @uc_link:
- * @uc_stack:
- * @uc_mcontext:	holds basic processor state
- * @uc_sigmask:
- * @uc_extcontext:	holds extended processor state
- */
-struct ucontext {
-	/* Historic fields matching asm-generic */
-	unsigned long		uc_flags;
-	struct ucontext		*uc_link;
-	stack_t			uc_stack;
-	struct sigcontext	uc_mcontext;
-	sigset_t		uc_sigmask;
-
-	/* Extended context structures may follow ucontext */
-	unsigned long long	uc_extcontext[0];
-};
-
-#endif /* __MIPS_UAPI_ASM_UCONTEXT_H */
diff --git a/original/uapi/asm-mips/asm/unistd.h b/original/uapi/asm-mips/asm/unistd.h
deleted file mode 100644
index 4abe387..0000000
--- a/original/uapi/asm-mips/asm/unistd.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License.  See the file "COPYING" in the main directory of this archive
- * for more details.
- *
- * Copyright (C) 1995, 96, 97, 98, 99, 2000 by Ralf Baechle
- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- *
- * Changed system calls macros _syscall5 - _syscall7 to push args 5 to 7 onto
- * the stack. Robin Farine for ACN S.A, Copyright (C) 1996 by ACN S.A
- */
-#ifndef _UAPI_ASM_UNISTD_H
-#define _UAPI_ASM_UNISTD_H
-
-#include <asm/sgidefs.h>
-
-#if _MIPS_SIM == _MIPS_SIM_ABI32
-
-#define __NR_Linux	4000
-#include <asm/unistd_o32.h>
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
-
-#if _MIPS_SIM == _MIPS_SIM_ABI64
-
-#define __NR_Linux	5000
-#include <asm/unistd_n64.h>
-
-#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
-
-#if _MIPS_SIM == _MIPS_SIM_NABI32
-
-#define __NR_Linux	6000
-#include <asm/unistd_n32.h>
-
-#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
-
-#endif /* _UAPI_ASM_UNISTD_H */
diff --git a/original/uapi/asm-mips/asm/unistd_n32.h b/original/uapi/asm-mips/asm/unistd_n32.h
deleted file mode 100644
index 7030399..0000000
--- a/original/uapi/asm-mips/asm/unistd_n32.h
+++ /dev/null
@@ -1,373 +0,0 @@
-#ifndef _UAPI_ASM_MIPS_UNISTD_N32_H
-#define _UAPI_ASM_MIPS_UNISTD_N32_H
-
-#define __NR_read	(__NR_Linux + 0)
-#define __NR_write	(__NR_Linux + 1)
-#define __NR_open	(__NR_Linux + 2)
-#define __NR_close	(__NR_Linux + 3)
-#define __NR_stat	(__NR_Linux + 4)
-#define __NR_fstat	(__NR_Linux + 5)
-#define __NR_lstat	(__NR_Linux + 6)
-#define __NR_poll	(__NR_Linux + 7)
-#define __NR_lseek	(__NR_Linux + 8)
-#define __NR_mmap	(__NR_Linux + 9)
-#define __NR_mprotect	(__NR_Linux + 10)
-#define __NR_munmap	(__NR_Linux + 11)
-#define __NR_brk	(__NR_Linux + 12)
-#define __NR_rt_sigaction	(__NR_Linux + 13)
-#define __NR_rt_sigprocmask	(__NR_Linux + 14)
-#define __NR_ioctl	(__NR_Linux + 15)
-#define __NR_pread64	(__NR_Linux + 16)
-#define __NR_pwrite64	(__NR_Linux + 17)
-#define __NR_readv	(__NR_Linux + 18)
-#define __NR_writev	(__NR_Linux + 19)
-#define __NR_access	(__NR_Linux + 20)
-#define __NR_pipe	(__NR_Linux + 21)
-#define __NR__newselect	(__NR_Linux + 22)
-#define __NR_sched_yield	(__NR_Linux + 23)
-#define __NR_mremap	(__NR_Linux + 24)
-#define __NR_msync	(__NR_Linux + 25)
-#define __NR_mincore	(__NR_Linux + 26)
-#define __NR_madvise	(__NR_Linux + 27)
-#define __NR_shmget	(__NR_Linux + 28)
-#define __NR_shmat	(__NR_Linux + 29)
-#define __NR_shmctl	(__NR_Linux + 30)
-#define __NR_dup	(__NR_Linux + 31)
-#define __NR_dup2	(__NR_Linux + 32)
-#define __NR_pause	(__NR_Linux + 33)
-#define __NR_nanosleep	(__NR_Linux + 34)
-#define __NR_getitimer	(__NR_Linux + 35)
-#define __NR_setitimer	(__NR_Linux + 36)
-#define __NR_alarm	(__NR_Linux + 37)
-#define __NR_getpid	(__NR_Linux + 38)
-#define __NR_sendfile	(__NR_Linux + 39)
-#define __NR_socket	(__NR_Linux + 40)
-#define __NR_connect	(__NR_Linux + 41)
-#define __NR_accept	(__NR_Linux + 42)
-#define __NR_sendto	(__NR_Linux + 43)
-#define __NR_recvfrom	(__NR_Linux + 44)
-#define __NR_sendmsg	(__NR_Linux + 45)
-#define __NR_recvmsg	(__NR_Linux + 46)
-#define __NR_shutdown	(__NR_Linux + 47)
-#define __NR_bind	(__NR_Linux + 48)
-#define __NR_listen	(__NR_Linux + 49)
-#define __NR_getsockname	(__NR_Linux + 50)
-#define __NR_getpeername	(__NR_Linux + 51)
-#define __NR_socketpair	(__NR_Linux + 52)
-#define __NR_setsockopt	(__NR_Linux + 53)
-#define __NR_getsockopt	(__NR_Linux + 54)
-#define __NR_clone	(__NR_Linux + 55)
-#define __NR_fork	(__NR_Linux + 56)
-#define __NR_execve	(__NR_Linux + 57)
-#define __NR_exit	(__NR_Linux + 58)
-#define __NR_wait4	(__NR_Linux + 59)
-#define __NR_kill	(__NR_Linux + 60)
-#define __NR_uname	(__NR_Linux + 61)
-#define __NR_semget	(__NR_Linux + 62)
-#define __NR_semop	(__NR_Linux + 63)
-#define __NR_semctl	(__NR_Linux + 64)
-#define __NR_shmdt	(__NR_Linux + 65)
-#define __NR_msgget	(__NR_Linux + 66)
-#define __NR_msgsnd	(__NR_Linux + 67)
-#define __NR_msgrcv	(__NR_Linux + 68)
-#define __NR_msgctl	(__NR_Linux + 69)
-#define __NR_fcntl	(__NR_Linux + 70)
-#define __NR_flock	(__NR_Linux + 71)
-#define __NR_fsync	(__NR_Linux + 72)
-#define __NR_fdatasync	(__NR_Linux + 73)
-#define __NR_truncate	(__NR_Linux + 74)
-#define __NR_ftruncate	(__NR_Linux + 75)
-#define __NR_getdents	(__NR_Linux + 76)
-#define __NR_getcwd	(__NR_Linux + 77)
-#define __NR_chdir	(__NR_Linux + 78)
-#define __NR_fchdir	(__NR_Linux + 79)
-#define __NR_rename	(__NR_Linux + 80)
-#define __NR_mkdir	(__NR_Linux + 81)
-#define __NR_rmdir	(__NR_Linux + 82)
-#define __NR_creat	(__NR_Linux + 83)
-#define __NR_link	(__NR_Linux + 84)
-#define __NR_unlink	(__NR_Linux + 85)
-#define __NR_symlink	(__NR_Linux + 86)
-#define __NR_readlink	(__NR_Linux + 87)
-#define __NR_chmod	(__NR_Linux + 88)
-#define __NR_fchmod	(__NR_Linux + 89)
-#define __NR_chown	(__NR_Linux + 90)
-#define __NR_fchown	(__NR_Linux + 91)
-#define __NR_lchown	(__NR_Linux + 92)
-#define __NR_umask	(__NR_Linux + 93)
-#define __NR_gettimeofday	(__NR_Linux + 94)
-#define __NR_getrlimit	(__NR_Linux + 95)
-#define __NR_getrusage	(__NR_Linux + 96)
-#define __NR_sysinfo	(__NR_Linux + 97)
-#define __NR_times	(__NR_Linux + 98)
-#define __NR_ptrace	(__NR_Linux + 99)
-#define __NR_getuid	(__NR_Linux + 100)
-#define __NR_syslog	(__NR_Linux + 101)
-#define __NR_getgid	(__NR_Linux + 102)
-#define __NR_setuid	(__NR_Linux + 103)
-#define __NR_setgid	(__NR_Linux + 104)
-#define __NR_geteuid	(__NR_Linux + 105)
-#define __NR_getegid	(__NR_Linux + 106)
-#define __NR_setpgid	(__NR_Linux + 107)
-#define __NR_getppid	(__NR_Linux + 108)
-#define __NR_getpgrp	(__NR_Linux + 109)
-#define __NR_setsid	(__NR_Linux + 110)
-#define __NR_setreuid	(__NR_Linux + 111)
-#define __NR_setregid	(__NR_Linux + 112)
-#define __NR_getgroups	(__NR_Linux + 113)
-#define __NR_setgroups	(__NR_Linux + 114)
-#define __NR_setresuid	(__NR_Linux + 115)
-#define __NR_getresuid	(__NR_Linux + 116)
-#define __NR_setresgid	(__NR_Linux + 117)
-#define __NR_getresgid	(__NR_Linux + 118)
-#define __NR_getpgid	(__NR_Linux + 119)
-#define __NR_setfsuid	(__NR_Linux + 120)
-#define __NR_setfsgid	(__NR_Linux + 121)
-#define __NR_getsid	(__NR_Linux + 122)
-#define __NR_capget	(__NR_Linux + 123)
-#define __NR_capset	(__NR_Linux + 124)
-#define __NR_rt_sigpending	(__NR_Linux + 125)
-#define __NR_rt_sigtimedwait	(__NR_Linux + 126)
-#define __NR_rt_sigqueueinfo	(__NR_Linux + 127)
-#define __NR_rt_sigsuspend	(__NR_Linux + 128)
-#define __NR_sigaltstack	(__NR_Linux + 129)
-#define __NR_utime	(__NR_Linux + 130)
-#define __NR_mknod	(__NR_Linux + 131)
-#define __NR_personality	(__NR_Linux + 132)
-#define __NR_ustat	(__NR_Linux + 133)
-#define __NR_statfs	(__NR_Linux + 134)
-#define __NR_fstatfs	(__NR_Linux + 135)
-#define __NR_sysfs	(__NR_Linux + 136)
-#define __NR_getpriority	(__NR_Linux + 137)
-#define __NR_setpriority	(__NR_Linux + 138)
-#define __NR_sched_setparam	(__NR_Linux + 139)
-#define __NR_sched_getparam	(__NR_Linux + 140)
-#define __NR_sched_setscheduler	(__NR_Linux + 141)
-#define __NR_sched_getscheduler	(__NR_Linux + 142)
-#define __NR_sched_get_priority_max	(__NR_Linux + 143)
-#define __NR_sched_get_priority_min	(__NR_Linux + 144)
-#define __NR_sched_rr_get_interval	(__NR_Linux + 145)
-#define __NR_mlock	(__NR_Linux + 146)
-#define __NR_munlock	(__NR_Linux + 147)
-#define __NR_mlockall	(__NR_Linux + 148)
-#define __NR_munlockall	(__NR_Linux + 149)
-#define __NR_vhangup	(__NR_Linux + 150)
-#define __NR_pivot_root	(__NR_Linux + 151)
-#define __NR__sysctl	(__NR_Linux + 152)
-#define __NR_prctl	(__NR_Linux + 153)
-#define __NR_adjtimex	(__NR_Linux + 154)
-#define __NR_setrlimit	(__NR_Linux + 155)
-#define __NR_chroot	(__NR_Linux + 156)
-#define __NR_sync	(__NR_Linux + 157)
-#define __NR_acct	(__NR_Linux + 158)
-#define __NR_settimeofday	(__NR_Linux + 159)
-#define __NR_mount	(__NR_Linux + 160)
-#define __NR_umount2	(__NR_Linux + 161)
-#define __NR_swapon	(__NR_Linux + 162)
-#define __NR_swapoff	(__NR_Linux + 163)
-#define __NR_reboot	(__NR_Linux + 164)
-#define __NR_sethostname	(__NR_Linux + 165)
-#define __NR_setdomainname	(__NR_Linux + 166)
-#define __NR_create_module	(__NR_Linux + 167)
-#define __NR_init_module	(__NR_Linux + 168)
-#define __NR_delete_module	(__NR_Linux + 169)
-#define __NR_get_kernel_syms	(__NR_Linux + 170)
-#define __NR_query_module	(__NR_Linux + 171)
-#define __NR_quotactl	(__NR_Linux + 172)
-#define __NR_nfsservctl	(__NR_Linux + 173)
-#define __NR_getpmsg	(__NR_Linux + 174)
-#define __NR_putpmsg	(__NR_Linux + 175)
-#define __NR_afs_syscall	(__NR_Linux + 176)
-#define __NR_reserved177	(__NR_Linux + 177)
-#define __NR_gettid	(__NR_Linux + 178)
-#define __NR_readahead	(__NR_Linux + 179)
-#define __NR_setxattr	(__NR_Linux + 180)
-#define __NR_lsetxattr	(__NR_Linux + 181)
-#define __NR_fsetxattr	(__NR_Linux + 182)
-#define __NR_getxattr	(__NR_Linux + 183)
-#define __NR_lgetxattr	(__NR_Linux + 184)
-#define __NR_fgetxattr	(__NR_Linux + 185)
-#define __NR_listxattr	(__NR_Linux + 186)
-#define __NR_llistxattr	(__NR_Linux + 187)
-#define __NR_flistxattr	(__NR_Linux + 188)
-#define __NR_removexattr	(__NR_Linux + 189)
-#define __NR_lremovexattr	(__NR_Linux + 190)
-#define __NR_fremovexattr	(__NR_Linux + 191)
-#define __NR_tkill	(__NR_Linux + 192)
-#define __NR_reserved193	(__NR_Linux + 193)
-#define __NR_futex	(__NR_Linux + 194)
-#define __NR_sched_setaffinity	(__NR_Linux + 195)
-#define __NR_sched_getaffinity	(__NR_Linux + 196)
-#define __NR_cacheflush	(__NR_Linux + 197)
-#define __NR_cachectl	(__NR_Linux + 198)
-#define __NR_sysmips	(__NR_Linux + 199)
-#define __NR_io_setup	(__NR_Linux + 200)
-#define __NR_io_destroy	(__NR_Linux + 201)
-#define __NR_io_getevents	(__NR_Linux + 202)
-#define __NR_io_submit	(__NR_Linux + 203)
-#define __NR_io_cancel	(__NR_Linux + 204)
-#define __NR_exit_group	(__NR_Linux + 205)
-#define __NR_lookup_dcookie	(__NR_Linux + 206)
-#define __NR_epoll_create	(__NR_Linux + 207)
-#define __NR_epoll_ctl	(__NR_Linux + 208)
-#define __NR_epoll_wait	(__NR_Linux + 209)
-#define __NR_remap_file_pages	(__NR_Linux + 210)
-#define __NR_rt_sigreturn	(__NR_Linux + 211)
-#define __NR_fcntl64	(__NR_Linux + 212)
-#define __NR_set_tid_address	(__NR_Linux + 213)
-#define __NR_restart_syscall	(__NR_Linux + 214)
-#define __NR_semtimedop	(__NR_Linux + 215)
-#define __NR_fadvise64	(__NR_Linux + 216)
-#define __NR_statfs64	(__NR_Linux + 217)
-#define __NR_fstatfs64	(__NR_Linux + 218)
-#define __NR_sendfile64	(__NR_Linux + 219)
-#define __NR_timer_create	(__NR_Linux + 220)
-#define __NR_timer_settime	(__NR_Linux + 221)
-#define __NR_timer_gettime	(__NR_Linux + 222)
-#define __NR_timer_getoverrun	(__NR_Linux + 223)
-#define __NR_timer_delete	(__NR_Linux + 224)
-#define __NR_clock_settime	(__NR_Linux + 225)
-#define __NR_clock_gettime	(__NR_Linux + 226)
-#define __NR_clock_getres	(__NR_Linux + 227)
-#define __NR_clock_nanosleep	(__NR_Linux + 228)
-#define __NR_tgkill	(__NR_Linux + 229)
-#define __NR_utimes	(__NR_Linux + 230)
-#define __NR_mbind	(__NR_Linux + 231)
-#define __NR_get_mempolicy	(__NR_Linux + 232)
-#define __NR_set_mempolicy	(__NR_Linux + 233)
-#define __NR_mq_open	(__NR_Linux + 234)
-#define __NR_mq_unlink	(__NR_Linux + 235)
-#define __NR_mq_timedsend	(__NR_Linux + 236)
-#define __NR_mq_timedreceive	(__NR_Linux + 237)
-#define __NR_mq_notify	(__NR_Linux + 238)
-#define __NR_mq_getsetattr	(__NR_Linux + 239)
-#define __NR_vserver	(__NR_Linux + 240)
-#define __NR_waitid	(__NR_Linux + 241)
-#define __NR_add_key	(__NR_Linux + 243)
-#define __NR_request_key	(__NR_Linux + 244)
-#define __NR_keyctl	(__NR_Linux + 245)
-#define __NR_set_thread_area	(__NR_Linux + 246)
-#define __NR_inotify_init	(__NR_Linux + 247)
-#define __NR_inotify_add_watch	(__NR_Linux + 248)
-#define __NR_inotify_rm_watch	(__NR_Linux + 249)
-#define __NR_migrate_pages	(__NR_Linux + 250)
-#define __NR_openat	(__NR_Linux + 251)
-#define __NR_mkdirat	(__NR_Linux + 252)
-#define __NR_mknodat	(__NR_Linux + 253)
-#define __NR_fchownat	(__NR_Linux + 254)
-#define __NR_futimesat	(__NR_Linux + 255)
-#define __NR_newfstatat	(__NR_Linux + 256)
-#define __NR_unlinkat	(__NR_Linux + 257)
-#define __NR_renameat	(__NR_Linux + 258)
-#define __NR_linkat	(__NR_Linux + 259)
-#define __NR_symlinkat	(__NR_Linux + 260)
-#define __NR_readlinkat	(__NR_Linux + 261)
-#define __NR_fchmodat	(__NR_Linux + 262)
-#define __NR_faccessat	(__NR_Linux + 263)
-#define __NR_pselect6	(__NR_Linux + 264)
-#define __NR_ppoll	(__NR_Linux + 265)
-#define __NR_unshare	(__NR_Linux + 266)
-#define __NR_splice	(__NR_Linux + 267)
-#define __NR_sync_file_range	(__NR_Linux + 268)
-#define __NR_tee	(__NR_Linux + 269)
-#define __NR_vmsplice	(__NR_Linux + 270)
-#define __NR_move_pages	(__NR_Linux + 271)
-#define __NR_set_robust_list	(__NR_Linux + 272)
-#define __NR_get_robust_list	(__NR_Linux + 273)
-#define __NR_kexec_load	(__NR_Linux + 274)
-#define __NR_getcpu	(__NR_Linux + 275)
-#define __NR_epoll_pwait	(__NR_Linux + 276)
-#define __NR_ioprio_set	(__NR_Linux + 277)
-#define __NR_ioprio_get	(__NR_Linux + 278)
-#define __NR_utimensat	(__NR_Linux + 279)
-#define __NR_signalfd	(__NR_Linux + 280)
-#define __NR_timerfd	(__NR_Linux + 281)
-#define __NR_eventfd	(__NR_Linux + 282)
-#define __NR_fallocate	(__NR_Linux + 283)
-#define __NR_timerfd_create	(__NR_Linux + 284)
-#define __NR_timerfd_gettime	(__NR_Linux + 285)
-#define __NR_timerfd_settime	(__NR_Linux + 286)
-#define __NR_signalfd4	(__NR_Linux + 287)
-#define __NR_eventfd2	(__NR_Linux + 288)
-#define __NR_epoll_create1	(__NR_Linux + 289)
-#define __NR_dup3	(__NR_Linux + 290)
-#define __NR_pipe2	(__NR_Linux + 291)
-#define __NR_inotify_init1	(__NR_Linux + 292)
-#define __NR_preadv	(__NR_Linux + 293)
-#define __NR_pwritev	(__NR_Linux + 294)
-#define __NR_rt_tgsigqueueinfo	(__NR_Linux + 295)
-#define __NR_perf_event_open	(__NR_Linux + 296)
-#define __NR_accept4	(__NR_Linux + 297)
-#define __NR_recvmmsg	(__NR_Linux + 298)
-#define __NR_getdents64	(__NR_Linux + 299)
-#define __NR_fanotify_init	(__NR_Linux + 300)
-#define __NR_fanotify_mark	(__NR_Linux + 301)
-#define __NR_prlimit64	(__NR_Linux + 302)
-#define __NR_name_to_handle_at	(__NR_Linux + 303)
-#define __NR_open_by_handle_at	(__NR_Linux + 304)
-#define __NR_clock_adjtime	(__NR_Linux + 305)
-#define __NR_syncfs	(__NR_Linux + 306)
-#define __NR_sendmmsg	(__NR_Linux + 307)
-#define __NR_setns	(__NR_Linux + 308)
-#define __NR_process_vm_readv	(__NR_Linux + 309)
-#define __NR_process_vm_writev	(__NR_Linux + 310)
-#define __NR_kcmp	(__NR_Linux + 311)
-#define __NR_finit_module	(__NR_Linux + 312)
-#define __NR_sched_setattr	(__NR_Linux + 313)
-#define __NR_sched_getattr	(__NR_Linux + 314)
-#define __NR_renameat2	(__NR_Linux + 315)
-#define __NR_seccomp	(__NR_Linux + 316)
-#define __NR_getrandom	(__NR_Linux + 317)
-#define __NR_memfd_create	(__NR_Linux + 318)
-#define __NR_bpf	(__NR_Linux + 319)
-#define __NR_execveat	(__NR_Linux + 320)
-#define __NR_userfaultfd	(__NR_Linux + 321)
-#define __NR_membarrier	(__NR_Linux + 322)
-#define __NR_mlock2	(__NR_Linux + 323)
-#define __NR_copy_file_range	(__NR_Linux + 324)
-#define __NR_preadv2	(__NR_Linux + 325)
-#define __NR_pwritev2	(__NR_Linux + 326)
-#define __NR_pkey_mprotect	(__NR_Linux + 327)
-#define __NR_pkey_alloc	(__NR_Linux + 328)
-#define __NR_pkey_free	(__NR_Linux + 329)
-#define __NR_statx	(__NR_Linux + 330)
-#define __NR_rseq	(__NR_Linux + 331)
-#define __NR_io_pgetevents	(__NR_Linux + 332)
-#define __NR_clock_gettime64	(__NR_Linux + 403)
-#define __NR_clock_settime64	(__NR_Linux + 404)
-#define __NR_clock_adjtime64	(__NR_Linux + 405)
-#define __NR_clock_getres_time64	(__NR_Linux + 406)
-#define __NR_clock_nanosleep_time64	(__NR_Linux + 407)
-#define __NR_timer_gettime64	(__NR_Linux + 408)
-#define __NR_timer_settime64	(__NR_Linux + 409)
-#define __NR_timerfd_gettime64	(__NR_Linux + 410)
-#define __NR_timerfd_settime64	(__NR_Linux + 411)
-#define __NR_utimensat_time64	(__NR_Linux + 412)
-#define __NR_pselect6_time64	(__NR_Linux + 413)
-#define __NR_ppoll_time64	(__NR_Linux + 414)
-#define __NR_io_pgetevents_time64	(__NR_Linux + 416)
-#define __NR_recvmmsg_time64	(__NR_Linux + 417)
-#define __NR_mq_timedsend_time64	(__NR_Linux + 418)
-#define __NR_mq_timedreceive_time64	(__NR_Linux + 419)
-#define __NR_semtimedop_time64	(__NR_Linux + 420)
-#define __NR_rt_sigtimedwait_time64	(__NR_Linux + 421)
-#define __NR_futex_time64	(__NR_Linux + 422)
-#define __NR_sched_rr_get_interval_time64	(__NR_Linux + 423)
-#define __NR_pidfd_send_signal	(__NR_Linux + 424)
-#define __NR_io_uring_setup	(__NR_Linux + 425)
-#define __NR_io_uring_enter	(__NR_Linux + 426)
-#define __NR_io_uring_register	(__NR_Linux + 427)
-#define __NR_open_tree	(__NR_Linux + 428)
-#define __NR_move_mount	(__NR_Linux + 429)
-#define __NR_fsopen	(__NR_Linux + 430)
-#define __NR_fsconfig	(__NR_Linux + 431)
-#define __NR_fsmount	(__NR_Linux + 432)
-#define __NR_fspick	(__NR_Linux + 433)
-#define __NR_pidfd_open	(__NR_Linux + 434)
-#define __NR_clone3	(__NR_Linux + 435)
-
-#ifdef __KERNEL__
-#define __NR_syscalls	436
-#endif
-
-#endif /* _UAPI_ASM_MIPS_UNISTD_N32_H */
diff --git a/original/uapi/asm-mips/asm/unistd_n64.h b/original/uapi/asm-mips/asm/unistd_n64.h
deleted file mode 100644
index f15b636..0000000
--- a/original/uapi/asm-mips/asm/unistd_n64.h
+++ /dev/null
@@ -1,349 +0,0 @@
-#ifndef _UAPI_ASM_MIPS_UNISTD_N64_H
-#define _UAPI_ASM_MIPS_UNISTD_N64_H
-
-#define __NR_read	(__NR_Linux + 0)
-#define __NR_write	(__NR_Linux + 1)
-#define __NR_open	(__NR_Linux + 2)
-#define __NR_close	(__NR_Linux + 3)
-#define __NR_stat	(__NR_Linux + 4)
-#define __NR_fstat	(__NR_Linux + 5)
-#define __NR_lstat	(__NR_Linux + 6)
-#define __NR_poll	(__NR_Linux + 7)
-#define __NR_lseek	(__NR_Linux + 8)
-#define __NR_mmap	(__NR_Linux + 9)
-#define __NR_mprotect	(__NR_Linux + 10)
-#define __NR_munmap	(__NR_Linux + 11)
-#define __NR_brk	(__NR_Linux + 12)
-#define __NR_rt_sigaction	(__NR_Linux + 13)
-#define __NR_rt_sigprocmask	(__NR_Linux + 14)
-#define __NR_ioctl	(__NR_Linux + 15)
-#define __NR_pread64	(__NR_Linux + 16)
-#define __NR_pwrite64	(__NR_Linux + 17)
-#define __NR_readv	(__NR_Linux + 18)
-#define __NR_writev	(__NR_Linux + 19)
-#define __NR_access	(__NR_Linux + 20)
-#define __NR_pipe	(__NR_Linux + 21)
-#define __NR__newselect	(__NR_Linux + 22)
-#define __NR_sched_yield	(__NR_Linux + 23)
-#define __NR_mremap	(__NR_Linux + 24)
-#define __NR_msync	(__NR_Linux + 25)
-#define __NR_mincore	(__NR_Linux + 26)
-#define __NR_madvise	(__NR_Linux + 27)
-#define __NR_shmget	(__NR_Linux + 28)
-#define __NR_shmat	(__NR_Linux + 29)
-#define __NR_shmctl	(__NR_Linux + 30)
-#define __NR_dup	(__NR_Linux + 31)
-#define __NR_dup2	(__NR_Linux + 32)
-#define __NR_pause	(__NR_Linux + 33)
-#define __NR_nanosleep	(__NR_Linux + 34)
-#define __NR_getitimer	(__NR_Linux + 35)
-#define __NR_setitimer	(__NR_Linux + 36)
-#define __NR_alarm	(__NR_Linux + 37)
-#define __NR_getpid	(__NR_Linux + 38)
-#define __NR_sendfile	(__NR_Linux + 39)
-#define __NR_socket	(__NR_Linux + 40)
-#define __NR_connect	(__NR_Linux + 41)
-#define __NR_accept	(__NR_Linux + 42)
-#define __NR_sendto	(__NR_Linux + 43)
-#define __NR_recvfrom	(__NR_Linux + 44)
-#define __NR_sendmsg	(__NR_Linux + 45)
-#define __NR_recvmsg	(__NR_Linux + 46)
-#define __NR_shutdown	(__NR_Linux + 47)
-#define __NR_bind	(__NR_Linux + 48)
-#define __NR_listen	(__NR_Linux + 49)
-#define __NR_getsockname	(__NR_Linux + 50)
-#define __NR_getpeername	(__NR_Linux + 51)
-#define __NR_socketpair	(__NR_Linux + 52)
-#define __NR_setsockopt	(__NR_Linux + 53)
-#define __NR_getsockopt	(__NR_Linux + 54)
-#define __NR_clone	(__NR_Linux + 55)
-#define __NR_fork	(__NR_Linux + 56)
-#define __NR_execve	(__NR_Linux + 57)
-#define __NR_exit	(__NR_Linux + 58)
-#define __NR_wait4	(__NR_Linux + 59)
-#define __NR_kill	(__NR_Linux + 60)
-#define __NR_uname	(__NR_Linux + 61)
-#define __NR_semget	(__NR_Linux + 62)
-#define __NR_semop	(__NR_Linux + 63)
-#define __NR_semctl	(__NR_Linux + 64)
-#define __NR_shmdt	(__NR_Linux + 65)
-#define __NR_msgget	(__NR_Linux + 66)
-#define __NR_msgsnd	(__NR_Linux + 67)
-#define __NR_msgrcv	(__NR_Linux + 68)
-#define __NR_msgctl	(__NR_Linux + 69)
-#define __NR_fcntl	(__NR_Linux + 70)
-#define __NR_flock	(__NR_Linux + 71)
-#define __NR_fsync	(__NR_Linux + 72)
-#define __NR_fdatasync	(__NR_Linux + 73)
-#define __NR_truncate	(__NR_Linux + 74)
-#define __NR_ftruncate	(__NR_Linux + 75)
-#define __NR_getdents	(__NR_Linux + 76)
-#define __NR_getcwd	(__NR_Linux + 77)
-#define __NR_chdir	(__NR_Linux + 78)
-#define __NR_fchdir	(__NR_Linux + 79)
-#define __NR_rename	(__NR_Linux + 80)
-#define __NR_mkdir	(__NR_Linux + 81)
-#define __NR_rmdir	(__NR_Linux + 82)
-#define __NR_creat	(__NR_Linux + 83)
-#define __NR_link	(__NR_Linux + 84)
-#define __NR_unlink	(__NR_Linux + 85)
-#define __NR_symlink	(__NR_Linux + 86)
-#define __NR_readlink	(__NR_Linux + 87)
-#define __NR_chmod	(__NR_Linux + 88)
-#define __NR_fchmod	(__NR_Linux + 89)
-#define __NR_chown	(__NR_Linux + 90)
-#define __NR_fchown	(__NR_Linux + 91)
-#define __NR_lchown	(__NR_Linux + 92)
-#define __NR_umask	(__NR_Linux + 93)
-#define __NR_gettimeofday	(__NR_Linux + 94)
-#define __NR_getrlimit	(__NR_Linux + 95)
-#define __NR_getrusage	(__NR_Linux + 96)
-#define __NR_sysinfo	(__NR_Linux + 97)
-#define __NR_times	(__NR_Linux + 98)
-#define __NR_ptrace	(__NR_Linux + 99)
-#define __NR_getuid	(__NR_Linux + 100)
-#define __NR_syslog	(__NR_Linux + 101)
-#define __NR_getgid	(__NR_Linux + 102)
-#define __NR_setuid	(__NR_Linux + 103)
-#define __NR_setgid	(__NR_Linux + 104)
-#define __NR_geteuid	(__NR_Linux + 105)
-#define __NR_getegid	(__NR_Linux + 106)
-#define __NR_setpgid	(__NR_Linux + 107)
-#define __NR_getppid	(__NR_Linux + 108)
-#define __NR_getpgrp	(__NR_Linux + 109)
-#define __NR_setsid	(__NR_Linux + 110)
-#define __NR_setreuid	(__NR_Linux + 111)
-#define __NR_setregid	(__NR_Linux + 112)
-#define __NR_getgroups	(__NR_Linux + 113)
-#define __NR_setgroups	(__NR_Linux + 114)
-#define __NR_setresuid	(__NR_Linux + 115)
-#define __NR_getresuid	(__NR_Linux + 116)
-#define __NR_setresgid	(__NR_Linux + 117)
-#define __NR_getresgid	(__NR_Linux + 118)
-#define __NR_getpgid	(__NR_Linux + 119)
-#define __NR_setfsuid	(__NR_Linux + 120)
-#define __NR_setfsgid	(__NR_Linux + 121)
-#define __NR_getsid	(__NR_Linux + 122)
-#define __NR_capget	(__NR_Linux + 123)
-#define __NR_capset	(__NR_Linux + 124)
-#define __NR_rt_sigpending	(__NR_Linux + 125)
-#define __NR_rt_sigtimedwait	(__NR_Linux + 126)
-#define __NR_rt_sigqueueinfo	(__NR_Linux + 127)
-#define __NR_rt_sigsuspend	(__NR_Linux + 128)
-#define __NR_sigaltstack	(__NR_Linux + 129)
-#define __NR_utime	(__NR_Linux + 130)
-#define __NR_mknod	(__NR_Linux + 131)
-#define __NR_personality	(__NR_Linux + 132)
-#define __NR_ustat	(__NR_Linux + 133)
-#define __NR_statfs	(__NR_Linux + 134)
-#define __NR_fstatfs	(__NR_Linux + 135)
-#define __NR_sysfs	(__NR_Linux + 136)
-#define __NR_getpriority	(__NR_Linux + 137)
-#define __NR_setpriority	(__NR_Linux + 138)
-#define __NR_sched_setparam	(__NR_Linux + 139)
-#define __NR_sched_getparam	(__NR_Linux + 140)
-#define __NR_sched_setscheduler	(__NR_Linux + 141)
-#define __NR_sched_getscheduler	(__NR_Linux + 142)
-#define __NR_sched_get_priority_max	(__NR_Linux + 143)
-#define __NR_sched_get_priority_min	(__NR_Linux + 144)
-#define __NR_sched_rr_get_interval	(__NR_Linux + 145)
-#define __NR_mlock	(__NR_Linux + 146)
-#define __NR_munlock	(__NR_Linux + 147)
-#define __NR_mlockall	(__NR_Linux + 148)
-#define __NR_munlockall	(__NR_Linux + 149)
-#define __NR_vhangup	(__NR_Linux + 150)
-#define __NR_pivot_root	(__NR_Linux + 151)
-#define __NR__sysctl	(__NR_Linux + 152)
-#define __NR_prctl	(__NR_Linux + 153)
-#define __NR_adjtimex	(__NR_Linux + 154)
-#define __NR_setrlimit	(__NR_Linux + 155)
-#define __NR_chroot	(__NR_Linux + 156)
-#define __NR_sync	(__NR_Linux + 157)
-#define __NR_acct	(__NR_Linux + 158)
-#define __NR_settimeofday	(__NR_Linux + 159)
-#define __NR_mount	(__NR_Linux + 160)
-#define __NR_umount2	(__NR_Linux + 161)
-#define __NR_swapon	(__NR_Linux + 162)
-#define __NR_swapoff	(__NR_Linux + 163)
-#define __NR_reboot	(__NR_Linux + 164)
-#define __NR_sethostname	(__NR_Linux + 165)
-#define __NR_setdomainname	(__NR_Linux + 166)
-#define __NR_create_module	(__NR_Linux + 167)
-#define __NR_init_module	(__NR_Linux + 168)
-#define __NR_delete_module	(__NR_Linux + 169)
-#define __NR_get_kernel_syms	(__NR_Linux + 170)
-#define __NR_query_module	(__NR_Linux + 171)
-#define __NR_quotactl	(__NR_Linux + 172)
-#define __NR_nfsservctl	(__NR_Linux + 173)
-#define __NR_getpmsg	(__NR_Linux + 174)
-#define __NR_putpmsg	(__NR_Linux + 175)
-#define __NR_afs_syscall	(__NR_Linux + 176)
-#define __NR_reserved177	(__NR_Linux + 177)
-#define __NR_gettid	(__NR_Linux + 178)
-#define __NR_readahead	(__NR_Linux + 179)
-#define __NR_setxattr	(__NR_Linux + 180)
-#define __NR_lsetxattr	(__NR_Linux + 181)
-#define __NR_fsetxattr	(__NR_Linux + 182)
-#define __NR_getxattr	(__NR_Linux + 183)
-#define __NR_lgetxattr	(__NR_Linux + 184)
-#define __NR_fgetxattr	(__NR_Linux + 185)
-#define __NR_listxattr	(__NR_Linux + 186)
-#define __NR_llistxattr	(__NR_Linux + 187)
-#define __NR_flistxattr	(__NR_Linux + 188)
-#define __NR_removexattr	(__NR_Linux + 189)
-#define __NR_lremovexattr	(__NR_Linux + 190)
-#define __NR_fremovexattr	(__NR_Linux + 191)
-#define __NR_tkill	(__NR_Linux + 192)
-#define __NR_reserved193	(__NR_Linux + 193)
-#define __NR_futex	(__NR_Linux + 194)
-#define __NR_sched_setaffinity	(__NR_Linux + 195)
-#define __NR_sched_getaffinity	(__NR_Linux + 196)
-#define __NR_cacheflush	(__NR_Linux + 197)
-#define __NR_cachectl	(__NR_Linux + 198)
-#define __NR_sysmips	(__NR_Linux + 199)
-#define __NR_io_setup	(__NR_Linux + 200)
-#define __NR_io_destroy	(__NR_Linux + 201)
-#define __NR_io_getevents	(__NR_Linux + 202)
-#define __NR_io_submit	(__NR_Linux + 203)
-#define __NR_io_cancel	(__NR_Linux + 204)
-#define __NR_exit_group	(__NR_Linux + 205)
-#define __NR_lookup_dcookie	(__NR_Linux + 206)
-#define __NR_epoll_create	(__NR_Linux + 207)
-#define __NR_epoll_ctl	(__NR_Linux + 208)
-#define __NR_epoll_wait	(__NR_Linux + 209)
-#define __NR_remap_file_pages	(__NR_Linux + 210)
-#define __NR_rt_sigreturn	(__NR_Linux + 211)
-#define __NR_set_tid_address	(__NR_Linux + 212)
-#define __NR_restart_syscall	(__NR_Linux + 213)
-#define __NR_semtimedop	(__NR_Linux + 214)
-#define __NR_fadvise64	(__NR_Linux + 215)
-#define __NR_timer_create	(__NR_Linux + 216)
-#define __NR_timer_settime	(__NR_Linux + 217)
-#define __NR_timer_gettime	(__NR_Linux + 218)
-#define __NR_timer_getoverrun	(__NR_Linux + 219)
-#define __NR_timer_delete	(__NR_Linux + 220)
-#define __NR_clock_settime	(__NR_Linux + 221)
-#define __NR_clock_gettime	(__NR_Linux + 222)
-#define __NR_clock_getres	(__NR_Linux + 223)
-#define __NR_clock_nanosleep	(__NR_Linux + 224)
-#define __NR_tgkill	(__NR_Linux + 225)
-#define __NR_utimes	(__NR_Linux + 226)
-#define __NR_mbind	(__NR_Linux + 227)
-#define __NR_get_mempolicy	(__NR_Linux + 228)
-#define __NR_set_mempolicy	(__NR_Linux + 229)
-#define __NR_mq_open	(__NR_Linux + 230)
-#define __NR_mq_unlink	(__NR_Linux + 231)
-#define __NR_mq_timedsend	(__NR_Linux + 232)
-#define __NR_mq_timedreceive	(__NR_Linux + 233)
-#define __NR_mq_notify	(__NR_Linux + 234)
-#define __NR_mq_getsetattr	(__NR_Linux + 235)
-#define __NR_vserver	(__NR_Linux + 236)
-#define __NR_waitid	(__NR_Linux + 237)
-#define __NR_add_key	(__NR_Linux + 239)
-#define __NR_request_key	(__NR_Linux + 240)
-#define __NR_keyctl	(__NR_Linux + 241)
-#define __NR_set_thread_area	(__NR_Linux + 242)
-#define __NR_inotify_init	(__NR_Linux + 243)
-#define __NR_inotify_add_watch	(__NR_Linux + 244)
-#define __NR_inotify_rm_watch	(__NR_Linux + 245)
-#define __NR_migrate_pages	(__NR_Linux + 246)
-#define __NR_openat	(__NR_Linux + 247)
-#define __NR_mkdirat	(__NR_Linux + 248)
-#define __NR_mknodat	(__NR_Linux + 249)
-#define __NR_fchownat	(__NR_Linux + 250)
-#define __NR_futimesat	(__NR_Linux + 251)
-#define __NR_newfstatat	(__NR_Linux + 252)
-#define __NR_unlinkat	(__NR_Linux + 253)
-#define __NR_renameat	(__NR_Linux + 254)
-#define __NR_linkat	(__NR_Linux + 255)
-#define __NR_symlinkat	(__NR_Linux + 256)
-#define __NR_readlinkat	(__NR_Linux + 257)
-#define __NR_fchmodat	(__NR_Linux + 258)
-#define __NR_faccessat	(__NR_Linux + 259)
-#define __NR_pselect6	(__NR_Linux + 260)
-#define __NR_ppoll	(__NR_Linux + 261)
-#define __NR_unshare	(__NR_Linux + 262)
-#define __NR_splice	(__NR_Linux + 263)
-#define __NR_sync_file_range	(__NR_Linux + 264)
-#define __NR_tee	(__NR_Linux + 265)
-#define __NR_vmsplice	(__NR_Linux + 266)
-#define __NR_move_pages	(__NR_Linux + 267)
-#define __NR_set_robust_list	(__NR_Linux + 268)
-#define __NR_get_robust_list	(__NR_Linux + 269)
-#define __NR_kexec_load	(__NR_Linux + 270)
-#define __NR_getcpu	(__NR_Linux + 271)
-#define __NR_epoll_pwait	(__NR_Linux + 272)
-#define __NR_ioprio_set	(__NR_Linux + 273)
-#define __NR_ioprio_get	(__NR_Linux + 274)
-#define __NR_utimensat	(__NR_Linux + 275)
-#define __NR_signalfd	(__NR_Linux + 276)
-#define __NR_timerfd	(__NR_Linux + 277)
-#define __NR_eventfd	(__NR_Linux + 278)
-#define __NR_fallocate	(__NR_Linux + 279)
-#define __NR_timerfd_create	(__NR_Linux + 280)
-#define __NR_timerfd_gettime	(__NR_Linux + 281)
-#define __NR_timerfd_settime	(__NR_Linux + 282)
-#define __NR_signalfd4	(__NR_Linux + 283)
-#define __NR_eventfd2	(__NR_Linux + 284)
-#define __NR_epoll_create1	(__NR_Linux + 285)
-#define __NR_dup3	(__NR_Linux + 286)
-#define __NR_pipe2	(__NR_Linux + 287)
-#define __NR_inotify_init1	(__NR_Linux + 288)
-#define __NR_preadv	(__NR_Linux + 289)
-#define __NR_pwritev	(__NR_Linux + 290)
-#define __NR_rt_tgsigqueueinfo	(__NR_Linux + 291)
-#define __NR_perf_event_open	(__NR_Linux + 292)
-#define __NR_accept4	(__NR_Linux + 293)
-#define __NR_recvmmsg	(__NR_Linux + 294)
-#define __NR_fanotify_init	(__NR_Linux + 295)
-#define __NR_fanotify_mark	(__NR_Linux + 296)
-#define __NR_prlimit64	(__NR_Linux + 297)
-#define __NR_name_to_handle_at	(__NR_Linux + 298)
-#define __NR_open_by_handle_at	(__NR_Linux + 299)
-#define __NR_clock_adjtime	(__NR_Linux + 300)
-#define __NR_syncfs	(__NR_Linux + 301)
-#define __NR_sendmmsg	(__NR_Linux + 302)
-#define __NR_setns	(__NR_Linux + 303)
-#define __NR_process_vm_readv	(__NR_Linux + 304)
-#define __NR_process_vm_writev	(__NR_Linux + 305)
-#define __NR_kcmp	(__NR_Linux + 306)
-#define __NR_finit_module	(__NR_Linux + 307)
-#define __NR_getdents64	(__NR_Linux + 308)
-#define __NR_sched_setattr	(__NR_Linux + 309)
-#define __NR_sched_getattr	(__NR_Linux + 310)
-#define __NR_renameat2	(__NR_Linux + 311)
-#define __NR_seccomp	(__NR_Linux + 312)
-#define __NR_getrandom	(__NR_Linux + 313)
-#define __NR_memfd_create	(__NR_Linux + 314)
-#define __NR_bpf	(__NR_Linux + 315)
-#define __NR_execveat	(__NR_Linux + 316)
-#define __NR_userfaultfd	(__NR_Linux + 317)
-#define __NR_membarrier	(__NR_Linux + 318)
-#define __NR_mlock2	(__NR_Linux + 319)
-#define __NR_copy_file_range	(__NR_Linux + 320)
-#define __NR_preadv2	(__NR_Linux + 321)
-#define __NR_pwritev2	(__NR_Linux + 322)
-#define __NR_pkey_mprotect	(__NR_Linux + 323)
-#define __NR_pkey_alloc	(__NR_Linux + 324)
-#define __NR_pkey_free	(__NR_Linux + 325)
-#define __NR_statx	(__NR_Linux + 326)
-#define __NR_rseq	(__NR_Linux + 327)
-#define __NR_io_pgetevents	(__NR_Linux + 328)
-#define __NR_pidfd_send_signal	(__NR_Linux + 424)
-#define __NR_io_uring_setup	(__NR_Linux + 425)
-#define __NR_io_uring_enter	(__NR_Linux + 426)
-#define __NR_io_uring_register	(__NR_Linux + 427)
-#define __NR_open_tree	(__NR_Linux + 428)
-#define __NR_move_mount	(__NR_Linux + 429)
-#define __NR_fsopen	(__NR_Linux + 430)
-#define __NR_fsconfig	(__NR_Linux + 431)
-#define __NR_fsmount	(__NR_Linux + 432)
-#define __NR_fspick	(__NR_Linux + 433)
-#define __NR_pidfd_open	(__NR_Linux + 434)
-#define __NR_clone3	(__NR_Linux + 435)
-
-#ifdef __KERNEL__
-#define __NR_syscalls	436
-#endif
-
-#endif /* _UAPI_ASM_MIPS_UNISTD_N64_H */
diff --git a/original/uapi/asm-mips/asm/unistd_nr_n32.h b/original/uapi/asm-mips/asm/unistd_nr_n32.h
deleted file mode 100644
index 15f8118..0000000
--- a/original/uapi/asm-mips/asm/unistd_nr_n32.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _UAPI_ASM_MIPS_UNISTD_NR_N32_H
-#define _UAPI_ASM_MIPS_UNISTD_NR_N32_H
-
-#define __NR_N32_Linux	6000
-#define __NR_N32_Linux_syscalls	436
-
-#endif /* _UAPI_ASM_MIPS_UNISTD_NR_N32_H */
diff --git a/original/uapi/asm-mips/asm/unistd_nr_n64.h b/original/uapi/asm-mips/asm/unistd_nr_n64.h
deleted file mode 100644
index c34f637..0000000
--- a/original/uapi/asm-mips/asm/unistd_nr_n64.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _UAPI_ASM_MIPS_UNISTD_NR_N64_H
-#define _UAPI_ASM_MIPS_UNISTD_NR_N64_H
-
-#define __NR_64_Linux	5000
-#define __NR_64_Linux_syscalls	436
-
-#endif /* _UAPI_ASM_MIPS_UNISTD_NR_N64_H */
diff --git a/original/uapi/asm-mips/asm/unistd_nr_o32.h b/original/uapi/asm-mips/asm/unistd_nr_o32.h
deleted file mode 100644
index 8b16c3e..0000000
--- a/original/uapi/asm-mips/asm/unistd_nr_o32.h
+++ /dev/null
@@ -1,7 +0,0 @@
-#ifndef _UAPI_ASM_MIPS_UNISTD_NR_O32_H
-#define _UAPI_ASM_MIPS_UNISTD_NR_O32_H
-
-#define __NR_O32_Linux	4000
-#define __NR_O32_Linux_syscalls	436
-
-#endif /* _UAPI_ASM_MIPS_UNISTD_NR_O32_H */
diff --git a/original/uapi/asm-mips/asm/unistd_o32.h b/original/uapi/asm-mips/asm/unistd_o32.h
deleted file mode 100644
index a3fba5b..0000000
--- a/original/uapi/asm-mips/asm/unistd_o32.h
+++ /dev/null
@@ -1,419 +0,0 @@
-#ifndef _UAPI_ASM_MIPS_UNISTD_O32_H
-#define _UAPI_ASM_MIPS_UNISTD_O32_H
-
-#define __NR_syscall	(__NR_Linux + 0)
-#define __NR_exit	(__NR_Linux + 1)
-#define __NR_fork	(__NR_Linux + 2)
-#define __NR_read	(__NR_Linux + 3)
-#define __NR_write	(__NR_Linux + 4)
-#define __NR_open	(__NR_Linux + 5)
-#define __NR_close	(__NR_Linux + 6)
-#define __NR_waitpid	(__NR_Linux + 7)
-#define __NR_creat	(__NR_Linux + 8)
-#define __NR_link	(__NR_Linux + 9)
-#define __NR_unlink	(__NR_Linux + 10)
-#define __NR_execve	(__NR_Linux + 11)
-#define __NR_chdir	(__NR_Linux + 12)
-#define __NR_time	(__NR_Linux + 13)
-#define __NR_mknod	(__NR_Linux + 14)
-#define __NR_chmod	(__NR_Linux + 15)
-#define __NR_lchown	(__NR_Linux + 16)
-#define __NR_break	(__NR_Linux + 17)
-#define __NR_unused18	(__NR_Linux + 18)
-#define __NR_lseek	(__NR_Linux + 19)
-#define __NR_getpid	(__NR_Linux + 20)
-#define __NR_mount	(__NR_Linux + 21)
-#define __NR_umount	(__NR_Linux + 22)
-#define __NR_setuid	(__NR_Linux + 23)
-#define __NR_getuid	(__NR_Linux + 24)
-#define __NR_stime	(__NR_Linux + 25)
-#define __NR_ptrace	(__NR_Linux + 26)
-#define __NR_alarm	(__NR_Linux + 27)
-#define __NR_unused28	(__NR_Linux + 28)
-#define __NR_pause	(__NR_Linux + 29)
-#define __NR_utime	(__NR_Linux + 30)
-#define __NR_stty	(__NR_Linux + 31)
-#define __NR_gtty	(__NR_Linux + 32)
-#define __NR_access	(__NR_Linux + 33)
-#define __NR_nice	(__NR_Linux + 34)
-#define __NR_ftime	(__NR_Linux + 35)
-#define __NR_sync	(__NR_Linux + 36)
-#define __NR_kill	(__NR_Linux + 37)
-#define __NR_rename	(__NR_Linux + 38)
-#define __NR_mkdir	(__NR_Linux + 39)
-#define __NR_rmdir	(__NR_Linux + 40)
-#define __NR_dup	(__NR_Linux + 41)
-#define __NR_pipe	(__NR_Linux + 42)
-#define __NR_times	(__NR_Linux + 43)
-#define __NR_prof	(__NR_Linux + 44)
-#define __NR_brk	(__NR_Linux + 45)
-#define __NR_setgid	(__NR_Linux + 46)
-#define __NR_getgid	(__NR_Linux + 47)
-#define __NR_signal	(__NR_Linux + 48)
-#define __NR_geteuid	(__NR_Linux + 49)
-#define __NR_getegid	(__NR_Linux + 50)
-#define __NR_acct	(__NR_Linux + 51)
-#define __NR_umount2	(__NR_Linux + 52)
-#define __NR_lock	(__NR_Linux + 53)
-#define __NR_ioctl	(__NR_Linux + 54)
-#define __NR_fcntl	(__NR_Linux + 55)
-#define __NR_mpx	(__NR_Linux + 56)
-#define __NR_setpgid	(__NR_Linux + 57)
-#define __NR_ulimit	(__NR_Linux + 58)
-#define __NR_unused59	(__NR_Linux + 59)
-#define __NR_umask	(__NR_Linux + 60)
-#define __NR_chroot	(__NR_Linux + 61)
-#define __NR_ustat	(__NR_Linux + 62)
-#define __NR_dup2	(__NR_Linux + 63)
-#define __NR_getppid	(__NR_Linux + 64)
-#define __NR_getpgrp	(__NR_Linux + 65)
-#define __NR_setsid	(__NR_Linux + 66)
-#define __NR_sigaction	(__NR_Linux + 67)
-#define __NR_sgetmask	(__NR_Linux + 68)
-#define __NR_ssetmask	(__NR_Linux + 69)
-#define __NR_setreuid	(__NR_Linux + 70)
-#define __NR_setregid	(__NR_Linux + 71)
-#define __NR_sigsuspend	(__NR_Linux + 72)
-#define __NR_sigpending	(__NR_Linux + 73)
-#define __NR_sethostname	(__NR_Linux + 74)
-#define __NR_setrlimit	(__NR_Linux + 75)
-#define __NR_getrlimit	(__NR_Linux + 76)
-#define __NR_getrusage	(__NR_Linux + 77)
-#define __NR_gettimeofday	(__NR_Linux + 78)
-#define __NR_settimeofday	(__NR_Linux + 79)
-#define __NR_getgroups	(__NR_Linux + 80)
-#define __NR_setgroups	(__NR_Linux + 81)
-#define __NR_reserved82	(__NR_Linux + 82)
-#define __NR_symlink	(__NR_Linux + 83)
-#define __NR_unused84	(__NR_Linux + 84)
-#define __NR_readlink	(__NR_Linux + 85)
-#define __NR_uselib	(__NR_Linux + 86)
-#define __NR_swapon	(__NR_Linux + 87)
-#define __NR_reboot	(__NR_Linux + 88)
-#define __NR_readdir	(__NR_Linux + 89)
-#define __NR_mmap	(__NR_Linux + 90)
-#define __NR_munmap	(__NR_Linux + 91)
-#define __NR_truncate	(__NR_Linux + 92)
-#define __NR_ftruncate	(__NR_Linux + 93)
-#define __NR_fchmod	(__NR_Linux + 94)
-#define __NR_fchown	(__NR_Linux + 95)
-#define __NR_getpriority	(__NR_Linux + 96)
-#define __NR_setpriority	(__NR_Linux + 97)
-#define __NR_profil	(__NR_Linux + 98)
-#define __NR_statfs	(__NR_Linux + 99)
-#define __NR_fstatfs	(__NR_Linux + 100)
-#define __NR_ioperm	(__NR_Linux + 101)
-#define __NR_socketcall	(__NR_Linux + 102)
-#define __NR_syslog	(__NR_Linux + 103)
-#define __NR_setitimer	(__NR_Linux + 104)
-#define __NR_getitimer	(__NR_Linux + 105)
-#define __NR_stat	(__NR_Linux + 106)
-#define __NR_lstat	(__NR_Linux + 107)
-#define __NR_fstat	(__NR_Linux + 108)
-#define __NR_unused109	(__NR_Linux + 109)
-#define __NR_iopl	(__NR_Linux + 110)
-#define __NR_vhangup	(__NR_Linux + 111)
-#define __NR_idle	(__NR_Linux + 112)
-#define __NR_vm86	(__NR_Linux + 113)
-#define __NR_wait4	(__NR_Linux + 114)
-#define __NR_swapoff	(__NR_Linux + 115)
-#define __NR_sysinfo	(__NR_Linux + 116)
-#define __NR_ipc	(__NR_Linux + 117)
-#define __NR_fsync	(__NR_Linux + 118)
-#define __NR_sigreturn	(__NR_Linux + 119)
-#define __NR_clone	(__NR_Linux + 120)
-#define __NR_setdomainname	(__NR_Linux + 121)
-#define __NR_uname	(__NR_Linux + 122)
-#define __NR_modify_ldt	(__NR_Linux + 123)
-#define __NR_adjtimex	(__NR_Linux + 124)
-#define __NR_mprotect	(__NR_Linux + 125)
-#define __NR_sigprocmask	(__NR_Linux + 126)
-#define __NR_create_module	(__NR_Linux + 127)
-#define __NR_init_module	(__NR_Linux + 128)
-#define __NR_delete_module	(__NR_Linux + 129)
-#define __NR_get_kernel_syms	(__NR_Linux + 130)
-#define __NR_quotactl	(__NR_Linux + 131)
-#define __NR_getpgid	(__NR_Linux + 132)
-#define __NR_fchdir	(__NR_Linux + 133)
-#define __NR_bdflush	(__NR_Linux + 134)
-#define __NR_sysfs	(__NR_Linux + 135)
-#define __NR_personality	(__NR_Linux + 136)
-#define __NR_afs_syscall	(__NR_Linux + 137)
-#define __NR_setfsuid	(__NR_Linux + 138)
-#define __NR_setfsgid	(__NR_Linux + 139)
-#define __NR__llseek	(__NR_Linux + 140)
-#define __NR_getdents	(__NR_Linux + 141)
-#define __NR__newselect	(__NR_Linux + 142)
-#define __NR_flock	(__NR_Linux + 143)
-#define __NR_msync	(__NR_Linux + 144)
-#define __NR_readv	(__NR_Linux + 145)
-#define __NR_writev	(__NR_Linux + 146)
-#define __NR_cacheflush	(__NR_Linux + 147)
-#define __NR_cachectl	(__NR_Linux + 148)
-#define __NR_sysmips	(__NR_Linux + 149)
-#define __NR_unused150	(__NR_Linux + 150)
-#define __NR_getsid	(__NR_Linux + 151)
-#define __NR_fdatasync	(__NR_Linux + 152)
-#define __NR__sysctl	(__NR_Linux + 153)
-#define __NR_mlock	(__NR_Linux + 154)
-#define __NR_munlock	(__NR_Linux + 155)
-#define __NR_mlockall	(__NR_Linux + 156)
-#define __NR_munlockall	(__NR_Linux + 157)
-#define __NR_sched_setparam	(__NR_Linux + 158)
-#define __NR_sched_getparam	(__NR_Linux + 159)
-#define __NR_sched_setscheduler	(__NR_Linux + 160)
-#define __NR_sched_getscheduler	(__NR_Linux + 161)
-#define __NR_sched_yield	(__NR_Linux + 162)
-#define __NR_sched_get_priority_max	(__NR_Linux + 163)
-#define __NR_sched_get_priority_min	(__NR_Linux + 164)
-#define __NR_sched_rr_get_interval	(__NR_Linux + 165)
-#define __NR_nanosleep	(__NR_Linux + 166)
-#define __NR_mremap	(__NR_Linux + 167)
-#define __NR_accept	(__NR_Linux + 168)
-#define __NR_bind	(__NR_Linux + 169)
-#define __NR_connect	(__NR_Linux + 170)
-#define __NR_getpeername	(__NR_Linux + 171)
-#define __NR_getsockname	(__NR_Linux + 172)
-#define __NR_getsockopt	(__NR_Linux + 173)
-#define __NR_listen	(__NR_Linux + 174)
-#define __NR_recv	(__NR_Linux + 175)
-#define __NR_recvfrom	(__NR_Linux + 176)
-#define __NR_recvmsg	(__NR_Linux + 177)
-#define __NR_send	(__NR_Linux + 178)
-#define __NR_sendmsg	(__NR_Linux + 179)
-#define __NR_sendto	(__NR_Linux + 180)
-#define __NR_setsockopt	(__NR_Linux + 181)
-#define __NR_shutdown	(__NR_Linux + 182)
-#define __NR_socket	(__NR_Linux + 183)
-#define __NR_socketpair	(__NR_Linux + 184)
-#define __NR_setresuid	(__NR_Linux + 185)
-#define __NR_getresuid	(__NR_Linux + 186)
-#define __NR_query_module	(__NR_Linux + 187)
-#define __NR_poll	(__NR_Linux + 188)
-#define __NR_nfsservctl	(__NR_Linux + 189)
-#define __NR_setresgid	(__NR_Linux + 190)
-#define __NR_getresgid	(__NR_Linux + 191)
-#define __NR_prctl	(__NR_Linux + 192)
-#define __NR_rt_sigreturn	(__NR_Linux + 193)
-#define __NR_rt_sigaction	(__NR_Linux + 194)
-#define __NR_rt_sigprocmask	(__NR_Linux + 195)
-#define __NR_rt_sigpending	(__NR_Linux + 196)
-#define __NR_rt_sigtimedwait	(__NR_Linux + 197)
-#define __NR_rt_sigqueueinfo	(__NR_Linux + 198)
-#define __NR_rt_sigsuspend	(__NR_Linux + 199)
-#define __NR_pread64	(__NR_Linux + 200)
-#define __NR_pwrite64	(__NR_Linux + 201)
-#define __NR_chown	(__NR_Linux + 202)
-#define __NR_getcwd	(__NR_Linux + 203)
-#define __NR_capget	(__NR_Linux + 204)
-#define __NR_capset	(__NR_Linux + 205)
-#define __NR_sigaltstack	(__NR_Linux + 206)
-#define __NR_sendfile	(__NR_Linux + 207)
-#define __NR_getpmsg	(__NR_Linux + 208)
-#define __NR_putpmsg	(__NR_Linux + 209)
-#define __NR_mmap2	(__NR_Linux + 210)
-#define __NR_truncate64	(__NR_Linux + 211)
-#define __NR_ftruncate64	(__NR_Linux + 212)
-#define __NR_stat64	(__NR_Linux + 213)
-#define __NR_lstat64	(__NR_Linux + 214)
-#define __NR_fstat64	(__NR_Linux + 215)
-#define __NR_pivot_root	(__NR_Linux + 216)
-#define __NR_mincore	(__NR_Linux + 217)
-#define __NR_madvise	(__NR_Linux + 218)
-#define __NR_getdents64	(__NR_Linux + 219)
-#define __NR_fcntl64	(__NR_Linux + 220)
-#define __NR_reserved221	(__NR_Linux + 221)
-#define __NR_gettid	(__NR_Linux + 222)
-#define __NR_readahead	(__NR_Linux + 223)
-#define __NR_setxattr	(__NR_Linux + 224)
-#define __NR_lsetxattr	(__NR_Linux + 225)
-#define __NR_fsetxattr	(__NR_Linux + 226)
-#define __NR_getxattr	(__NR_Linux + 227)
-#define __NR_lgetxattr	(__NR_Linux + 228)
-#define __NR_fgetxattr	(__NR_Linux + 229)
-#define __NR_listxattr	(__NR_Linux + 230)
-#define __NR_llistxattr	(__NR_Linux + 231)
-#define __NR_flistxattr	(__NR_Linux + 232)
-#define __NR_removexattr	(__NR_Linux + 233)
-#define __NR_lremovexattr	(__NR_Linux + 234)
-#define __NR_fremovexattr	(__NR_Linux + 235)
-#define __NR_tkill	(__NR_Linux + 236)
-#define __NR_sendfile64	(__NR_Linux + 237)
-#define __NR_futex	(__NR_Linux + 238)
-#define __NR_sched_setaffinity	(__NR_Linux + 239)
-#define __NR_sched_getaffinity	(__NR_Linux + 240)
-#define __NR_io_setup	(__NR_Linux + 241)
-#define __NR_io_destroy	(__NR_Linux + 242)
-#define __NR_io_getevents	(__NR_Linux + 243)
-#define __NR_io_submit	(__NR_Linux + 244)
-#define __NR_io_cancel	(__NR_Linux + 245)
-#define __NR_exit_group	(__NR_Linux + 246)
-#define __NR_lookup_dcookie	(__NR_Linux + 247)
-#define __NR_epoll_create	(__NR_Linux + 248)
-#define __NR_epoll_ctl	(__NR_Linux + 249)
-#define __NR_epoll_wait	(__NR_Linux + 250)
-#define __NR_remap_file_pages	(__NR_Linux + 251)
-#define __NR_set_tid_address	(__NR_Linux + 252)
-#define __NR_restart_syscall	(__NR_Linux + 253)
-#define __NR_fadvise64	(__NR_Linux + 254)
-#define __NR_statfs64	(__NR_Linux + 255)
-#define __NR_fstatfs64	(__NR_Linux + 256)
-#define __NR_timer_create	(__NR_Linux + 257)
-#define __NR_timer_settime	(__NR_Linux + 258)
-#define __NR_timer_gettime	(__NR_Linux + 259)
-#define __NR_timer_getoverrun	(__NR_Linux + 260)
-#define __NR_timer_delete	(__NR_Linux + 261)
-#define __NR_clock_settime	(__NR_Linux + 262)
-#define __NR_clock_gettime	(__NR_Linux + 263)
-#define __NR_clock_getres	(__NR_Linux + 264)
-#define __NR_clock_nanosleep	(__NR_Linux + 265)
-#define __NR_tgkill	(__NR_Linux + 266)
-#define __NR_utimes	(__NR_Linux + 267)
-#define __NR_mbind	(__NR_Linux + 268)
-#define __NR_get_mempolicy	(__NR_Linux + 269)
-#define __NR_set_mempolicy	(__NR_Linux + 270)
-#define __NR_mq_open	(__NR_Linux + 271)
-#define __NR_mq_unlink	(__NR_Linux + 272)
-#define __NR_mq_timedsend	(__NR_Linux + 273)
-#define __NR_mq_timedreceive	(__NR_Linux + 274)
-#define __NR_mq_notify	(__NR_Linux + 275)
-#define __NR_mq_getsetattr	(__NR_Linux + 276)
-#define __NR_vserver	(__NR_Linux + 277)
-#define __NR_waitid	(__NR_Linux + 278)
-#define __NR_add_key	(__NR_Linux + 280)
-#define __NR_request_key	(__NR_Linux + 281)
-#define __NR_keyctl	(__NR_Linux + 282)
-#define __NR_set_thread_area	(__NR_Linux + 283)
-#define __NR_inotify_init	(__NR_Linux + 284)
-#define __NR_inotify_add_watch	(__NR_Linux + 285)
-#define __NR_inotify_rm_watch	(__NR_Linux + 286)
-#define __NR_migrate_pages	(__NR_Linux + 287)
-#define __NR_openat	(__NR_Linux + 288)
-#define __NR_mkdirat	(__NR_Linux + 289)
-#define __NR_mknodat	(__NR_Linux + 290)
-#define __NR_fchownat	(__NR_Linux + 291)
-#define __NR_futimesat	(__NR_Linux + 292)
-#define __NR_fstatat64	(__NR_Linux + 293)
-#define __NR_unlinkat	(__NR_Linux + 294)
-#define __NR_renameat	(__NR_Linux + 295)
-#define __NR_linkat	(__NR_Linux + 296)
-#define __NR_symlinkat	(__NR_Linux + 297)
-#define __NR_readlinkat	(__NR_Linux + 298)
-#define __NR_fchmodat	(__NR_Linux + 299)
-#define __NR_faccessat	(__NR_Linux + 300)
-#define __NR_pselect6	(__NR_Linux + 301)
-#define __NR_ppoll	(__NR_Linux + 302)
-#define __NR_unshare	(__NR_Linux + 303)
-#define __NR_splice	(__NR_Linux + 304)
-#define __NR_sync_file_range	(__NR_Linux + 305)
-#define __NR_tee	(__NR_Linux + 306)
-#define __NR_vmsplice	(__NR_Linux + 307)
-#define __NR_move_pages	(__NR_Linux + 308)
-#define __NR_set_robust_list	(__NR_Linux + 309)
-#define __NR_get_robust_list	(__NR_Linux + 310)
-#define __NR_kexec_load	(__NR_Linux + 311)
-#define __NR_getcpu	(__NR_Linux + 312)
-#define __NR_epoll_pwait	(__NR_Linux + 313)
-#define __NR_ioprio_set	(__NR_Linux + 314)
-#define __NR_ioprio_get	(__NR_Linux + 315)
-#define __NR_utimensat	(__NR_Linux + 316)
-#define __NR_signalfd	(__NR_Linux + 317)
-#define __NR_timerfd	(__NR_Linux + 318)
-#define __NR_eventfd	(__NR_Linux + 319)
-#define __NR_fallocate	(__NR_Linux + 320)
-#define __NR_timerfd_create	(__NR_Linux + 321)
-#define __NR_timerfd_gettime	(__NR_Linux + 322)
-#define __NR_timerfd_settime	(__NR_Linux + 323)
-#define __NR_signalfd4	(__NR_Linux + 324)
-#define __NR_eventfd2	(__NR_Linux + 325)
-#define __NR_epoll_create1	(__NR_Linux + 326)
-#define __NR_dup3	(__NR_Linux + 327)
-#define __NR_pipe2	(__NR_Linux + 328)
-#define __NR_inotify_init1	(__NR_Linux + 329)
-#define __NR_preadv	(__NR_Linux + 330)
-#define __NR_pwritev	(__NR_Linux + 331)
-#define __NR_rt_tgsigqueueinfo	(__NR_Linux + 332)
-#define __NR_perf_event_open	(__NR_Linux + 333)
-#define __NR_accept4	(__NR_Linux + 334)
-#define __NR_recvmmsg	(__NR_Linux + 335)
-#define __NR_fanotify_init	(__NR_Linux + 336)
-#define __NR_fanotify_mark	(__NR_Linux + 337)
-#define __NR_prlimit64	(__NR_Linux + 338)
-#define __NR_name_to_handle_at	(__NR_Linux + 339)
-#define __NR_open_by_handle_at	(__NR_Linux + 340)
-#define __NR_clock_adjtime	(__NR_Linux + 341)
-#define __NR_syncfs	(__NR_Linux + 342)
-#define __NR_sendmmsg	(__NR_Linux + 343)
-#define __NR_setns	(__NR_Linux + 344)
-#define __NR_process_vm_readv	(__NR_Linux + 345)
-#define __NR_process_vm_writev	(__NR_Linux + 346)
-#define __NR_kcmp	(__NR_Linux + 347)
-#define __NR_finit_module	(__NR_Linux + 348)
-#define __NR_sched_setattr	(__NR_Linux + 349)
-#define __NR_sched_getattr	(__NR_Linux + 350)
-#define __NR_renameat2	(__NR_Linux + 351)
-#define __NR_seccomp	(__NR_Linux + 352)
-#define __NR_getrandom	(__NR_Linux + 353)
-#define __NR_memfd_create	(__NR_Linux + 354)
-#define __NR_bpf	(__NR_Linux + 355)
-#define __NR_execveat	(__NR_Linux + 356)
-#define __NR_userfaultfd	(__NR_Linux + 357)
-#define __NR_membarrier	(__NR_Linux + 358)
-#define __NR_mlock2	(__NR_Linux + 359)
-#define __NR_copy_file_range	(__NR_Linux + 360)
-#define __NR_preadv2	(__NR_Linux + 361)
-#define __NR_pwritev2	(__NR_Linux + 362)
-#define __NR_pkey_mprotect	(__NR_Linux + 363)
-#define __NR_pkey_alloc	(__NR_Linux + 364)
-#define __NR_pkey_free	(__NR_Linux + 365)
-#define __NR_statx	(__NR_Linux + 366)
-#define __NR_rseq	(__NR_Linux + 367)
-#define __NR_io_pgetevents	(__NR_Linux + 368)
-#define __NR_semget	(__NR_Linux + 393)
-#define __NR_semctl	(__NR_Linux + 394)
-#define __NR_shmget	(__NR_Linux + 395)
-#define __NR_shmctl	(__NR_Linux + 396)
-#define __NR_shmat	(__NR_Linux + 397)
-#define __NR_shmdt	(__NR_Linux + 398)
-#define __NR_msgget	(__NR_Linux + 399)
-#define __NR_msgsnd	(__NR_Linux + 400)
-#define __NR_msgrcv	(__NR_Linux + 401)
-#define __NR_msgctl	(__NR_Linux + 402)
-#define __NR_clock_gettime64	(__NR_Linux + 403)
-#define __NR_clock_settime64	(__NR_Linux + 404)
-#define __NR_clock_adjtime64	(__NR_Linux + 405)
-#define __NR_clock_getres_time64	(__NR_Linux + 406)
-#define __NR_clock_nanosleep_time64	(__NR_Linux + 407)
-#define __NR_timer_gettime64	(__NR_Linux + 408)
-#define __NR_timer_settime64	(__NR_Linux + 409)
-#define __NR_timerfd_gettime64	(__NR_Linux + 410)
-#define __NR_timerfd_settime64	(__NR_Linux + 411)
-#define __NR_utimensat_time64	(__NR_Linux + 412)
-#define __NR_pselect6_time64	(__NR_Linux + 413)
-#define __NR_ppoll_time64	(__NR_Linux + 414)
-#define __NR_io_pgetevents_time64	(__NR_Linux + 416)
-#define __NR_recvmmsg_time64	(__NR_Linux + 417)
-#define __NR_mq_timedsend_time64	(__NR_Linux + 418)
-#define __NR_mq_timedreceive_time64	(__NR_Linux + 419)
-#define __NR_semtimedop_time64	(__NR_Linux + 420)
-#define __NR_rt_sigtimedwait_time64	(__NR_Linux + 421)
-#define __NR_futex_time64	(__NR_Linux + 422)
-#define __NR_sched_rr_get_interval_time64	(__NR_Linux + 423)
-#define __NR_pidfd_send_signal	(__NR_Linux + 424)
-#define __NR_io_uring_setup	(__NR_Linux + 425)
-#define __NR_io_uring_enter	(__NR_Linux + 426)
-#define __NR_io_uring_register	(__NR_Linux + 427)
-#define __NR_open_tree	(__NR_Linux + 428)
-#define __NR_move_mount	(__NR_Linux + 429)
-#define __NR_fsopen	(__NR_Linux + 430)
-#define __NR_fsconfig	(__NR_Linux + 431)
-#define __NR_fsmount	(__NR_Linux + 432)
-#define __NR_fspick	(__NR_Linux + 433)
-#define __NR_pidfd_open	(__NR_Linux + 434)
-#define __NR_clone3	(__NR_Linux + 435)
-
-#ifdef __KERNEL__
-#define __NR_syscalls	436
-#endif
-
-#endif /* _UAPI_ASM_MIPS_UNISTD_O32_H */
diff --git a/original/uapi/asm-x86/asm/bootparam.h b/original/uapi/asm-x86/asm/bootparam.h
index c895df5..8669c6b 100644
--- a/original/uapi/asm-x86/asm/bootparam.h
+++ b/original/uapi/asm-x86/asm/bootparam.h
@@ -2,7 +2,7 @@
 #ifndef _ASM_X86_BOOTPARAM_H
 #define _ASM_X86_BOOTPARAM_H
 
-/* setup_data types */
+/* setup_data/setup_indirect types */
 #define SETUP_NONE			0
 #define SETUP_E820_EXT			1
 #define SETUP_DTB			2
@@ -11,6 +11,11 @@
 #define SETUP_APPLE_PROPERTIES		5
 #define SETUP_JAILHOUSE			6
 
+#define SETUP_INDIRECT			(1<<31)
+
+/* SETUP_INDIRECT | max(SETUP_*) */
+#define SETUP_TYPE_MAX			(SETUP_INDIRECT | SETUP_JAILHOUSE)
+
 /* ram_size flags */
 #define RAMDISK_IMAGE_START_MASK	0x07FF
 #define RAMDISK_PROMPT_FLAG		0x8000
@@ -49,6 +54,14 @@
 	__u8 data[0];
 };
 
+/* extensible setup indirect data node */
+struct setup_indirect {
+	__u32 type;
+	__u32 reserved;  /* Reserved, must be set to zero. */
+	__u64 len;
+	__u64 addr;
+};
+
 struct setup_header {
 	__u8	setup_sects;
 	__u16	root_flags;
@@ -88,6 +101,7 @@
 	__u64	pref_address;
 	__u32	init_size;
 	__u32	handover_offset;
+	__u32	kernel_info_offset;
 } __attribute__((packed));
 
 struct sys_desc_table {
@@ -139,15 +153,22 @@
  * setup data structure.
  */
 struct jailhouse_setup_data {
-	__u16	version;
-	__u16	compatible_version;
-	__u16	pm_timer_address;
-	__u16	num_cpus;
-	__u64	pci_mmconfig_base;
-	__u32	tsc_khz;
-	__u32	apic_khz;
-	__u8	standard_ioapic;
-	__u8	cpu_ids[255];
+	struct {
+		__u16	version;
+		__u16	compatible_version;
+	} __attribute__((packed)) hdr;
+	struct {
+		__u16	pm_timer_address;
+		__u16	num_cpus;
+		__u64	pci_mmconfig_base;
+		__u32	tsc_khz;
+		__u32	apic_khz;
+		__u8	standard_ioapic;
+		__u8	cpu_ids[255];
+	} __attribute__((packed)) v1;
+	struct {
+		__u32	flags;
+	} __attribute__((packed)) v2;
 } __attribute__((packed));
 
 /* The so-called "zeropage" */
diff --git a/original/uapi/asm-x86/asm/msgbuf.h b/original/uapi/asm-x86/asm/msgbuf.h
index 90ab9a7..b3d0664 100644
--- a/original/uapi/asm-x86/asm/msgbuf.h
+++ b/original/uapi/asm-x86/asm/msgbuf.h
@@ -5,6 +5,9 @@
 #if !defined(__x86_64__) || !defined(__ILP32__)
 #include <asm-generic/msgbuf.h>
 #else
+
+#include <asm/ipcbuf.h>
+
 /*
  * The msqid64_ds structure for x86 architecture with x32 ABI.
  *
@@ -15,9 +18,9 @@
 
 struct msqid64_ds {
 	struct ipc64_perm msg_perm;
-	__kernel_time_t msg_stime;	/* last msgsnd time */
-	__kernel_time_t msg_rtime;	/* last msgrcv time */
-	__kernel_time_t msg_ctime;	/* last change time */
+	__kernel_long_t msg_stime;	/* last msgsnd time */
+	__kernel_long_t msg_rtime;	/* last msgrcv time */
+	__kernel_long_t msg_ctime;	/* last change time */
 	__kernel_ulong_t msg_cbytes;	/* current number of bytes on queue */
 	__kernel_ulong_t msg_qnum;	/* number of messages in queue */
 	__kernel_ulong_t msg_qbytes;	/* max number of bytes on queue */
diff --git a/original/uapi/asm-x86/asm/sembuf.h b/original/uapi/asm-x86/asm/sembuf.h
index 89de6cd..71205b0 100644
--- a/original/uapi/asm-x86/asm/sembuf.h
+++ b/original/uapi/asm-x86/asm/sembuf.h
@@ -2,6 +2,8 @@
 #ifndef _ASM_X86_SEMBUF_H
 #define _ASM_X86_SEMBUF_H
 
+#include <asm/ipcbuf.h>
+
 /*
  * The semid64_ds structure for x86 architecture.
  * Note extra padding because this structure is passed back and forth
@@ -21,9 +23,9 @@
 	unsigned long	sem_ctime;	/* last change time */
 	unsigned long	sem_ctime_high;
 #else
-	__kernel_time_t	sem_otime;	/* last semop time */
+	__kernel_long_t sem_otime;	/* last semop time */
 	__kernel_ulong_t __unused1;
-	__kernel_time_t	sem_ctime;	/* last change time */
+	__kernel_long_t sem_ctime;	/* last change time */
 	__kernel_ulong_t __unused2;
 #endif
 	__kernel_ulong_t sem_nsems;	/* no. of semaphores in array */
diff --git a/original/uapi/asm-x86/asm/shmbuf.h b/original/uapi/asm-x86/asm/shmbuf.h
index 644421f..f0305dc 100644
--- a/original/uapi/asm-x86/asm/shmbuf.h
+++ b/original/uapi/asm-x86/asm/shmbuf.h
@@ -16,9 +16,9 @@
 struct shmid64_ds {
 	struct ipc64_perm	shm_perm;	/* operation perms */
 	size_t			shm_segsz;	/* size of segment (bytes) */
-	__kernel_time_t		shm_atime;	/* last attach time */
-	__kernel_time_t		shm_dtime;	/* last detach time */
-	__kernel_time_t		shm_ctime;	/* last change time */
+	__kernel_long_t		shm_atime;	/* last attach time */
+	__kernel_long_t		shm_dtime;	/* last detach time */
+	__kernel_long_t		shm_ctime;	/* last change time */
 	__kernel_pid_t		shm_cpid;	/* pid of creator */
 	__kernel_pid_t		shm_lpid;	/* pid of last operator */
 	__kernel_ulong_t	shm_nattch;	/* no. of current attaches */
diff --git a/original/uapi/drm/amdgpu_drm.h b/original/uapi/drm/amdgpu_drm.h
index 4fe35d6..bbdad86 100644
--- a/original/uapi/drm/amdgpu_drm.h
+++ b/original/uapi/drm/amdgpu_drm.h
@@ -500,6 +500,8 @@
 #define AMDGPU_VM_MTYPE_CC		(3 << 5)
 /* Use UC MTYPE instead of default MTYPE */
 #define AMDGPU_VM_MTYPE_UC		(4 << 5)
+/* Use RW MTYPE instead of default MTYPE */
+#define AMDGPU_VM_MTYPE_RW		(5 << 5)
 
 struct drm_amdgpu_gem_va {
 	/** GEM object handle */
diff --git a/original/uapi/drm/drm.h b/original/uapi/drm/drm.h
index 8a5b2f8..868bf79 100644
--- a/original/uapi/drm/drm.h
+++ b/original/uapi/drm/drm.h
@@ -778,11 +778,12 @@
 	__u32 pad;
 };
 
+#define DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED (1 << 0) /* last available point on timeline syncobj */
 struct drm_syncobj_timeline_array {
 	__u64 handles;
 	__u64 points;
 	__u32 count_handles;
-	__u32 pad;
+	__u32 flags;
 };
 
 
diff --git a/original/uapi/drm/drm_fourcc.h b/original/uapi/drm/drm_fourcc.h
index 32b4d1e..09b88b4 100644
--- a/original/uapi/drm/drm_fourcc.h
+++ b/original/uapi/drm/drm_fourcc.h
@@ -69,7 +69,7 @@
 #define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \
 				 ((__u32)(c) << 16) | ((__u32)(d) << 24))
 
-#define DRM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */
+#define DRM_FORMAT_BIG_ENDIAN (1U<<31) /* format is big endian instead of little endian */
 
 /* Reserve 0 for the invalid format specifier */
 #define DRM_FORMAT_INVALID	0
@@ -672,7 +672,21 @@
  * Further information on the use of AFBC modifiers can be found in
  * Documentation/gpu/afbc.rst
  */
-#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode)	fourcc_mod_code(ARM, __afbc_mode)
+
+/*
+ * The top 4 bits (out of the 56 bits alloted for specifying vendor specific
+ * modifiers) denote the category for modifiers. Currently we have only two
+ * categories of modifiers ie AFBC and MISC. We can have a maximum of sixteen
+ * different categories.
+ */
+#define DRM_FORMAT_MOD_ARM_CODE(__type, __val) \
+	fourcc_mod_code(ARM, ((__u64)(__type) << 52) | ((__val) & 0x000fffffffffffffULL))
+
+#define DRM_FORMAT_MOD_ARM_TYPE_AFBC 0x00
+#define DRM_FORMAT_MOD_ARM_TYPE_MISC 0x01
+
+#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) \
+	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFBC, __afbc_mode)
 
 /*
  * AFBC superblock size
@@ -767,6 +781,16 @@
 #define AFBC_FORMAT_MOD_BCH     (1ULL << 11)
 
 /*
+ * Arm 16x16 Block U-Interleaved modifier
+ *
+ * This is used by Arm Mali Utgard and Midgard GPUs. It divides the image
+ * into 16x16 pixel blocks. Blocks are stored linearly in order, but pixels
+ * in the block are reordered.
+ */
+#define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \
+	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
+
+/*
  * Allwinner tiled modifier
  *
  * This tiling mode is implemented by the VPU found on all Allwinner platforms,
diff --git a/original/uapi/drm/exynos_drm.h b/original/uapi/drm/exynos_drm.h
index 3e59b83..45c6582 100644
--- a/original/uapi/drm/exynos_drm.h
+++ b/original/uapi/drm/exynos_drm.h
@@ -68,7 +68,7 @@
 /**
  * A structure for user connection request of virtual display.
  *
- * @connection: indicate whether doing connetion or not by user.
+ * @connection: indicate whether doing connection or not by user.
  * @extensions: if this value is 1 then the vidi driver would need additional
  *	128bytes edid data.
  * @edid: the edid data pointer from user side.
diff --git a/original/uapi/drm/i915_drm.h b/original/uapi/drm/i915_drm.h
index 469dc51..5400d7e 100644
--- a/original/uapi/drm/i915_drm.h
+++ b/original/uapi/drm/i915_drm.h
@@ -611,6 +611,13 @@
  * See I915_EXEC_FENCE_OUT and I915_EXEC_FENCE_SUBMIT.
  */
 #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
+
+/*
+ * Revision of the i915-perf uAPI. The value returned helps determine what
+ * i915-perf features are available. See drm_i915_perf_property_id.
+ */
+#define I915_PARAM_PERF_REVISION	54
+
 /* Must be kept compact -- no holes and well documented */
 
 typedef struct drm_i915_getparam {
@@ -1565,6 +1572,21 @@
  *   i915_context_engines_bond (I915_CONTEXT_ENGINES_EXT_BOND)
  */
 #define I915_CONTEXT_PARAM_ENGINES	0xa
+
+/*
+ * I915_CONTEXT_PARAM_PERSISTENCE:
+ *
+ * Allow the context and active rendering to survive the process until
+ * completion. Persistence allows fire-and-forget clients to queue up a
+ * bunch of work, hand the output over to a display server and then quit.
+ * If the context is marked as not persistent, upon closing (either via
+ * an explicit DRM_I915_GEM_CONTEXT_DESTROY or implicitly from file closure
+ * or process termination), the context and any outstanding requests will be
+ * cancelled (and exported fences for cancelled requests marked as -EIO).
+ *
+ * By default, new contexts allow persistence.
+ */
+#define I915_CONTEXT_PARAM_PERSISTENCE	0xb
 /* Must be kept compact -- no holes and well documented */
 
 	__u64 value;
@@ -1844,23 +1866,31 @@
 	 * Open the stream for a specific context handle (as used with
 	 * execbuffer2). A stream opened for a specific context this way
 	 * won't typically require root privileges.
+	 *
+	 * This property is available in perf revision 1.
 	 */
 	DRM_I915_PERF_PROP_CTX_HANDLE = 1,
 
 	/**
 	 * A value of 1 requests the inclusion of raw OA unit reports as
 	 * part of stream samples.
+	 *
+	 * This property is available in perf revision 1.
 	 */
 	DRM_I915_PERF_PROP_SAMPLE_OA,
 
 	/**
 	 * The value specifies which set of OA unit metrics should be
 	 * be configured, defining the contents of any OA unit reports.
+	 *
+	 * This property is available in perf revision 1.
 	 */
 	DRM_I915_PERF_PROP_OA_METRICS_SET,
 
 	/**
 	 * The value specifies the size and layout of OA unit reports.
+	 *
+	 * This property is available in perf revision 1.
 	 */
 	DRM_I915_PERF_PROP_OA_FORMAT,
 
@@ -1870,9 +1900,22 @@
 	 * from this exponent as follows:
 	 *
 	 *   80ns * 2^(period_exponent + 1)
+	 *
+	 * This property is available in perf revision 1.
 	 */
 	DRM_I915_PERF_PROP_OA_EXPONENT,
 
+	/**
+	 * Specifying this property is only valid when specify a context to
+	 * filter with DRM_I915_PERF_PROP_CTX_HANDLE. Specifying this property
+	 * will hold preemption of the particular context we want to gather
+	 * performance data about. The execbuf2 submissions must include a
+	 * drm_i915_gem_execbuffer_ext_perf parameter for this to apply.
+	 *
+	 * This property is available in perf revision 3.
+	 */
+	DRM_I915_PERF_PROP_HOLD_PREEMPTION,
+
 	DRM_I915_PERF_PROP_MAX /* non-ABI */
 };
 
@@ -1901,6 +1944,8 @@
  * to close and re-open a stream with the same configuration.
  *
  * It's undefined whether any pending data for the stream will be lost.
+ *
+ * This ioctl is available in perf revision 1.
  */
 #define I915_PERF_IOCTL_ENABLE	_IO('i', 0x0)
 
@@ -1908,10 +1953,25 @@
  * Disable data capture for a stream.
  *
  * It is an error to try and read a stream that is disabled.
+ *
+ * This ioctl is available in perf revision 1.
  */
 #define I915_PERF_IOCTL_DISABLE	_IO('i', 0x1)
 
 /**
+ * Change metrics_set captured by a stream.
+ *
+ * If the stream is bound to a specific context, the configuration change
+ * will performed inline with that context such that it takes effect before
+ * the next execbuf submission.
+ *
+ * Returns the previously bound metrics set id, or a negative error code.
+ *
+ * This ioctl is available in perf revision 2.
+ */
+#define I915_PERF_IOCTL_CONFIG	_IO('i', 0x2)
+
+/**
  * Common to all i915 perf records
  */
 struct drm_i915_perf_record_header {
@@ -1984,6 +2044,7 @@
 	__u64 query_id;
 #define DRM_I915_QUERY_TOPOLOGY_INFO    1
 #define DRM_I915_QUERY_ENGINE_INFO	2
+#define DRM_I915_QUERY_PERF_CONFIG      3
 /* Must be kept compact -- no holes and well documented */
 
 	/*
@@ -1995,9 +2056,18 @@
 	__s32 length;
 
 	/*
-	 * Unused for now. Must be cleared to zero.
+	 * When query_id == DRM_I915_QUERY_TOPOLOGY_INFO, must be 0.
+	 *
+	 * When query_id == DRM_I915_QUERY_PERF_CONFIG, must be one of the
+	 * following :
+	 *         - DRM_I915_QUERY_PERF_CONFIG_LIST
+	 *         - DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID
+	 *         - DRM_I915_QUERY_PERF_CONFIG_FOR_UUID
 	 */
 	__u32 flags;
+#define DRM_I915_QUERY_PERF_CONFIG_LIST          1
+#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID 2
+#define DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID   3
 
 	/*
 	 * Data will be written at the location pointed by data_ptr when the
@@ -2033,8 +2103,10 @@
  *           (data[X / 8] >> (X % 8)) & 1
  *
  * - the subslice mask for each slice with one bit per subslice telling
- *   whether a subslice is available. The availability of subslice Y in slice
- *   X can be queried with the following formula :
+ *   whether a subslice is available. Gen12 has dual-subslices, which are
+ *   similar to two gen11 subslices. For gen12, this array represents dual-
+ *   subslices. The availability of subslice Y in slice X can be queried
+ *   with the following formula :
  *
  *           (data[subslice_offset +
  *                 X * subslice_stride +
@@ -2123,6 +2195,56 @@
 	struct drm_i915_engine_info engines[];
 };
 
+/*
+ * Data written by the kernel with query DRM_I915_QUERY_PERF_CONFIG.
+ */
+struct drm_i915_query_perf_config {
+	union {
+		/*
+		 * When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_LIST, i915 sets
+		 * this fields to the number of configurations available.
+		 */
+		__u64 n_configs;
+
+		/*
+		 * When query_id == DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_ID,
+		 * i915 will use the value in this field as configuration
+		 * identifier to decide what data to write into config_ptr.
+		 */
+		__u64 config;
+
+		/*
+		 * When query_id == DRM_I915_QUERY_PERF_CONFIG_DATA_FOR_UUID,
+		 * i915 will use the value in this field as configuration
+		 * identifier to decide what data to write into config_ptr.
+		 *
+		 * String formatted like "%08x-%04x-%04x-%04x-%012x"
+		 */
+		char uuid[36];
+	};
+
+	/*
+	 * Unused for now. Must be cleared to zero.
+	 */
+	__u32 flags;
+
+	/*
+	 * When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_LIST, i915 will
+	 * write an array of __u64 of configuration identifiers.
+	 *
+	 * When query_item.flags == DRM_I915_QUERY_PERF_CONFIG_DATA, i915 will
+	 * write a struct drm_i915_perf_oa_config. If the following fields of
+	 * drm_i915_perf_oa_config are set not set to 0, i915 will write into
+	 * the associated pointers the values of submitted when the
+	 * configuration was created :
+	 *
+	 *         - n_mux_regs
+	 *         - n_boolean_regs
+	 *         - n_flex_regs
+	 */
+	__u8 data[];
+};
+
 #if defined(__cplusplus)
 }
 #endif
diff --git a/original/uapi/drm/omap_drm.h b/original/uapi/drm/omap_drm.h
index 1fccffe..5a142fa 100644
--- a/original/uapi/drm/omap_drm.h
+++ b/original/uapi/drm/omap_drm.h
@@ -38,20 +38,20 @@
 	__u64 value;			/* in (set_param), out (get_param) */
 };
 
-#define OMAP_BO_SCANOUT		0x00000001	/* scanout capable (phys contiguous) */
-#define OMAP_BO_CACHE_MASK	0x00000006	/* cache type mask, see cache modes */
-#define OMAP_BO_TILED_MASK	0x00000f00	/* tiled mapping mask, see tiled modes */
+/* Scanout buffer, consumable by DSS */
+#define OMAP_BO_SCANOUT		0x00000001
 
-/* cache modes */
-#define OMAP_BO_CACHED		0x00000000	/* default */
-#define OMAP_BO_WC		0x00000002	/* write-combine */
-#define OMAP_BO_UNCACHED	0x00000004	/* strongly-ordered (uncached) */
+/* Buffer CPU caching mode: cached, write-combining or uncached. */
+#define OMAP_BO_CACHED		0x00000000
+#define OMAP_BO_WC		0x00000002
+#define OMAP_BO_UNCACHED	0x00000004
+#define OMAP_BO_CACHE_MASK	0x00000006
 
-/* tiled modes */
+/* Use TILER for the buffer. The TILER container unit can be 8, 16 or 32 bits. */
 #define OMAP_BO_TILED_8		0x00000100
 #define OMAP_BO_TILED_16	0x00000200
 #define OMAP_BO_TILED_32	0x00000300
-#define OMAP_BO_TILED		(OMAP_BO_TILED_8 | OMAP_BO_TILED_16 | OMAP_BO_TILED_32)
+#define OMAP_BO_TILED_MASK	0x00000f00
 
 union omap_gem_size {
 	__u32 bytes;		/* (for non-tiled formats) */
diff --git a/original/uapi/drm/v3d_drm.h b/original/uapi/drm/v3d_drm.h
index 58fbe48..1ce746e 100644
--- a/original/uapi/drm/v3d_drm.h
+++ b/original/uapi/drm/v3d_drm.h
@@ -48,6 +48,8 @@
 #define DRM_IOCTL_V3D_SUBMIT_TFU          DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
 #define DRM_IOCTL_V3D_SUBMIT_CSD          DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
 
+#define DRM_V3D_SUBMIT_CL_FLUSH_CACHE             0x01
+
 /**
  * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D
  * engine.
@@ -61,7 +63,7 @@
  * flushed by the time the render done IRQ happens, which is the
  * trigger for out_sync.  Any dirtying of cachelines by the job (only
  * possible using TMU writes) must be flushed by the caller using the
- * CL's cache flush commands.
+ * DRM_V3D_SUBMIT_CL_FLUSH_CACHE_FLAG flag.
  */
 struct drm_v3d_submit_cl {
 	/* Pointer to the binner command list.
@@ -124,8 +126,7 @@
 	/* Number of BO handles passed in (size is that times 4). */
 	__u32 bo_handle_count;
 
-	/* Pad, must be zero-filled. */
-	__u32 pad;
+	__u32 flags;
 };
 
 /**
@@ -193,6 +194,7 @@
 	DRM_V3D_PARAM_V3D_CORE0_IDENT2,
 	DRM_V3D_PARAM_SUPPORTS_TFU,
 	DRM_V3D_PARAM_SUPPORTS_CSD,
+	DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
 };
 
 struct drm_v3d_get_param {
diff --git a/original/uapi/drm/vmwgfx_drm.h b/original/uapi/drm/vmwgfx_drm.h
index 399f583..02cab33 100644
--- a/original/uapi/drm/vmwgfx_drm.h
+++ b/original/uapi/drm/vmwgfx_drm.h
@@ -891,11 +891,13 @@
  *                                      surface.
  * @drm_vmw_surface_flag_create_buffer: Create a backup buffer if none is
  *                                      given.
+ * @drm_vmw_surface_flag_coherent:      Back surface with coherent memory.
  */
 enum drm_vmw_surface_flags {
 	drm_vmw_surface_flag_shareable = (1 << 0),
 	drm_vmw_surface_flag_scanout = (1 << 1),
-	drm_vmw_surface_flag_create_buffer = (1 << 2)
+	drm_vmw_surface_flag_create_buffer = (1 << 2),
+	drm_vmw_surface_flag_coherent = (1 << 3),
 };
 
 /**
diff --git a/original/uapi/linux/audit.h b/original/uapi/linux/audit.h
index c89c649..3ad9355 100644
--- a/original/uapi/linux/audit.h
+++ b/original/uapi/linux/audit.h
@@ -143,6 +143,7 @@
 #define AUDIT_ANOM_PROMISCUOUS      1700 /* Device changed promiscuous mode */
 #define AUDIT_ANOM_ABEND            1701 /* Process ended abnormally */
 #define AUDIT_ANOM_LINK		    1702 /* Suspicious use of file links */
+#define AUDIT_ANOM_CREAT	    1703 /* Suspicious file creation */
 #define AUDIT_INTEGRITY_DATA	    1800 /* Data integrity verification */
 #define AUDIT_INTEGRITY_METADATA    1801 /* Metadata integrity verification */
 #define AUDIT_INTEGRITY_STATUS	    1802 /* Integrity enable status */
diff --git a/original/uapi/linux/blkzoned.h b/original/uapi/linux/blkzoned.h
index 498eec8..0cdef67 100644
--- a/original/uapi/linux/blkzoned.h
+++ b/original/uapi/linux/blkzoned.h
@@ -120,9 +120,11 @@
 };
 
 /**
- * struct blk_zone_range - BLKRESETZONE ioctl request
- * @sector: starting sector of the first zone to issue reset write pointer
- * @nr_sectors: Total number of sectors of 1 or more zones to reset
+ * struct blk_zone_range - BLKRESETZONE/BLKOPENZONE/
+ *                         BLKCLOSEZONE/BLKFINISHZONE ioctl
+ *                         requests
+ * @sector: Starting sector of the first zone to operate on.
+ * @nr_sectors: Total number of sectors of all zones to operate on.
  */
 struct blk_zone_range {
 	__u64		sector;
@@ -139,10 +141,19 @@
  *                sector range. The sector range must be zone aligned.
  * @BLKGETZONESZ: Get the device zone size in number of 512 B sectors.
  * @BLKGETNRZONES: Get the total number of zones of the device.
+ * @BLKOPENZONE: Open the zones in the specified sector range.
+ *               The 512 B sector range must be zone aligned.
+ * @BLKCLOSEZONE: Close the zones in the specified sector range.
+ *                The 512 B sector range must be zone aligned.
+ * @BLKFINISHZONE: Mark the zones as full in the specified sector range.
+ *                 The 512 B sector range must be zone aligned.
  */
 #define BLKREPORTZONE	_IOWR(0x12, 130, struct blk_zone_report)
 #define BLKRESETZONE	_IOW(0x12, 131, struct blk_zone_range)
 #define BLKGETZONESZ	_IOR(0x12, 132, __u32)
 #define BLKGETNRZONES	_IOR(0x12, 133, __u32)
+#define BLKOPENZONE	_IOW(0x12, 134, struct blk_zone_range)
+#define BLKCLOSEZONE	_IOW(0x12, 135, struct blk_zone_range)
+#define BLKFINISHZONE	_IOW(0x12, 136, struct blk_zone_range)
 
 #endif /* _UAPI_BLKZONED_H */
diff --git a/original/uapi/linux/bpf.h b/original/uapi/linux/bpf.h
index 77c6be9..dbbcf0b 100644
--- a/original/uapi/linux/bpf.h
+++ b/original/uapi/linux/bpf.h
@@ -173,6 +173,7 @@
 	BPF_PROG_TYPE_CGROUP_SYSCTL,
 	BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE,
 	BPF_PROG_TYPE_CGROUP_SOCKOPT,
+	BPF_PROG_TYPE_TRACING,
 };
 
 enum bpf_attach_type {
@@ -199,6 +200,9 @@
 	BPF_CGROUP_UDP6_RECVMSG,
 	BPF_CGROUP_GETSOCKOPT,
 	BPF_CGROUP_SETSOCKOPT,
+	BPF_TRACE_RAW_TP,
+	BPF_TRACE_FENTRY,
+	BPF_TRACE_FEXIT,
 	__MAX_BPF_ATTACH_TYPE
 };
 
@@ -344,6 +348,9 @@
 /* Clone map from listener for newly accepted socket */
 #define BPF_F_CLONE		(1U << 9)
 
+/* Enable memory-mapping BPF map */
+#define BPF_F_MMAPABLE		(1U << 10)
+
 /* flags for BPF_PROG_QUERY */
 #define BPF_F_QUERY_EFFECTIVE	(1U << 0)
 
@@ -420,6 +427,8 @@
 		__u32		line_info_rec_size;	/* userspace bpf_line_info size */
 		__aligned_u64	line_info;	/* line info */
 		__u32		line_info_cnt;	/* number of bpf_line_info records */
+		__u32		attach_btf_id;	/* in-kernel BTF type id to attach to */
+		__u32		attach_prog_fd; /* 0 to attach to vmlinux */
 	};
 
 	struct { /* anonymous struct used by BPF_OBJ_* commands */
@@ -560,10 +569,13 @@
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
- * int bpf_probe_read(void *dst, u32 size, const void *src)
+ * int bpf_probe_read(void *dst, u32 size, const void *unsafe_ptr)
  * 	Description
  * 		For tracing programs, safely attempt to read *size* bytes from
- * 		address *src* and store the data in *dst*.
+ * 		kernel space address *unsafe_ptr* and store the data in *dst*.
+ *
+ * 		Generally, use bpf_probe_read_user() or bpf_probe_read_kernel()
+ * 		instead.
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
@@ -794,7 +806,7 @@
  * 		A 64-bit integer containing the current GID and UID, and
  * 		created as such: *current_gid* **<< 32 \|** *current_uid*.
  *
- * int bpf_get_current_comm(char *buf, u32 size_of_buf)
+ * int bpf_get_current_comm(void *buf, u32 size_of_buf)
  * 	Description
  * 		Copy the **comm** attribute of the current task into *buf* of
  * 		*size_of_buf*. The **comm** attribute contains the name of
@@ -1023,7 +1035,7 @@
  * 		The realm of the route for the packet associated to *skb*, or 0
  * 		if none was found.
  *
- * int bpf_perf_event_output(struct pt_regs *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * int bpf_perf_event_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
  * 	Description
  * 		Write raw *data* blob into a special BPF perf event held by
  * 		*map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
@@ -1068,7 +1080,7 @@
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
- * int bpf_skb_load_bytes(const struct sk_buff *skb, u32 offset, void *to, u32 len)
+ * int bpf_skb_load_bytes(const void *skb, u32 offset, void *to, u32 len)
  * 	Description
  * 		This helper was provided as an easy way to load data from a
  * 		packet. It can be used to load *len* bytes from *offset* from
@@ -1085,7 +1097,7 @@
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
- * int bpf_get_stackid(struct pt_regs *ctx, struct bpf_map *map, u64 flags)
+ * int bpf_get_stackid(void *ctx, struct bpf_map *map, u64 flags)
  * 	Description
  * 		Walk a user or a kernel stack and return its id. To achieve
  * 		this, the helper needs *ctx*, which is a pointer to the context
@@ -1154,7 +1166,7 @@
  * 		The checksum result, or a negative error code in case of
  * 		failure.
  *
- * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)
+ * int bpf_skb_get_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
  * 	Description
  * 		Retrieve tunnel options metadata for the packet associated to
  * 		*skb*, and store the raw tunnel option data to the buffer *opt*
@@ -1172,7 +1184,7 @@
  * 	Return
  * 		The size of the option data retrieved.
  *
- * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, u8 *opt, u32 size)
+ * int bpf_skb_set_tunnel_opt(struct sk_buff *skb, void *opt, u32 size)
  * 	Description
  * 		Set tunnel options metadata for the packet associated to *skb*
  * 		to the option data contained in the raw buffer *opt* of *size*.
@@ -1425,45 +1437,14 @@
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
- * int bpf_probe_read_str(void *dst, int size, const void *unsafe_ptr)
+ * int bpf_probe_read_str(void *dst, u32 size, const void *unsafe_ptr)
  * 	Description
- * 		Copy a NUL terminated string from an unsafe address
- * 		*unsafe_ptr* to *dst*. The *size* should include the
- * 		terminating NUL byte. In case the string length is smaller than
- * 		*size*, the target is not padded with further NUL bytes. If the
- * 		string length is larger than *size*, just *size*-1 bytes are
- * 		copied and the last byte is set to NUL.
+ * 		Copy a NUL terminated string from an unsafe kernel address
+ * 		*unsafe_ptr* to *dst*. See bpf_probe_read_kernel_str() for
+ * 		more details.
  *
- * 		On success, the length of the copied string is returned. This
- * 		makes this helper useful in tracing programs for reading
- * 		strings, and more importantly to get its length at runtime. See
- * 		the following snippet:
- *
- * 		::
- *
- * 			SEC("kprobe/sys_open")
- * 			void bpf_sys_open(struct pt_regs *ctx)
- * 			{
- * 			        char buf[PATHLEN]; // PATHLEN is defined to 256
- * 			        int res = bpf_probe_read_str(buf, sizeof(buf),
- * 				                             ctx->di);
- *
- * 				// Consume buf, for example push it to
- * 				// userspace via bpf_perf_event_output(); we
- * 				// can use res (the string length) as event
- * 				// size, after checking its boundaries.
- * 			}
- *
- * 		In comparison, using **bpf_probe_read()** helper here instead
- * 		to read the string would require to estimate the length at
- * 		compile time, and would often result in copying more memory
- * 		than necessary.
- *
- * 		Another useful use case is when parsing individual process
- * 		arguments or individual environment variables navigating
- * 		*current*\ **->mm->arg_start** and *current*\
- * 		**->mm->env_start**: using this helper and the return value,
- * 		one can quickly iterate at the right offset of the memory area.
+ * 		Generally, use bpf_probe_read_user_str() or bpf_probe_read_kernel_str()
+ * 		instead.
  * 	Return
  * 		On success, the strictly positive length of the string,
  * 		including the trailing NUL character. On error, a negative
@@ -1511,7 +1492,7 @@
  * 	Return
  * 		0
  *
- * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)
+ * int bpf_setsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
  * 	Description
  * 		Emulate a call to **setsockopt()** on the socket associated to
  * 		*bpf_socket*, which must be a full socket. The *level* at
@@ -1595,7 +1576,7 @@
  * 	Return
  * 		**XDP_REDIRECT** on success, or **XDP_ABORTED** on error.
  *
- * int bpf_sk_redirect_map(struct bpf_map *map, u32 key, u64 flags)
+ * int bpf_sk_redirect_map(struct sk_buff *skb, struct bpf_map *map, u32 key, u64 flags)
  * 	Description
  * 		Redirect the packet to the socket referenced by *map* (of type
  * 		**BPF_MAP_TYPE_SOCKMAP**) at index *key*. Both ingress and
@@ -1715,7 +1696,7 @@
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
- * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, char *optval, int optlen)
+ * int bpf_getsockopt(struct bpf_sock_ops *bpf_socket, int level, int optname, void *optval, int optlen)
  * 	Description
  * 		Emulate a call to **getsockopt()** on the socket associated to
  * 		*bpf_socket*, which must be a full socket. The *level* at
@@ -1947,7 +1928,7 @@
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
- * int bpf_get_stack(struct pt_regs *regs, void *buf, u32 size, u64 flags)
+ * int bpf_get_stack(void *ctx, void *buf, u32 size, u64 flags)
  * 	Description
  * 		Return a user or a kernel stack in bpf program provided buffer.
  * 		To achieve this, the helper needs *ctx*, which is a pointer
@@ -1980,7 +1961,7 @@
  * 		A non-negative value equal to or less than *size* on success,
  * 		or a negative error in case of failure.
  *
- * int bpf_skb_load_bytes_relative(const struct sk_buff *skb, u32 offset, void *to, u32 len, u32 start_header)
+ * int bpf_skb_load_bytes_relative(const void *skb, u32 offset, void *to, u32 len, u32 start_header)
  * 	Description
  * 		This helper is similar to **bpf_skb_load_bytes**\ () in that
  * 		it provides an easy way to load *len* bytes from *offset*
@@ -2033,7 +2014,7 @@
  *		* > 0 one of **BPF_FIB_LKUP_RET_** codes explaining why the
  *		  packet is not forwarded or needs assist from full stack
  *
- * int bpf_sock_hash_update(struct bpf_sock_ops_kern *skops, struct bpf_map *map, void *key, u64 flags)
+ * int bpf_sock_hash_update(struct bpf_sock_ops *skops, struct bpf_map *map, void *key, u64 flags)
  *	Description
  *		Add an entry to, or update a sockhash *map* referencing sockets.
  *		The *skops* is used as a new value for the entry associated to
@@ -2392,7 +2373,7 @@
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
- * int bpf_msg_push_data(struct sk_buff *skb, u32 start, u32 len, u64 flags)
+ * int bpf_msg_push_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
  *	Description
  *		For socket policies, insert *len* bytes into *msg* at offset
  *		*start*.
@@ -2408,9 +2389,9 @@
  *	Return
  *		0 on success, or a negative error in case of failure.
  *
- * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 pop, u64 flags)
+ * int bpf_msg_pop_data(struct sk_msg_buff *msg, u32 start, u32 len, u64 flags)
  *	Description
- *		Will remove *pop* bytes from a *msg* starting at byte *start*.
+ *		Will remove *len* bytes from a *msg* starting at byte *start*.
  *		This may result in **ENOMEM** errors under certain situations if
  *		an allocation and copy are required due to a full ring buffer.
  *		However, the helper will try to avoid doing the allocation
@@ -2505,7 +2486,7 @@
  *		A **struct bpf_tcp_sock** pointer on success, or **NULL** in
  *		case of failure.
  *
- * int bpf_skb_ecn_set_ce(struct sk_buf *skb)
+ * int bpf_skb_ecn_set_ce(struct sk_buff *skb)
  *	Description
  *		Set ECN (Explicit Congestion Notification) field of IP header
  *		to **CE** (Congestion Encountered) if current value is **ECT**
@@ -2750,6 +2731,96 @@
  *		**-EOPNOTSUPP** kernel configuration does not enable SYN cookies
  *
  *		**-EPROTONOSUPPORT** IP packet version is not 4 or 6
+ *
+ * int bpf_skb_output(void *ctx, struct bpf_map *map, u64 flags, void *data, u64 size)
+ * 	Description
+ * 		Write raw *data* blob into a special BPF perf event held by
+ * 		*map* of type **BPF_MAP_TYPE_PERF_EVENT_ARRAY**. This perf
+ * 		event must have the following attributes: **PERF_SAMPLE_RAW**
+ * 		as **sample_type**, **PERF_TYPE_SOFTWARE** as **type**, and
+ * 		**PERF_COUNT_SW_BPF_OUTPUT** as **config**.
+ *
+ * 		The *flags* are used to indicate the index in *map* for which
+ * 		the value must be put, masked with **BPF_F_INDEX_MASK**.
+ * 		Alternatively, *flags* can be set to **BPF_F_CURRENT_CPU**
+ * 		to indicate that the index of the current CPU core should be
+ * 		used.
+ *
+ * 		The value to write, of *size*, is passed through eBPF stack and
+ * 		pointed by *data*.
+ *
+ * 		*ctx* is a pointer to in-kernel struct sk_buff.
+ *
+ * 		This helper is similar to **bpf_perf_event_output**\ () but
+ * 		restricted to raw_tracepoint bpf programs.
+ * 	Return
+ * 		0 on success, or a negative error in case of failure.
+ *
+ * int bpf_probe_read_user(void *dst, u32 size, const void *unsafe_ptr)
+ * 	Description
+ * 		Safely attempt to read *size* bytes from user space address
+ * 		*unsafe_ptr* and store the data in *dst*.
+ * 	Return
+ * 		0 on success, or a negative error in case of failure.
+ *
+ * int bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
+ * 	Description
+ * 		Safely attempt to read *size* bytes from kernel space address
+ * 		*unsafe_ptr* and store the data in *dst*.
+ * 	Return
+ * 		0 on success, or a negative error in case of failure.
+ *
+ * int bpf_probe_read_user_str(void *dst, u32 size, const void *unsafe_ptr)
+ * 	Description
+ * 		Copy a NUL terminated string from an unsafe user address
+ * 		*unsafe_ptr* to *dst*. The *size* should include the
+ * 		terminating NUL byte. In case the string length is smaller than
+ * 		*size*, the target is not padded with further NUL bytes. If the
+ * 		string length is larger than *size*, just *size*-1 bytes are
+ * 		copied and the last byte is set to NUL.
+ *
+ * 		On success, the length of the copied string is returned. This
+ * 		makes this helper useful in tracing programs for reading
+ * 		strings, and more importantly to get its length at runtime. See
+ * 		the following snippet:
+ *
+ * 		::
+ *
+ * 			SEC("kprobe/sys_open")
+ * 			void bpf_sys_open(struct pt_regs *ctx)
+ * 			{
+ * 			        char buf[PATHLEN]; // PATHLEN is defined to 256
+ * 			        int res = bpf_probe_read_user_str(buf, sizeof(buf),
+ * 				                                  ctx->di);
+ *
+ * 				// Consume buf, for example push it to
+ * 				// userspace via bpf_perf_event_output(); we
+ * 				// can use res (the string length) as event
+ * 				// size, after checking its boundaries.
+ * 			}
+ *
+ * 		In comparison, using **bpf_probe_read_user()** helper here
+ * 		instead to read the string would require to estimate the length
+ * 		at compile time, and would often result in copying more memory
+ * 		than necessary.
+ *
+ * 		Another useful use case is when parsing individual process
+ * 		arguments or individual environment variables navigating
+ * 		*current*\ **->mm->arg_start** and *current*\
+ * 		**->mm->env_start**: using this helper and the return value,
+ * 		one can quickly iterate at the right offset of the memory area.
+ * 	Return
+ * 		On success, the strictly positive length of the string,
+ * 		including the trailing NUL character. On error, a negative
+ * 		value.
+ *
+ * int bpf_probe_read_kernel_str(void *dst, u32 size, const void *unsafe_ptr)
+ * 	Description
+ * 		Copy a NUL terminated string from an unsafe kernel address *unsafe_ptr*
+ * 		to *dst*. Same semantics as with bpf_probe_read_user_str() apply.
+ * 	Return
+ * 		On success, the strictly positive length of the string,	including
+ * 		the trailing NUL character. On error, a negative value.
  */
 #define __BPF_FUNC_MAPPER(FN)		\
 	FN(unspec),			\
@@ -2862,7 +2933,12 @@
 	FN(sk_storage_get),		\
 	FN(sk_storage_delete),		\
 	FN(send_signal),		\
-	FN(tcp_gen_syncookie),
+	FN(tcp_gen_syncookie),		\
+	FN(skb_output),			\
+	FN(probe_read_user),		\
+	FN(probe_read_kernel),		\
+	FN(probe_read_user_str),	\
+	FN(probe_read_kernel_str),
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
  * function eBPF program intends to call
diff --git a/original/uapi/linux/btrfs.h b/original/uapi/linux/btrfs.h
index 3ee0678..7a8bc8b 100644
--- a/original/uapi/linux/btrfs.h
+++ b/original/uapi/linux/btrfs.h
@@ -270,6 +270,7 @@
 #define BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA	(1ULL << 8)
 #define BTRFS_FEATURE_INCOMPAT_NO_HOLES		(1ULL << 9)
 #define BTRFS_FEATURE_INCOMPAT_METADATA_UUID	(1ULL << 10)
+#define BTRFS_FEATURE_INCOMPAT_RAID1C34		(1ULL << 11)
 
 struct btrfs_ioctl_feature_flags {
 	__u64 compat_flags;
@@ -831,7 +832,9 @@
 	BTRFS_ERROR_DEV_TGT_REPLACE,
 	BTRFS_ERROR_DEV_MISSING_NOT_FOUND,
 	BTRFS_ERROR_DEV_ONLY_WRITABLE,
-	BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS
+	BTRFS_ERROR_DEV_EXCL_RUN_IN_PROGRESS,
+	BTRFS_ERROR_DEV_RAID1C3_MIN_NOT_MET,
+	BTRFS_ERROR_DEV_RAID1C4_MIN_NOT_MET,
 };
 
 #define BTRFS_IOC_SNAP_CREATE _IOW(BTRFS_IOCTL_MAGIC, 1, \
diff --git a/original/uapi/linux/btrfs_tree.h b/original/uapi/linux/btrfs_tree.h
index b65c7ee..8e322e2 100644
--- a/original/uapi/linux/btrfs_tree.h
+++ b/original/uapi/linux/btrfs_tree.h
@@ -302,6 +302,9 @@
 /* csum types */
 enum btrfs_csum_type {
 	BTRFS_CSUM_TYPE_CRC32	= 0,
+	BTRFS_CSUM_TYPE_XXHASH	= 1,
+	BTRFS_CSUM_TYPE_SHA256	= 2,
+	BTRFS_CSUM_TYPE_BLAKE2	= 3,
 };
 
 /*
@@ -737,10 +740,12 @@
 	__le64 unused[4];
 } __attribute__ ((__packed__));
 
-#define BTRFS_FILE_EXTENT_INLINE 0
-#define BTRFS_FILE_EXTENT_REG 1
-#define BTRFS_FILE_EXTENT_PREALLOC 2
-#define BTRFS_FILE_EXTENT_TYPES	2
+enum {
+	BTRFS_FILE_EXTENT_INLINE   = 0,
+	BTRFS_FILE_EXTENT_REG      = 1,
+	BTRFS_FILE_EXTENT_PREALLOC = 2,
+	BTRFS_NR_FILE_EXTENT_TYPES = 3,
+};
 
 struct btrfs_file_extent_item {
 	/*
@@ -836,6 +841,8 @@
 #define BTRFS_BLOCK_GROUP_RAID10	(1ULL << 6)
 #define BTRFS_BLOCK_GROUP_RAID5         (1ULL << 7)
 #define BTRFS_BLOCK_GROUP_RAID6         (1ULL << 8)
+#define BTRFS_BLOCK_GROUP_RAID1C3       (1ULL << 9)
+#define BTRFS_BLOCK_GROUP_RAID1C4       (1ULL << 10)
 #define BTRFS_BLOCK_GROUP_RESERVED	(BTRFS_AVAIL_ALLOC_BIT_SINGLE | \
 					 BTRFS_SPACE_INFO_GLOBAL_RSV)
 
@@ -847,6 +854,8 @@
 	BTRFS_RAID_SINGLE,
 	BTRFS_RAID_RAID5,
 	BTRFS_RAID_RAID6,
+	BTRFS_RAID_RAID1C3,
+	BTRFS_RAID_RAID1C4,
 	BTRFS_NR_RAID_TYPES
 };
 
@@ -856,6 +865,8 @@
 
 #define BTRFS_BLOCK_GROUP_PROFILE_MASK	(BTRFS_BLOCK_GROUP_RAID0 |   \
 					 BTRFS_BLOCK_GROUP_RAID1 |   \
+					 BTRFS_BLOCK_GROUP_RAID1C3 | \
+					 BTRFS_BLOCK_GROUP_RAID1C4 | \
 					 BTRFS_BLOCK_GROUP_RAID5 |   \
 					 BTRFS_BLOCK_GROUP_RAID6 |   \
 					 BTRFS_BLOCK_GROUP_DUP |     \
@@ -863,7 +874,9 @@
 #define BTRFS_BLOCK_GROUP_RAID56_MASK	(BTRFS_BLOCK_GROUP_RAID5 |   \
 					 BTRFS_BLOCK_GROUP_RAID6)
 
-#define BTRFS_BLOCK_GROUP_RAID1_MASK	(BTRFS_BLOCK_GROUP_RAID1)
+#define BTRFS_BLOCK_GROUP_RAID1_MASK	(BTRFS_BLOCK_GROUP_RAID1 |   \
+					 BTRFS_BLOCK_GROUP_RAID1C3 | \
+					 BTRFS_BLOCK_GROUP_RAID1C4)
 
 /*
  * We need a bit for restriper to be able to tell when chunks of type
diff --git a/original/uapi/linux/cec-funcs.h b/original/uapi/linux/cec-funcs.h
index 8997d50..3759002 100644
--- a/original/uapi/linux/cec-funcs.h
+++ b/original/uapi/linux/cec-funcs.h
@@ -923,7 +923,8 @@
 	msg->len = 3;
 	msg->msg[1] = CEC_MSG_GIVE_DECK_STATUS;
 	msg->msg[2] = status_req;
-	msg->reply = reply ? CEC_MSG_DECK_STATUS : 0;
+	msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
+				CEC_MSG_DECK_STATUS : 0;
 }
 
 static inline void cec_ops_give_deck_status(const struct cec_msg *msg,
@@ -1027,7 +1028,8 @@
 	msg->len = 3;
 	msg->msg[1] = CEC_MSG_GIVE_TUNER_DEVICE_STATUS;
 	msg->msg[2] = status_req;
-	msg->reply = reply ? CEC_MSG_TUNER_DEVICE_STATUS : 0;
+	msg->reply = (reply && status_req != CEC_OP_STATUS_REQ_OFF) ?
+				CEC_MSG_TUNER_DEVICE_STATUS : 0;
 }
 
 static inline void cec_ops_give_tuner_device_status(const struct cec_msg *msg,
@@ -1302,17 +1304,17 @@
 	if (!ui_cmd->has_opt_arg)
 		return;
 	switch (ui_cmd->ui_cmd) {
-	case 0x56:
-	case 0x57:
-	case 0x60:
-	case 0x68:
-	case 0x69:
-	case 0x6a:
+	case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
+	case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
+	case CEC_OP_UI_CMD_PLAY_FUNCTION:
+	case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
+	case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
+	case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
 		/* The optional operand is one byte for all these ui commands */
 		msg->len++;
 		msg->msg[3] = ui_cmd->play_mode;
 		break;
-	case 0x67:
+	case CEC_OP_UI_CMD_TUNE_FUNCTION:
 		msg->len += 4;
 		msg->msg[3] = (ui_cmd->channel_identifier.channel_number_fmt << 2) |
 			      (ui_cmd->channel_identifier.major >> 8);
@@ -1331,17 +1333,17 @@
 	if (msg->len == 3)
 		return;
 	switch (ui_cmd->ui_cmd) {
-	case 0x56:
-	case 0x57:
-	case 0x60:
-	case 0x68:
-	case 0x69:
-	case 0x6a:
+	case CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE:
+	case CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION:
+	case CEC_OP_UI_CMD_PLAY_FUNCTION:
+	case CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION:
+	case CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION:
+	case CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION:
 		/* The optional operand is one byte for all these ui commands */
 		ui_cmd->play_mode = msg->msg[3];
 		ui_cmd->has_opt_arg = 1;
 		break;
-	case 0x67:
+	case CEC_OP_UI_CMD_TUNE_FUNCTION:
 		if (msg->len < 7)
 			break;
 		ui_cmd->has_opt_arg = 1;
diff --git a/original/uapi/linux/cec.h b/original/uapi/linux/cec.h
index 5704fa0..7d1a06c 100644
--- a/original/uapi/linux/cec.h
+++ b/original/uapi/linux/cec.h
@@ -317,6 +317,8 @@
 #define CEC_CAP_NEEDS_HPD	(1 << 6)
 /* Hardware can monitor CEC pin transitions */
 #define CEC_CAP_MONITOR_PIN	(1 << 7)
+/* CEC_ADAP_G_CONNECTOR_INFO is available */
+#define CEC_CAP_CONNECTOR_INFO	(1 << 8)
 
 /**
  * struct cec_caps - CEC capabilities structure.
@@ -375,6 +377,34 @@
 /* CDC-Only device: supports only CDC messages */
 #define CEC_LOG_ADDRS_FL_CDC_ONLY		(1 << 2)
 
+/**
+ * struct cec_drm_connector_info - tells which drm connector is
+ * associated with the CEC adapter.
+ * @card_no: drm card number
+ * @connector_id: drm connector ID
+ */
+struct cec_drm_connector_info {
+	__u32 card_no;
+	__u32 connector_id;
+};
+
+#define CEC_CONNECTOR_TYPE_NO_CONNECTOR	0
+#define CEC_CONNECTOR_TYPE_DRM		1
+
+/**
+ * struct cec_connector_info - tells if and which connector is
+ * associated with the CEC adapter.
+ * @type: connector type (if any)
+ * @drm: drm connector info
+ */
+struct cec_connector_info {
+	__u32 type;
+	union {
+		struct cec_drm_connector_info drm;
+		__u32 raw[16];
+	};
+};
+
 /* Events */
 
 /* Event that occurs when the adapter state changes */
@@ -398,10 +428,17 @@
  * struct cec_event_state_change - used when the CEC adapter changes state.
  * @phys_addr: the current physical address
  * @log_addr_mask: the current logical address mask
+ * @have_conn_info: if non-zero, then HDMI connector information is available.
+ *	This field is only valid if CEC_CAP_CONNECTOR_INFO is set. If that
+ *	capability is set and @have_conn_info is zero, then that indicates
+ *	that the HDMI connector device is not instantiated, either because
+ *	the HDMI driver is still configuring the device or because the HDMI
+ *	device was unbound.
  */
 struct cec_event_state_change {
 	__u16 phys_addr;
 	__u16 log_addr_mask;
+	__u16 have_conn_info;
 };
 
 /**
@@ -476,6 +513,9 @@
 #define CEC_G_MODE		_IOR('a',  8, __u32)
 #define CEC_S_MODE		_IOW('a',  9, __u32)
 
+/* Get the connector info */
+#define CEC_ADAP_G_CONNECTOR_INFO _IOR('a',  10, struct cec_connector_info)
+
 /*
  * The remainder of this header defines all CEC messages and operands.
  * The format matters since it the cec-ctl utility parses it to generate
@@ -768,8 +808,8 @@
 #define CEC_MSG_SELECT_DIGITAL_SERVICE			0x93
 #define CEC_MSG_TUNER_DEVICE_STATUS			0x07
 /* Recording Flag Operand (rec_flag) */
-#define CEC_OP_REC_FLAG_USED				0
-#define CEC_OP_REC_FLAG_NOT_USED			1
+#define CEC_OP_REC_FLAG_NOT_USED			0
+#define CEC_OP_REC_FLAG_USED				1
 /* Tuner Display Info Operand (tuner_display_info) */
 #define CEC_OP_TUNER_DISPLAY_INFO_DIGITAL		0
 #define CEC_OP_TUNER_DISPLAY_INFO_NONE			1
@@ -820,6 +860,95 @@
 #define CEC_OP_MENU_STATE_DEACTIVATED			0x01
 
 #define CEC_MSG_USER_CONTROL_PRESSED			0x44
+/* UI Command Operand (ui_cmd) */
+#define CEC_OP_UI_CMD_SELECT				0x00
+#define CEC_OP_UI_CMD_UP				0x01
+#define CEC_OP_UI_CMD_DOWN				0x02
+#define CEC_OP_UI_CMD_LEFT				0x03
+#define CEC_OP_UI_CMD_RIGHT				0x04
+#define CEC_OP_UI_CMD_RIGHT_UP				0x05
+#define CEC_OP_UI_CMD_RIGHT_DOWN			0x06
+#define CEC_OP_UI_CMD_LEFT_UP				0x07
+#define CEC_OP_UI_CMD_LEFT_DOWN				0x08
+#define CEC_OP_UI_CMD_DEVICE_ROOT_MENU			0x09
+#define CEC_OP_UI_CMD_DEVICE_SETUP_MENU			0x0a
+#define CEC_OP_UI_CMD_CONTENTS_MENU			0x0b
+#define CEC_OP_UI_CMD_FAVORITE_MENU			0x0c
+#define CEC_OP_UI_CMD_BACK				0x0d
+#define CEC_OP_UI_CMD_MEDIA_TOP_MENU			0x10
+#define CEC_OP_UI_CMD_MEDIA_CONTEXT_SENSITIVE_MENU	0x11
+#define CEC_OP_UI_CMD_NUMBER_ENTRY_MODE			0x1d
+#define CEC_OP_UI_CMD_NUMBER_11				0x1e
+#define CEC_OP_UI_CMD_NUMBER_12				0x1f
+#define CEC_OP_UI_CMD_NUMBER_0_OR_NUMBER_10		0x20
+#define CEC_OP_UI_CMD_NUMBER_1				0x21
+#define CEC_OP_UI_CMD_NUMBER_2				0x22
+#define CEC_OP_UI_CMD_NUMBER_3				0x23
+#define CEC_OP_UI_CMD_NUMBER_4				0x24
+#define CEC_OP_UI_CMD_NUMBER_5				0x25
+#define CEC_OP_UI_CMD_NUMBER_6				0x26
+#define CEC_OP_UI_CMD_NUMBER_7				0x27
+#define CEC_OP_UI_CMD_NUMBER_8				0x28
+#define CEC_OP_UI_CMD_NUMBER_9				0x29
+#define CEC_OP_UI_CMD_DOT				0x2a
+#define CEC_OP_UI_CMD_ENTER				0x2b
+#define CEC_OP_UI_CMD_CLEAR				0x2c
+#define CEC_OP_UI_CMD_NEXT_FAVORITE			0x2f
+#define CEC_OP_UI_CMD_CHANNEL_UP			0x30
+#define CEC_OP_UI_CMD_CHANNEL_DOWN			0x31
+#define CEC_OP_UI_CMD_PREVIOUS_CHANNEL			0x32
+#define CEC_OP_UI_CMD_SOUND_SELECT			0x33
+#define CEC_OP_UI_CMD_INPUT_SELECT			0x34
+#define CEC_OP_UI_CMD_DISPLAY_INFORMATION		0x35
+#define CEC_OP_UI_CMD_HELP				0x36
+#define CEC_OP_UI_CMD_PAGE_UP				0x37
+#define CEC_OP_UI_CMD_PAGE_DOWN				0x38
+#define CEC_OP_UI_CMD_POWER				0x40
+#define CEC_OP_UI_CMD_VOLUME_UP				0x41
+#define CEC_OP_UI_CMD_VOLUME_DOWN			0x42
+#define CEC_OP_UI_CMD_MUTE				0x43
+#define CEC_OP_UI_CMD_PLAY				0x44
+#define CEC_OP_UI_CMD_STOP				0x45
+#define CEC_OP_UI_CMD_PAUSE				0x46
+#define CEC_OP_UI_CMD_RECORD				0x47
+#define CEC_OP_UI_CMD_REWIND				0x48
+#define CEC_OP_UI_CMD_FAST_FORWARD			0x49
+#define CEC_OP_UI_CMD_EJECT				0x4a
+#define CEC_OP_UI_CMD_SKIP_FORWARD			0x4b
+#define CEC_OP_UI_CMD_SKIP_BACKWARD			0x4c
+#define CEC_OP_UI_CMD_STOP_RECORD			0x4d
+#define CEC_OP_UI_CMD_PAUSE_RECORD			0x4e
+#define CEC_OP_UI_CMD_ANGLE				0x50
+#define CEC_OP_UI_CMD_SUB_PICTURE			0x51
+#define CEC_OP_UI_CMD_VIDEO_ON_DEMAND			0x52
+#define CEC_OP_UI_CMD_ELECTRONIC_PROGRAM_GUIDE		0x53
+#define CEC_OP_UI_CMD_TIMER_PROGRAMMING			0x54
+#define CEC_OP_UI_CMD_INITIAL_CONFIGURATION		0x55
+#define CEC_OP_UI_CMD_SELECT_BROADCAST_TYPE		0x56
+#define CEC_OP_UI_CMD_SELECT_SOUND_PRESENTATION		0x57
+#define CEC_OP_UI_CMD_AUDIO_DESCRIPTION			0x58
+#define CEC_OP_UI_CMD_INTERNET				0x59
+#define CEC_OP_UI_CMD_3D_MODE				0x5a
+#define CEC_OP_UI_CMD_PLAY_FUNCTION			0x60
+#define CEC_OP_UI_CMD_PAUSE_PLAY_FUNCTION		0x61
+#define CEC_OP_UI_CMD_RECORD_FUNCTION			0x62
+#define CEC_OP_UI_CMD_PAUSE_RECORD_FUNCTION		0x63
+#define CEC_OP_UI_CMD_STOP_FUNCTION			0x64
+#define CEC_OP_UI_CMD_MUTE_FUNCTION			0x65
+#define CEC_OP_UI_CMD_RESTORE_VOLUME_FUNCTION		0x66
+#define CEC_OP_UI_CMD_TUNE_FUNCTION			0x67
+#define CEC_OP_UI_CMD_SELECT_MEDIA_FUNCTION		0x68
+#define CEC_OP_UI_CMD_SELECT_AV_INPUT_FUNCTION		0x69
+#define CEC_OP_UI_CMD_SELECT_AUDIO_INPUT_FUNCTION	0x6a
+#define CEC_OP_UI_CMD_POWER_TOGGLE_FUNCTION		0x6b
+#define CEC_OP_UI_CMD_POWER_OFF_FUNCTION		0x6c
+#define CEC_OP_UI_CMD_POWER_ON_FUNCTION			0x6d
+#define CEC_OP_UI_CMD_F1_BLUE				0x71
+#define CEC_OP_UI_CMD_F2_RED				0x72
+#define CEC_OP_UI_CMD_F3_GREEN				0x73
+#define CEC_OP_UI_CMD_F4_YELLOW				0x74
+#define CEC_OP_UI_CMD_F5				0x75
+#define CEC_OP_UI_CMD_DATA				0x76
 /* UI Broadcast Type Operand (ui_bcast_type) */
 #define CEC_OP_UI_BCAST_TYPE_TOGGLE_ALL			0x00
 #define CEC_OP_UI_BCAST_TYPE_TOGGLE_DIG_ANA		0x01
diff --git a/original/uapi/linux/chio.h b/original/uapi/linux/chio.h
index 689fc93..e1cad4c 100644
--- a/original/uapi/linux/chio.h
+++ b/original/uapi/linux/chio.h
@@ -3,6 +3,9 @@
  * ioctl interface for the scsi media changer driver
  */
 
+#ifndef _UAPI_LINUX_CHIO_H
+#define _UAPI_LINUX_CHIO_H
+
 /* changer element types */
 #define CHET_MT   0	/* media transport element (robot) */
 #define CHET_ST   1	/* storage element (media slots) */
@@ -160,10 +163,4 @@
 #define CHIOSVOLTAG    _IOW('c',18,struct changer_set_voltag)
 #define CHIOGVPARAMS   _IOR('c',19,struct changer_vendor_params)
 
-/* ---------------------------------------------------------------------- */
-
-/*
- * Local variables:
- * c-basic-offset: 8
- * End:
- */
+#endif /* _UAPI_LINUX_CHIO_H */
diff --git a/original/uapi/linux/cyclades.h b/original/uapi/linux/cyclades.h
index 8279bc3..fc0add2 100644
--- a/original/uapi/linux/cyclades.h
+++ b/original/uapi/linux/cyclades.h
@@ -83,9 +83,9 @@
  * open)
  */
 struct cyclades_idle_stats {
-    __kernel_time_t in_use;	/* Time device has been in use (secs) */
-    __kernel_time_t recv_idle;	/* Time since last char received (secs) */
-    __kernel_time_t xmit_idle;	/* Time since last char transmitted (secs) */
+    __kernel_old_time_t in_use;	/* Time device has been in use (secs) */
+    __kernel_old_time_t recv_idle; /* Time since last char received (secs) */
+    __kernel_old_time_t xmit_idle; /* Time since last char transmitted (secs) */
     unsigned long  recv_bytes;	/* Bytes received */
     unsigned long  xmit_bytes;	/* Bytes transmitted */
     unsigned long  overruns;	/* Input overruns */
diff --git a/original/uapi/linux/dcbnl.h b/original/uapi/linux/dcbnl.h
index 69df19a..a791a94 100644
--- a/original/uapi/linux/dcbnl.h
+++ b/original/uapi/linux/dcbnl.h
@@ -286,7 +286,7 @@
  * @DCB_CMD_GNUMTCS: get the number of traffic classes currently supported
  * @DCB_CMD_SNUMTCS: set the number of traffic classes
  * @DCB_CMD_GBCN: set backward congestion notification configuration
- * @DCB_CMD_SBCN: get backward congestion notification configration.
+ * @DCB_CMD_SBCN: get backward congestion notification configuration.
  * @DCB_CMD_GAPP: get application protocol configuration
  * @DCB_CMD_SAPP: set application protocol configuration
  * @DCB_CMD_IEEE_SET: set IEEE 802.1Qaz configuration
diff --git a/original/uapi/linux/devlink.h b/original/uapi/linux/devlink.h
index a8a2174..ae37fd4 100644
--- a/original/uapi/linux/devlink.h
+++ b/original/uapi/linux/devlink.h
@@ -422,6 +422,10 @@
 	DEVLINK_ATTR_RELOAD_FAILED,			/* u8 0 or 1 */
 
 	DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS,	/* u64 */
+
+	DEVLINK_ATTR_NETNS_FD,			/* u32 */
+	DEVLINK_ATTR_NETNS_PID,			/* u32 */
+	DEVLINK_ATTR_NETNS_ID,			/* u32 */
 	/* add new attributes above here, update the policy in devlink.c */
 
 	__DEVLINK_ATTR_MAX,
diff --git a/original/uapi/linux/elfcore.h b/original/uapi/linux/elfcore.h
index 0b2c9e1..baf0356 100644
--- a/original/uapi/linux/elfcore.h
+++ b/original/uapi/linux/elfcore.h
@@ -53,10 +53,10 @@
 	pid_t	pr_ppid;
 	pid_t	pr_pgrp;
 	pid_t	pr_sid;
-	struct timeval pr_utime;	/* User time */
-	struct timeval pr_stime;	/* System time */
-	struct timeval pr_cutime;	/* Cumulative user time */
-	struct timeval pr_cstime;	/* Cumulative system time */
+	struct __kernel_old_timeval pr_utime;	/* User time */
+	struct __kernel_old_timeval pr_stime;	/* System time */
+	struct __kernel_old_timeval pr_cutime;	/* Cumulative user time */
+	struct __kernel_old_timeval pr_cstime;	/* Cumulative system time */
 #if 0
 	long	pr_instr;		/* Current instruction */
 #endif
diff --git a/original/uapi/linux/errqueue.h b/original/uapi/linux/errqueue.h
index 28491da..0cca196 100644
--- a/original/uapi/linux/errqueue.h
+++ b/original/uapi/linux/errqueue.h
@@ -37,9 +37,16 @@
  *	The timestamping interfaces SO_TIMESTAMPING, MSG_TSTAMP_*
  *	communicate network timestamps by passing this struct in a cmsg with
  *	recvmsg(). See Documentation/networking/timestamping.txt for details.
+ *	User space sees a timespec definition that matches either
+ *	__kernel_timespec or __kernel_old_timespec, in the kernel we
+ *	require two structure definitions to provide both.
  */
 struct scm_timestamping {
+#ifdef __KERNEL__
+	struct __kernel_old_timespec ts[3];
+#else
 	struct timespec ts[3];
+#endif
 };
 
 struct scm_timestamping64 {
diff --git a/original/uapi/linux/ethtool.h b/original/uapi/linux/ethtool.h
index 8938b76..d459179 100644
--- a/original/uapi/linux/ethtool.h
+++ b/original/uapi/linux/ethtool.h
@@ -1507,6 +1507,11 @@
 	ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT	 = 66,
 	ETHTOOL_LINK_MODE_100baseT1_Full_BIT		 = 67,
 	ETHTOOL_LINK_MODE_1000baseT1_Full_BIT		 = 68,
+	ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT	 = 69,
+	ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT	 = 70,
+	ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 71,
+	ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT	 = 72,
+	ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT	 = 73,
 
 	/* must be last entry */
 	__ETHTOOL_LINK_MODE_MASK_NBITS
@@ -1618,6 +1623,7 @@
 #define SPEED_56000		56000
 #define SPEED_100000		100000
 #define SPEED_200000		200000
+#define SPEED_400000		400000
 
 #define SPEED_UNKNOWN		-1
 
diff --git a/original/uapi/linux/fcntl.h b/original/uapi/linux/fcntl.h
index 1d33835..1f97b33 100644
--- a/original/uapi/linux/fcntl.h
+++ b/original/uapi/linux/fcntl.h
@@ -58,7 +58,7 @@
  * Valid hint values for F_{GET,SET}_RW_HINT. 0 is "not set", or can be
  * used to clear any hints previously set.
  */
-#define RWF_WRITE_LIFE_NOT_SET	0
+#define RWH_WRITE_LIFE_NOT_SET	0
 #define RWH_WRITE_LIFE_NONE	1
 #define RWH_WRITE_LIFE_SHORT	2
 #define RWH_WRITE_LIFE_MEDIUM	3
@@ -66,6 +66,13 @@
 #define RWH_WRITE_LIFE_EXTREME	5
 
 /*
+ * The originally introduced spelling is remained from the first
+ * versions of the patch set that introduced the feature, see commit
+ * v4.13-rc1~212^2~51.
+ */
+#define RWF_WRITE_LIFE_NOT_SET	RWH_WRITE_LIFE_NOT_SET
+
+/*
  * Types of directory notifications that may be requested.
  */
 #define DN_ACCESS	0x00000001	/* File accessed */
diff --git a/original/uapi/linux/fscrypt.h b/original/uapi/linux/fscrypt.h
index 1beb174..7d150d8 100644
--- a/original/uapi/linux/fscrypt.h
+++ b/original/uapi/linux/fscrypt.h
@@ -113,7 +113,10 @@
 struct fscrypt_add_key_arg {
 	struct fscrypt_key_specifier key_spec;
 	__u32 raw_size;
-	__u32 __reserved[9];
+	__u32 __reserved[8];
+	/* N.B.: "temporary" flag, not reserved upstream */
+#define __FSCRYPT_ADD_KEY_FLAG_HW_WRAPPED		0x00000001
+	__u32 __flags;
 	__u8 raw[];
 };
 
diff --git a/original/uapi/linux/gen_stats.h b/original/uapi/linux/gen_stats.h
index 065408e..852f234 100644
--- a/original/uapi/linux/gen_stats.h
+++ b/original/uapi/linux/gen_stats.h
@@ -13,6 +13,7 @@
 	TCA_STATS_RATE_EST64,
 	TCA_STATS_PAD,
 	TCA_STATS_BASIC_HW,
+	TCA_STATS_PKT64,
 	__TCA_STATS_MAX,
 };
 #define TCA_STATS_MAX (__TCA_STATS_MAX - 1)
@@ -26,10 +27,6 @@
 	__u64	bytes;
 	__u32	packets;
 };
-struct gnet_stats_basic_packed {
-	__u64	bytes;
-	__u32	packets;
-} __attribute__ ((packed));
 
 /**
  * struct gnet_stats_rate_est - rate estimator
diff --git a/original/uapi/linux/gpio.h b/original/uapi/linux/gpio.h
index 4ebfe0a..799cf82 100644
--- a/original/uapi/linux/gpio.h
+++ b/original/uapi/linux/gpio.h
@@ -33,6 +33,9 @@
 #define GPIOLINE_FLAG_ACTIVE_LOW	(1UL << 2)
 #define GPIOLINE_FLAG_OPEN_DRAIN	(1UL << 3)
 #define GPIOLINE_FLAG_OPEN_SOURCE	(1UL << 4)
+#define GPIOLINE_FLAG_BIAS_PULL_UP	(1UL << 5)
+#define GPIOLINE_FLAG_BIAS_PULL_DOWN	(1UL << 6)
+#define GPIOLINE_FLAG_BIAS_DISABLE	(1UL << 7)
 
 /**
  * struct gpioline_info - Information about a certain GPIO line
@@ -62,6 +65,9 @@
 #define GPIOHANDLE_REQUEST_ACTIVE_LOW	(1UL << 2)
 #define GPIOHANDLE_REQUEST_OPEN_DRAIN	(1UL << 3)
 #define GPIOHANDLE_REQUEST_OPEN_SOURCE	(1UL << 4)
+#define GPIOHANDLE_REQUEST_BIAS_PULL_UP	(1UL << 5)
+#define GPIOHANDLE_REQUEST_BIAS_PULL_DOWN	(1UL << 6)
+#define GPIOHANDLE_REQUEST_BIAS_DISABLE	(1UL << 7)
 
 /**
  * struct gpiohandle_request - Information about a GPIO handle request
@@ -95,6 +101,24 @@
 };
 
 /**
+ * struct gpiohandle_config - Configuration for a GPIO handle request
+ * @flags: updated flags for the requested GPIO lines, such as
+ * GPIOHANDLE_REQUEST_OUTPUT, GPIOHANDLE_REQUEST_ACTIVE_LOW etc, OR:ed
+ * together
+ * @default_values: if the GPIOHANDLE_REQUEST_OUTPUT is set in flags,
+ * this specifies the default output value, should be 0 (low) or
+ * 1 (high), anything else than 0 or 1 will be interpreted as 1 (high)
+ * @padding: reserved for future use and should be zero filled
+ */
+struct gpiohandle_config {
+	__u32 flags;
+	__u8 default_values[GPIOHANDLES_MAX];
+	__u32 padding[4]; /* padding for future use */
+};
+
+#define GPIOHANDLE_SET_CONFIG_IOCTL _IOWR(0xB4, 0x0a, struct gpiohandle_config)
+
+/**
  * struct gpiohandle_data - Information of values on a GPIO handle
  * @values: when getting the state of lines this contains the current
  * state of a line, when setting the state of lines these should contain
diff --git a/original/uapi/linux/if.h b/original/uapi/linux/if.h
index 7fea0fd..4bf3334 100644
--- a/original/uapi/linux/if.h
+++ b/original/uapi/linux/if.h
@@ -33,6 +33,7 @@
 #define	IFNAMSIZ	16
 #endif /* __UAPI_DEF_IF_IFNAMSIZ */
 #define	IFALIASZ	256
+#define	ALTIFNAMSIZ	128
 #include <linux/hdlc/ioctl.h>
 
 /* For glibc compatibility. An empty enum does not compile. */
diff --git a/original/uapi/linux/if_link.h b/original/uapi/linux/if_link.h
index 4a8c02c..8aec876 100644
--- a/original/uapi/linux/if_link.h
+++ b/original/uapi/linux/if_link.h
@@ -167,6 +167,8 @@
 	IFLA_NEW_IFINDEX,
 	IFLA_MIN_MTU,
 	IFLA_MAX_MTU,
+	IFLA_PROP_LIST,
+	IFLA_ALT_IFNAME, /* Alternative ifname */
 	__IFLA_MAX
 };
 
diff --git a/original/uapi/linux/input-event-codes.h b/original/uapi/linux/input-event-codes.h
index 35125b6..69a1b64 100644
--- a/original/uapi/linux/input-event-codes.h
+++ b/original/uapi/linux/input-event-codes.h
@@ -649,6 +649,83 @@
  */
 #define KEY_DATA			0x277
 #define KEY_ONSCREEN_KEYBOARD		0x278
+/* Electronic privacy screen control */
+#define KEY_PRIVACY_SCREEN_TOGGLE	0x279
+
+/*
+ * Some keyboards have keys which do not have a defined meaning, these keys
+ * are intended to be programmed / bound to macros by the user. For most
+ * keyboards with these macro-keys the key-sequence to inject, or action to
+ * take, is all handled by software on the host side. So from the kernel's
+ * point of view these are just normal keys.
+ *
+ * The KEY_MACRO# codes below are intended for such keys, which may be labeled
+ * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys
+ * where the marking on the key does indicate a defined meaning / purpose.
+ *
+ * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing
+ * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO
+ * define MUST be added.
+ */
+#define KEY_MACRO1			0x290
+#define KEY_MACRO2			0x291
+#define KEY_MACRO3			0x292
+#define KEY_MACRO4			0x293
+#define KEY_MACRO5			0x294
+#define KEY_MACRO6			0x295
+#define KEY_MACRO7			0x296
+#define KEY_MACRO8			0x297
+#define KEY_MACRO9			0x298
+#define KEY_MACRO10			0x299
+#define KEY_MACRO11			0x29a
+#define KEY_MACRO12			0x29b
+#define KEY_MACRO13			0x29c
+#define KEY_MACRO14			0x29d
+#define KEY_MACRO15			0x29e
+#define KEY_MACRO16			0x29f
+#define KEY_MACRO17			0x2a0
+#define KEY_MACRO18			0x2a1
+#define KEY_MACRO19			0x2a2
+#define KEY_MACRO20			0x2a3
+#define KEY_MACRO21			0x2a4
+#define KEY_MACRO22			0x2a5
+#define KEY_MACRO23			0x2a6
+#define KEY_MACRO24			0x2a7
+#define KEY_MACRO25			0x2a8
+#define KEY_MACRO26			0x2a9
+#define KEY_MACRO27			0x2aa
+#define KEY_MACRO28			0x2ab
+#define KEY_MACRO29			0x2ac
+#define KEY_MACRO30			0x2ad
+
+/*
+ * Some keyboards with the macro-keys described above have some extra keys
+ * for controlling the host-side software responsible for the macro handling:
+ * -A macro recording start/stop key. Note that not all keyboards which emit
+ *  KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if
+ *  KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START
+ *  should be interpreted as a recording start/stop toggle;
+ * -Keys for switching between different macro (pre)sets, either a key for
+ *  cycling through the configured presets or keys to directly select a preset.
+ */
+#define KEY_MACRO_RECORD_START		0x2b0
+#define KEY_MACRO_RECORD_STOP		0x2b1
+#define KEY_MACRO_PRESET_CYCLE		0x2b2
+#define KEY_MACRO_PRESET1		0x2b3
+#define KEY_MACRO_PRESET2		0x2b4
+#define KEY_MACRO_PRESET3		0x2b5
+
+/*
+ * Some keyboards have a buildin LCD panel where the contents are controlled
+ * by the host. Often these have a number of keys directly below the LCD
+ * intended for controlling a menu shown on the LCD. These keys often don't
+ * have any labeling so we just name them KEY_KBD_LCD_MENU#
+ */
+#define KEY_KBD_LCD_MENU1		0x2b8
+#define KEY_KBD_LCD_MENU2		0x2b9
+#define KEY_KBD_LCD_MENU3		0x2ba
+#define KEY_KBD_LCD_MENU4		0x2bb
+#define KEY_KBD_LCD_MENU5		0x2bc
 
 #define BTN_TRIGGER_HAPPY		0x2c0
 #define BTN_TRIGGER_HAPPY1		0x2c0
diff --git a/original/uapi/linux/input.h b/original/uapi/linux/input.h
index f056b2a..9a61c28 100644
--- a/original/uapi/linux/input.h
+++ b/original/uapi/linux/input.h
@@ -34,6 +34,7 @@
 	__kernel_ulong_t __sec;
 #if defined(__sparc__) && defined(__arch64__)
 	unsigned int __usec;
+	unsigned int __pad;
 #else
 	__kernel_ulong_t __usec;
 #endif
diff --git a/original/uapi/linux/io_uring.h b/original/uapi/linux/io_uring.h
index ea57526..55cfcb7 100644
--- a/original/uapi/linux/io_uring.h
+++ b/original/uapi/linux/io_uring.h
@@ -19,7 +19,10 @@
 	__u8	flags;		/* IOSQE_ flags */
 	__u16	ioprio;		/* ioprio for the request */
 	__s32	fd;		/* file descriptor to do IO on */
-	__u64	off;		/* offset into file */
+	union {
+		__u64	off;	/* offset into file */
+		__u64	addr2;
+	};
 	__u64	addr;		/* pointer to buffer or iovecs */
 	__u32	len;		/* buffer size or number of iovecs */
 	union {
@@ -29,6 +32,8 @@
 		__u32		sync_range_flags;
 		__u32		msg_flags;
 		__u32		timeout_flags;
+		__u32		accept_flags;
+		__u32		cancel_flags;
 	};
 	__u64	user_data;	/* data to be passed back at completion time */
 	union {
@@ -43,6 +48,7 @@
 #define IOSQE_FIXED_FILE	(1U << 0)	/* use fixed fileset */
 #define IOSQE_IO_DRAIN		(1U << 1)	/* issue after inflight IO */
 #define IOSQE_IO_LINK		(1U << 2)	/* links next sqe */
+#define IOSQE_IO_HARDLINK	(1U << 3)	/* like LINK, but stronger */
 
 /*
  * io_uring_setup() flags
@@ -50,19 +56,30 @@
 #define IORING_SETUP_IOPOLL	(1U << 0)	/* io_context is polled */
 #define IORING_SETUP_SQPOLL	(1U << 1)	/* SQ poll thread */
 #define IORING_SETUP_SQ_AFF	(1U << 2)	/* sq_thread_cpu is valid */
+#define IORING_SETUP_CQSIZE	(1U << 3)	/* app defines CQ size */
 
-#define IORING_OP_NOP		0
-#define IORING_OP_READV		1
-#define IORING_OP_WRITEV	2
-#define IORING_OP_FSYNC		3
-#define IORING_OP_READ_FIXED	4
-#define IORING_OP_WRITE_FIXED	5
-#define IORING_OP_POLL_ADD	6
-#define IORING_OP_POLL_REMOVE	7
-#define IORING_OP_SYNC_FILE_RANGE	8
-#define IORING_OP_SENDMSG	9
-#define IORING_OP_RECVMSG	10
-#define IORING_OP_TIMEOUT	11
+enum {
+	IORING_OP_NOP,
+	IORING_OP_READV,
+	IORING_OP_WRITEV,
+	IORING_OP_FSYNC,
+	IORING_OP_READ_FIXED,
+	IORING_OP_WRITE_FIXED,
+	IORING_OP_POLL_ADD,
+	IORING_OP_POLL_REMOVE,
+	IORING_OP_SYNC_FILE_RANGE,
+	IORING_OP_SENDMSG,
+	IORING_OP_RECVMSG,
+	IORING_OP_TIMEOUT,
+	IORING_OP_TIMEOUT_REMOVE,
+	IORING_OP_ACCEPT,
+	IORING_OP_ASYNC_CANCEL,
+	IORING_OP_LINK_TIMEOUT,
+	IORING_OP_CONNECT,
+
+	/* this goes last, obviously */
+	IORING_OP_LAST,
+};
 
 /*
  * sqe->fsync_flags
@@ -70,6 +87,11 @@
 #define IORING_FSYNC_DATASYNC	(1U << 0)
 
 /*
+ * sqe->timeout_flags
+ */
+#define IORING_TIMEOUT_ABS	(1U << 0)
+
+/*
  * IO completion data structure (Completion Queue Entry)
  */
 struct io_uring_cqe {
@@ -140,6 +162,8 @@
  * io_uring_params->features flags
  */
 #define IORING_FEAT_SINGLE_MMAP		(1U << 0)
+#define IORING_FEAT_NODROP		(1U << 1)
+#define IORING_FEAT_SUBMIT_STABLE	(1U << 2)
 
 /*
  * io_uring_register(2) opcodes and arguments
@@ -150,5 +174,12 @@
 #define IORING_UNREGISTER_FILES		3
 #define IORING_REGISTER_EVENTFD		4
 #define IORING_UNREGISTER_EVENTFD	5
+#define IORING_REGISTER_FILES_UPDATE	6
+
+struct io_uring_files_update {
+	__u32 offset;
+	__u32 resv;
+	__aligned_u64 /* __s32 * */ fds;
+};
 
 #endif
diff --git a/original/uapi/linux/iommu.h b/original/uapi/linux/iommu.h
index fc00c5d..4ad3496 100644
--- a/original/uapi/linux/iommu.h
+++ b/original/uapi/linux/iommu.h
@@ -152,4 +152,173 @@
 	__u32	code;
 };
 
+/* defines the granularity of the invalidation */
+enum iommu_inv_granularity {
+	IOMMU_INV_GRANU_DOMAIN,	/* domain-selective invalidation */
+	IOMMU_INV_GRANU_PASID,	/* PASID-selective invalidation */
+	IOMMU_INV_GRANU_ADDR,	/* page-selective invalidation */
+	IOMMU_INV_GRANU_NR,	/* number of invalidation granularities */
+};
+
+/**
+ * struct iommu_inv_addr_info - Address Selective Invalidation Structure
+ *
+ * @flags: indicates the granularity of the address-selective invalidation
+ * - If the PASID bit is set, the @pasid field is populated and the invalidation
+ *   relates to cache entries tagged with this PASID and matching the address
+ *   range.
+ * - If ARCHID bit is set, @archid is populated and the invalidation relates
+ *   to cache entries tagged with this architecture specific ID and matching
+ *   the address range.
+ * - Both PASID and ARCHID can be set as they may tag different caches.
+ * - If neither PASID or ARCHID is set, global addr invalidation applies.
+ * - The LEAF flag indicates whether only the leaf PTE caching needs to be
+ *   invalidated and other paging structure caches can be preserved.
+ * @pasid: process address space ID
+ * @archid: architecture-specific ID
+ * @addr: first stage/level input address
+ * @granule_size: page/block size of the mapping in bytes
+ * @nb_granules: number of contiguous granules to be invalidated
+ */
+struct iommu_inv_addr_info {
+#define IOMMU_INV_ADDR_FLAGS_PASID	(1 << 0)
+#define IOMMU_INV_ADDR_FLAGS_ARCHID	(1 << 1)
+#define IOMMU_INV_ADDR_FLAGS_LEAF	(1 << 2)
+	__u32	flags;
+	__u32	archid;
+	__u64	pasid;
+	__u64	addr;
+	__u64	granule_size;
+	__u64	nb_granules;
+};
+
+/**
+ * struct iommu_inv_pasid_info - PASID Selective Invalidation Structure
+ *
+ * @flags: indicates the granularity of the PASID-selective invalidation
+ * - If the PASID bit is set, the @pasid field is populated and the invalidation
+ *   relates to cache entries tagged with this PASID and matching the address
+ *   range.
+ * - If the ARCHID bit is set, the @archid is populated and the invalidation
+ *   relates to cache entries tagged with this architecture specific ID and
+ *   matching the address range.
+ * - Both PASID and ARCHID can be set as they may tag different caches.
+ * - At least one of PASID or ARCHID must be set.
+ * @pasid: process address space ID
+ * @archid: architecture-specific ID
+ */
+struct iommu_inv_pasid_info {
+#define IOMMU_INV_PASID_FLAGS_PASID	(1 << 0)
+#define IOMMU_INV_PASID_FLAGS_ARCHID	(1 << 1)
+	__u32	flags;
+	__u32	archid;
+	__u64	pasid;
+};
+
+/**
+ * struct iommu_cache_invalidate_info - First level/stage invalidation
+ *     information
+ * @version: API version of this structure
+ * @cache: bitfield that allows to select which caches to invalidate
+ * @granularity: defines the lowest granularity used for the invalidation:
+ *     domain > PASID > addr
+ * @padding: reserved for future use (should be zero)
+ * @pasid_info: invalidation data when @granularity is %IOMMU_INV_GRANU_PASID
+ * @addr_info: invalidation data when @granularity is %IOMMU_INV_GRANU_ADDR
+ *
+ * Not all the combinations of cache/granularity are valid:
+ *
+ * +--------------+---------------+---------------+---------------+
+ * | type /       |   DEV_IOTLB   |     IOTLB     |      PASID    |
+ * | granularity  |               |               |      cache    |
+ * +==============+===============+===============+===============+
+ * | DOMAIN       |       N/A     |       Y       |       Y       |
+ * +--------------+---------------+---------------+---------------+
+ * | PASID        |       Y       |       Y       |       Y       |
+ * +--------------+---------------+---------------+---------------+
+ * | ADDR         |       Y       |       Y       |       N/A     |
+ * +--------------+---------------+---------------+---------------+
+ *
+ * Invalidations by %IOMMU_INV_GRANU_DOMAIN don't take any argument other than
+ * @version and @cache.
+ *
+ * If multiple cache types are invalidated simultaneously, they all
+ * must support the used granularity.
+ */
+struct iommu_cache_invalidate_info {
+#define IOMMU_CACHE_INVALIDATE_INFO_VERSION_1 1
+	__u32	version;
+/* IOMMU paging structure cache */
+#define IOMMU_CACHE_INV_TYPE_IOTLB	(1 << 0) /* IOMMU IOTLB */
+#define IOMMU_CACHE_INV_TYPE_DEV_IOTLB	(1 << 1) /* Device IOTLB */
+#define IOMMU_CACHE_INV_TYPE_PASID	(1 << 2) /* PASID cache */
+#define IOMMU_CACHE_INV_TYPE_NR		(3)
+	__u8	cache;
+	__u8	granularity;
+	__u8	padding[2];
+	union {
+		struct iommu_inv_pasid_info pasid_info;
+		struct iommu_inv_addr_info addr_info;
+	};
+};
+
+/**
+ * struct iommu_gpasid_bind_data_vtd - Intel VT-d specific data on device and guest
+ * SVA binding.
+ *
+ * @flags:	VT-d PASID table entry attributes
+ * @pat:	Page attribute table data to compute effective memory type
+ * @emt:	Extended memory type
+ *
+ * Only guest vIOMMU selectable and effective options are passed down to
+ * the host IOMMU.
+ */
+struct iommu_gpasid_bind_data_vtd {
+#define IOMMU_SVA_VTD_GPASID_SRE	(1 << 0) /* supervisor request */
+#define IOMMU_SVA_VTD_GPASID_EAFE	(1 << 1) /* extended access enable */
+#define IOMMU_SVA_VTD_GPASID_PCD	(1 << 2) /* page-level cache disable */
+#define IOMMU_SVA_VTD_GPASID_PWT	(1 << 3) /* page-level write through */
+#define IOMMU_SVA_VTD_GPASID_EMTE	(1 << 4) /* extended mem type enable */
+#define IOMMU_SVA_VTD_GPASID_CD		(1 << 5) /* PASID-level cache disable */
+	__u64 flags;
+	__u32 pat;
+	__u32 emt;
+};
+
+/**
+ * struct iommu_gpasid_bind_data - Information about device and guest PASID binding
+ * @version:	Version of this data structure
+ * @format:	PASID table entry format
+ * @flags:	Additional information on guest bind request
+ * @gpgd:	Guest page directory base of the guest mm to bind
+ * @hpasid:	Process address space ID used for the guest mm in host IOMMU
+ * @gpasid:	Process address space ID used for the guest mm in guest IOMMU
+ * @addr_width:	Guest virtual address width
+ * @padding:	Reserved for future use (should be zero)
+ * @vtd:	Intel VT-d specific data
+ *
+ * Guest to host PASID mapping can be an identity or non-identity, where guest
+ * has its own PASID space. For non-identify mapping, guest to host PASID lookup
+ * is needed when VM programs guest PASID into an assigned device. VMM may
+ * trap such PASID programming then request host IOMMU driver to convert guest
+ * PASID to host PASID based on this bind data.
+ */
+struct iommu_gpasid_bind_data {
+#define IOMMU_GPASID_BIND_VERSION_1	1
+	__u32 version;
+#define IOMMU_PASID_FORMAT_INTEL_VTD	1
+	__u32 format;
+#define IOMMU_SVA_GPASID_VAL	(1 << 0) /* guest PASID valid */
+	__u64 flags;
+	__u64 gpgd;
+	__u64 hpasid;
+	__u64 gpasid;
+	__u32 addr_width;
+	__u8  padding[12];
+	/* Vendor specific data */
+	union {
+		struct iommu_gpasid_bind_data_vtd vtd;
+	};
+};
+
 #endif /* _UAPI_IOMMU_H */
diff --git a/original/uapi/linux/kcov.h b/original/uapi/linux/kcov.h
index 9529867..1d0350e 100644
--- a/original/uapi/linux/kcov.h
+++ b/original/uapi/linux/kcov.h
@@ -4,9 +4,24 @@
 
 #include <linux/types.h>
 
+/*
+ * Argument for KCOV_REMOTE_ENABLE ioctl, see Documentation/dev-tools/kcov.rst
+ * and the comment before kcov_remote_start() for usage details.
+ */
+struct kcov_remote_arg {
+	__u32		trace_mode;	/* KCOV_TRACE_PC or KCOV_TRACE_CMP */
+	__u32		area_size;	/* Length of coverage buffer in words */
+	__u32		num_handles;	/* Size of handles array */
+	__aligned_u64	common_handle;
+	__aligned_u64	handles[0];
+};
+
+#define KCOV_REMOTE_MAX_HANDLES		0x100
+
 #define KCOV_INIT_TRACE			_IOR('c', 1, unsigned long)
 #define KCOV_ENABLE			_IO('c', 100)
 #define KCOV_DISABLE			_IO('c', 101)
+#define KCOV_REMOTE_ENABLE		_IOW('c', 102, struct kcov_remote_arg)
 
 enum {
 	/*
@@ -32,4 +47,17 @@
 #define KCOV_CMP_SIZE(n)        ((n) << 1)
 #define KCOV_CMP_MASK           KCOV_CMP_SIZE(3)
 
+#define KCOV_SUBSYSTEM_COMMON	(0x00ull << 56)
+#define KCOV_SUBSYSTEM_USB	(0x01ull << 56)
+
+#define KCOV_SUBSYSTEM_MASK	(0xffull << 56)
+#define KCOV_INSTANCE_MASK	(0xffffffffull)
+
+static inline __u64 kcov_remote_handle(__u64 subsys, __u64 inst)
+{
+	if (subsys & ~KCOV_SUBSYSTEM_MASK || inst & ~KCOV_INSTANCE_MASK)
+		return 0;
+	return subsys | inst;
+}
+
 #endif /* _LINUX_KCOV_IOCTLS_H */
diff --git a/original/uapi/linux/kvm.h b/original/uapi/linux/kvm.h
index 52641d8..f0a16b4 100644
--- a/original/uapi/linux/kvm.h
+++ b/original/uapi/linux/kvm.h
@@ -235,6 +235,7 @@
 #define KVM_EXIT_S390_STSI        25
 #define KVM_EXIT_IOAPIC_EOI       26
 #define KVM_EXIT_HYPERV           27
+#define KVM_EXIT_ARM_NISV         28
 
 /* For KVM_EXIT_INTERNAL_ERROR */
 /* Emulate instruction failed. */
@@ -394,6 +395,11 @@
 		} eoi;
 		/* KVM_EXIT_HYPERV */
 		struct kvm_hyperv_exit hyperv;
+		/* KVM_EXIT_ARM_NISV */
+		struct {
+			__u64 esr_iss;
+			__u64 fault_ipa;
+		} arm_nisv;
 		/* Fix the size of the union. */
 		char padding[256];
 	};
@@ -1000,6 +1006,9 @@
 #define KVM_CAP_PMU_EVENT_FILTER 173
 #define KVM_CAP_ARM_IRQ_LINE_LAYOUT_2 174
 #define KVM_CAP_HYPERV_DIRECT_TLBFLUSH 175
+#define KVM_CAP_PPC_GUEST_DEBUG_SSTEP 176
+#define KVM_CAP_ARM_NISV_TO_USER 177
+#define KVM_CAP_ARM_INJECT_EXT_DABT 178
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
@@ -1227,6 +1236,8 @@
 #define KVM_DEV_TYPE_ARM_VGIC_ITS	KVM_DEV_TYPE_ARM_VGIC_ITS
 	KVM_DEV_TYPE_XIVE,
 #define KVM_DEV_TYPE_XIVE		KVM_DEV_TYPE_XIVE
+	KVM_DEV_TYPE_ARM_PV_TIME,
+#define KVM_DEV_TYPE_ARM_PV_TIME	KVM_DEV_TYPE_ARM_PV_TIME
 	KVM_DEV_TYPE_MAX,
 };
 
@@ -1337,6 +1348,7 @@
 #define KVM_PPC_GET_CPU_CHAR	  _IOR(KVMIO,  0xb1, struct kvm_ppc_cpu_char)
 /* Available with KVM_CAP_PMU_EVENT_FILTER */
 #define KVM_SET_PMU_EVENT_FILTER  _IOW(KVMIO,  0xb2, struct kvm_pmu_event_filter)
+#define KVM_PPC_SVM_OFF		  _IO(KVMIO,  0xb3)
 
 /* ioctl for vm fd */
 #define KVM_CREATE_DEVICE	  _IOWR(KVMIO,  0xe0, struct kvm_create_device)
diff --git a/original/uapi/linux/lwtunnel.h b/original/uapi/linux/lwtunnel.h
index de696ca..f6035f7 100644
--- a/original/uapi/linux/lwtunnel.h
+++ b/original/uapi/linux/lwtunnel.h
@@ -27,6 +27,7 @@
 	LWTUNNEL_IP_TOS,
 	LWTUNNEL_IP_FLAGS,
 	LWTUNNEL_IP_PAD,
+	LWTUNNEL_IP_OPTS,
 	__LWTUNNEL_IP_MAX,
 };
 
@@ -41,12 +42,52 @@
 	LWTUNNEL_IP6_TC,
 	LWTUNNEL_IP6_FLAGS,
 	LWTUNNEL_IP6_PAD,
+	LWTUNNEL_IP6_OPTS,
 	__LWTUNNEL_IP6_MAX,
 };
 
 #define LWTUNNEL_IP6_MAX (__LWTUNNEL_IP6_MAX - 1)
 
 enum {
+	LWTUNNEL_IP_OPTS_UNSPEC,
+	LWTUNNEL_IP_OPTS_GENEVE,
+	LWTUNNEL_IP_OPTS_VXLAN,
+	LWTUNNEL_IP_OPTS_ERSPAN,
+	__LWTUNNEL_IP_OPTS_MAX,
+};
+
+#define LWTUNNEL_IP_OPTS_MAX (__LWTUNNEL_IP_OPTS_MAX - 1)
+
+enum {
+	LWTUNNEL_IP_OPT_GENEVE_UNSPEC,
+	LWTUNNEL_IP_OPT_GENEVE_CLASS,
+	LWTUNNEL_IP_OPT_GENEVE_TYPE,
+	LWTUNNEL_IP_OPT_GENEVE_DATA,
+	__LWTUNNEL_IP_OPT_GENEVE_MAX,
+};
+
+#define LWTUNNEL_IP_OPT_GENEVE_MAX (__LWTUNNEL_IP_OPT_GENEVE_MAX - 1)
+
+enum {
+	LWTUNNEL_IP_OPT_VXLAN_UNSPEC,
+	LWTUNNEL_IP_OPT_VXLAN_GBP,
+	__LWTUNNEL_IP_OPT_VXLAN_MAX,
+};
+
+#define LWTUNNEL_IP_OPT_VXLAN_MAX (__LWTUNNEL_IP_OPT_VXLAN_MAX - 1)
+
+enum {
+	LWTUNNEL_IP_OPT_ERSPAN_UNSPEC,
+	LWTUNNEL_IP_OPT_ERSPAN_VER,
+	LWTUNNEL_IP_OPT_ERSPAN_INDEX,
+	LWTUNNEL_IP_OPT_ERSPAN_DIR,
+	LWTUNNEL_IP_OPT_ERSPAN_HWID,
+	__LWTUNNEL_IP_OPT_ERSPAN_MAX,
+};
+
+#define LWTUNNEL_IP_OPT_ERSPAN_MAX (__LWTUNNEL_IP_OPT_ERSPAN_MAX - 1)
+
+enum {
 	LWT_BPF_PROG_UNSPEC,
 	LWT_BPF_PROG_FD,
 	LWT_BPF_PROG_NAME,
diff --git a/original/uapi/linux/magic.h b/original/uapi/linux/magic.h
index 5c4bf0a..b1fbe15 100644
--- a/original/uapi/linux/magic.h
+++ b/original/uapi/linux/magic.h
@@ -96,5 +96,6 @@
 #define ZSMALLOC_MAGIC		0x58295829
 #define DMA_BUF_MAGIC		0x444d4142	/* "DMAB" */
 #define Z3FOLD_MAGIC		0x33
+#define PPC_CMM_MAGIC		0xc7571590
 
 #endif /* __LINUX_MAGIC_H__ */
diff --git a/original/uapi/linux/msg.h b/original/uapi/linux/msg.h
index e4a0d9a..01ee8d5 100644
--- a/original/uapi/linux/msg.h
+++ b/original/uapi/linux/msg.h
@@ -19,9 +19,9 @@
 	struct ipc_perm msg_perm;
 	struct msg *msg_first;		/* first message on queue,unused  */
 	struct msg *msg_last;		/* last message in queue,unused */
-	__kernel_time_t msg_stime;	/* last msgsnd time */
-	__kernel_time_t msg_rtime;	/* last msgrcv time */
-	__kernel_time_t msg_ctime;	/* last change time */
+	__kernel_old_time_t msg_stime;	/* last msgsnd time */
+	__kernel_old_time_t msg_rtime;	/* last msgrcv time */
+	__kernel_old_time_t msg_ctime;	/* last change time */
 	unsigned long  msg_lcbytes;	/* Reuse junk fields for 32 bit */
 	unsigned long  msg_lqbytes;	/* ditto */
 	unsigned short msg_cbytes;	/* current number of bytes on queue */
diff --git a/original/uapi/linux/netfilter/ipset/ip_set.h b/original/uapi/linux/netfilter/ipset/ip_set.h
index eea166c..11a72a9 100644
--- a/original/uapi/linux/netfilter/ipset/ip_set.h
+++ b/original/uapi/linux/netfilter/ipset/ip_set.h
@@ -205,6 +205,8 @@
 	IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD),
 	IPSET_FLAG_BIT_WITH_SKBINFO = 6,
 	IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO),
+	IPSET_FLAG_BIT_IFACE_WILDCARD = 7,
+	IPSET_FLAG_IFACE_WILDCARD = (1 << IPSET_FLAG_BIT_IFACE_WILDCARD),
 	IPSET_FLAG_CADT_MAX	= 15,
 };
 
diff --git a/original/uapi/linux/netfilter/nf_tables.h b/original/uapi/linux/netfilter/nf_tables.h
index ed8881a..bb9b049 100644
--- a/original/uapi/linux/netfilter/nf_tables.h
+++ b/original/uapi/linux/netfilter/nf_tables.h
@@ -144,12 +144,14 @@
  * @NFTA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
  * @NFTA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
  * @NFTA_HOOK_DEV: netdevice name (NLA_STRING)
+ * @NFTA_HOOK_DEVS: list of netdevices (NLA_NESTED)
  */
 enum nft_hook_attributes {
 	NFTA_HOOK_UNSPEC,
 	NFTA_HOOK_HOOKNUM,
 	NFTA_HOOK_PRIORITY,
 	NFTA_HOOK_DEV,
+	NFTA_HOOK_DEVS,
 	__NFTA_HOOK_MAX
 };
 #define NFTA_HOOK_MAX		(__NFTA_HOOK_MAX - 1)
@@ -1516,6 +1518,7 @@
  * @NFTA_FLOWTABLE_HOOK: netfilter hook configuration(NLA_U32)
  * @NFTA_FLOWTABLE_USE: number of references to this flow table (NLA_U32)
  * @NFTA_FLOWTABLE_HANDLE: object handle (NLA_U64)
+ * @NFTA_FLOWTABLE_FLAGS: flags (NLA_U32)
  */
 enum nft_flowtable_attributes {
 	NFTA_FLOWTABLE_UNSPEC,
@@ -1525,6 +1528,7 @@
 	NFTA_FLOWTABLE_USE,
 	NFTA_FLOWTABLE_HANDLE,
 	NFTA_FLOWTABLE_PAD,
+	NFTA_FLOWTABLE_FLAGS,
 	__NFTA_FLOWTABLE_MAX
 };
 #define NFTA_FLOWTABLE_MAX	(__NFTA_FLOWTABLE_MAX - 1)
diff --git a/original/uapi/linux/netfilter/xt_sctp.h b/original/uapi/linux/netfilter/xt_sctp.h
index 4bc6d1a..b4d804a 100644
--- a/original/uapi/linux/netfilter/xt_sctp.h
+++ b/original/uapi/linux/netfilter/xt_sctp.h
@@ -41,19 +41,19 @@
 #define SCTP_CHUNKMAP_SET(chunkmap, type) 		\
 	do { 						\
 		(chunkmap)[type / bytes(__u32)] |= 	\
-			1 << (type % bytes(__u32));	\
+			1u << (type % bytes(__u32));	\
 	} while (0)
 
 #define SCTP_CHUNKMAP_CLEAR(chunkmap, type)		 	\
 	do {							\
 		(chunkmap)[type / bytes(__u32)] &= 		\
-			~(1 << (type % bytes(__u32)));	\
+			~(1u << (type % bytes(__u32)));	\
 	} while (0)
 
 #define SCTP_CHUNKMAP_IS_SET(chunkmap, type) 			\
 ({								\
 	((chunkmap)[type / bytes (__u32)] & 		\
-		(1 << (type % bytes (__u32)))) ? 1: 0;	\
+		(1u << (type % bytes (__u32)))) ? 1: 0;	\
 })
 
 #define SCTP_CHUNKMAP_RESET(chunkmap) \
diff --git a/original/uapi/linux/netfilter_arp/arp_tables.h b/original/uapi/linux/netfilter_arp/arp_tables.h
index a2a0927..bbf5af2 100644
--- a/original/uapi/linux/netfilter_arp/arp_tables.h
+++ b/original/uapi/linux/netfilter_arp/arp_tables.h
@@ -199,7 +199,7 @@
 /* Helper functions */
 static __inline__ struct xt_entry_target *arpt_get_target(struct arpt_entry *e)
 {
-	return (void *)e + e->target_offset;
+	return (struct xt_entry_target *)((char *)e + e->target_offset);
 }
 
 /*
diff --git a/original/uapi/linux/netfilter_bridge/ebtables.h b/original/uapi/linux/netfilter_bridge/ebtables.h
index 8076c94..a494cf4 100644
--- a/original/uapi/linux/netfilter_bridge/ebtables.h
+++ b/original/uapi/linux/netfilter_bridge/ebtables.h
@@ -194,7 +194,7 @@
 static __inline__ struct ebt_entry_target *
 ebt_get_target(struct ebt_entry *e)
 {
-	return (void *)e + e->target_offset;
+	return (struct ebt_entry_target *)((char *)e + e->target_offset);
 }
 
 /* {g,s}etsockopt numbers */
diff --git a/original/uapi/linux/netfilter_ipv4/ip_tables.h b/original/uapi/linux/netfilter_ipv4/ip_tables.h
index 6aaeb14..50c7fee 100644
--- a/original/uapi/linux/netfilter_ipv4/ip_tables.h
+++ b/original/uapi/linux/netfilter_ipv4/ip_tables.h
@@ -222,7 +222,7 @@
 static __inline__ struct xt_entry_target *
 ipt_get_target(struct ipt_entry *e)
 {
-	return (void *)e + e->target_offset;
+	return (struct xt_entry_target *)((char *)e + e->target_offset);
 }
 
 /*
diff --git a/original/uapi/linux/netfilter_ipv6/ip6_tables.h b/original/uapi/linux/netfilter_ipv6/ip6_tables.h
index 031d0a4..d9e364f 100644
--- a/original/uapi/linux/netfilter_ipv6/ip6_tables.h
+++ b/original/uapi/linux/netfilter_ipv6/ip6_tables.h
@@ -262,7 +262,7 @@
 static __inline__ struct xt_entry_target *
 ip6t_get_target(struct ip6t_entry *e)
 {
-	return (void *)e + e->target_offset;
+	return (struct xt_entry_target *)((char *)e + e->target_offset);
 }
 
 /*
diff --git a/original/uapi/linux/nl80211.h b/original/uapi/linux/nl80211.h
index beee59c..5eab191 100644
--- a/original/uapi/linux/nl80211.h
+++ b/original/uapi/linux/nl80211.h
@@ -249,6 +249,22 @@
  */
 
 /**
+ * DOC: VLAN offload support for setting group keys and binding STAs to VLANs
+ *
+ * By setting @NL80211_EXT_FEATURE_VLAN_OFFLOAD flag drivers can indicate they
+ * support offloading VLAN functionality in a manner where the driver exposes a
+ * single netdev that uses VLAN tagged frames and separate VLAN-specific netdevs
+ * can then be added using RTM_NEWLINK/IFLA_VLAN_ID similarly to the Ethernet
+ * case. Frames received from stations that are not assigned to any VLAN are
+ * delivered on the main netdev and frames to such stations can be sent through
+ * that main netdev.
+ *
+ * %NL80211_CMD_NEW_KEY (for group keys), %NL80211_CMD_NEW_STATION, and
+ * %NL80211_CMD_SET_STATION will optionally specify vlan_id using
+ * %NL80211_ATTR_VLAN_ID.
+ */
+
+/**
  * enum nl80211_commands - supported nl80211 commands
  *
  * @NL80211_CMD_UNSPEC: unspecified command to catch errors
@@ -571,6 +587,14 @@
  *	set of BSSID,frequency parameters is used (i.e., either the enforcing
  *	%NL80211_ATTR_MAC,%NL80211_ATTR_WIPHY_FREQ or the less strict
  *	%NL80211_ATTR_MAC_HINT and %NL80211_ATTR_WIPHY_FREQ_HINT).
+ *	Driver shall not modify the IEs specified through %NL80211_ATTR_IE if
+ *	%NL80211_ATTR_MAC is included. However, if %NL80211_ATTR_MAC_HINT is
+ *	included, these IEs through %NL80211_ATTR_IE are specified by the user
+ *	space based on the best possible BSS selected. Thus, if the driver ends
+ *	up selecting a different BSS, it can modify these IEs accordingly (e.g.
+ *	userspace asks the driver to perform PMKSA caching with BSS1 and the
+ *	driver ends up selecting BSS2 with different PMKSA cache entry; RSNIE
+ *	has to get updated with the apt PMKID).
  *	%NL80211_ATTR_PREV_BSSID can be used to request a reassociation within
  *	the ESS in case the device is already associated and an association with
  *	a different BSS is desired.
@@ -2373,6 +2397,9 @@
  *	the allowed channel bandwidth configurations. (u8 attribute)
  *	Defined by IEEE P802.11ay/D4.0 section 9.4.2.251, Table 13.
  *
+ * @NL80211_ATTR_VLAN_ID: VLAN ID (1..4094) for the station and VLAN group key
+ *	(u16).
+ *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -2835,6 +2862,8 @@
 	NL80211_ATTR_WIPHY_EDMG_CHANNELS,
 	NL80211_ATTR_WIPHY_EDMG_BW_CONFIG,
 
+	NL80211_ATTR_VLAN_ID,
+
 	/* add attributes here, update the policy in nl80211.c */
 
 	__NL80211_ATTR_AFTER_LAST,
@@ -5484,6 +5513,14 @@
  * @NL80211_EXT_FEATURE_SAE_OFFLOAD: Device wants to do SAE authentication in
  *	station mode (SAE password is passed as part of the connect command).
  *
+ * @NL80211_EXT_FEATURE_VLAN_OFFLOAD: The driver supports a single netdev
+ *	with VLAN tagged frames and separate VLAN-specific netdevs added using
+ *	vconfig similarly to the Ethernet case.
+ *
+ * @NL80211_EXT_FEATURE_AQL: The driver supports the Airtime Queue Limit (AQL)
+ *	feature, which prevents bufferbloat by using the expected transmission
+ *	time to limit the amount of data buffered in the hardware.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -5529,6 +5566,8 @@
 	NL80211_EXT_FEATURE_EXT_KEY_ID,
 	NL80211_EXT_FEATURE_STA_TX_PWR,
 	NL80211_EXT_FEATURE_SAE_OFFLOAD,
+	NL80211_EXT_FEATURE_VLAN_OFFLOAD,
+	NL80211_EXT_FEATURE_AQL,
 
 	/* add new features before the definition below */
 	NUM_NL80211_EXT_FEATURES,
diff --git a/original/uapi/linux/openvswitch.h b/original/uapi/linux/openvswitch.h
index 1887a45..a87b44c 100644
--- a/original/uapi/linux/openvswitch.h
+++ b/original/uapi/linux/openvswitch.h
@@ -173,6 +173,7 @@
  * @OVS_PACKET_ATTR_LEN: Packet size before truncation.
  * %OVS_PACKET_ATTR_USERSPACE action specify the Maximum received fragment
  * size.
+ * @OVS_PACKET_ATTR_HASH: Packet hash info (e.g. hash, sw_hash and l4_hash in skb).
  *
  * These attributes follow the &struct ovs_header within the Generic Netlink
  * payload for %OVS_PACKET_* commands.
@@ -190,7 +191,8 @@
 	OVS_PACKET_ATTR_PROBE,      /* Packet operation is a feature probe,
 				       error logging should be suppressed. */
 	OVS_PACKET_ATTR_MRU,	    /* Maximum received IP fragment size. */
-	OVS_PACKET_ATTR_LEN,		/* Packet size before truncation. */
+	OVS_PACKET_ATTR_LEN,	    /* Packet size before truncation. */
+	OVS_PACKET_ATTR_HASH,	    /* Packet hash. */
 	__OVS_PACKET_ATTR_MAX
 };
 
diff --git a/original/uapi/linux/pci_regs.h b/original/uapi/linux/pci_regs.h
index 29d6e93..acb7d2b 100644
--- a/original/uapi/linux/pci_regs.h
+++ b/original/uapi/linux/pci_regs.h
@@ -34,6 +34,7 @@
  * of which the first 64 bytes are standardized as follows:
  */
 #define PCI_STD_HEADER_SIZEOF	64
+#define PCI_STD_NUM_BARS	6	/* Number of standard BARs */
 #define PCI_VENDOR_ID		0x00	/* 16 bits */
 #define PCI_DEVICE_ID		0x02	/* 16 bits */
 #define PCI_COMMAND		0x04	/* 16 bits */
@@ -673,6 +674,8 @@
 #define  PCI_EXP_LNKCTL2_TLS_8_0GT	0x0003 /* Supported Speed 8GT/s */
 #define  PCI_EXP_LNKCTL2_TLS_16_0GT	0x0004 /* Supported Speed 16GT/s */
 #define  PCI_EXP_LNKCTL2_TLS_32_0GT	0x0005 /* Supported Speed 32GT/s */
+#define  PCI_EXP_LNKCTL2_ENTER_COMP	0x0010 /* Enter Compliance */
+#define  PCI_EXP_LNKCTL2_TX_MARGIN	0x0380 /* Transmit Margin */
 #define PCI_EXP_LNKSTA2		50	/* Link Status 2 */
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2	52	/* v2 endpoints with link end here */
 #define PCI_EXP_SLTCAP2		52	/* Slot Capabilities 2 */
diff --git a/original/uapi/linux/perf_event.h b/original/uapi/linux/perf_event.h
index bb7b271..377d794 100644
--- a/original/uapi/linux/perf_event.h
+++ b/original/uapi/linux/perf_event.h
@@ -141,8 +141,9 @@
 	PERF_SAMPLE_TRANSACTION			= 1U << 17,
 	PERF_SAMPLE_REGS_INTR			= 1U << 18,
 	PERF_SAMPLE_PHYS_ADDR			= 1U << 19,
+	PERF_SAMPLE_AUX				= 1U << 20,
 
-	PERF_SAMPLE_MAX = 1U << 20,		/* non-ABI */
+	PERF_SAMPLE_MAX = 1U << 21,		/* non-ABI */
 
 	__PERF_SAMPLE_CALLCHAIN_EARLY		= 1ULL << 63, /* non-ABI; internal use */
 };
@@ -300,6 +301,7 @@
 					/* add: sample_stack_user */
 #define PERF_ATTR_SIZE_VER4	104	/* add: sample_regs_intr */
 #define PERF_ATTR_SIZE_VER5	112	/* add: aux_watermark */
+#define PERF_ATTR_SIZE_VER6	120	/* add: aux_sample_size */
 
 /*
  * Hardware event_id to monitor via a performance monitoring event:
@@ -424,7 +426,9 @@
 	 */
 	__u32	aux_watermark;
 	__u16	sample_max_stack;
-	__u16	__reserved_2;	/* align to __u64 */
+	__u16	__reserved_2;
+	__u32	aux_sample_size;
+	__u32	__reserved_3;
 };
 
 /*
@@ -864,6 +868,8 @@
 	 *	{ u64			abi; # enum perf_sample_regs_abi
 	 *	  u64			regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR
 	 *	{ u64			phys_addr;} && PERF_SAMPLE_PHYS_ADDR
+	 *	{ u64			size;
+	 *	  char			data[size]; } && PERF_SAMPLE_AUX
 	 * };
 	 */
 	PERF_RECORD_SAMPLE			= 9,
diff --git a/original/uapi/linux/pkt_cls.h b/original/uapi/linux/pkt_cls.h
index a6aa466..449a639 100644
--- a/original/uapi/linux/pkt_cls.h
+++ b/original/uapi/linux/pkt_cls.h
@@ -16,9 +16,14 @@
 	TCA_ACT_STATS,
 	TCA_ACT_PAD,
 	TCA_ACT_COOKIE,
+	TCA_ACT_FLAGS,
 	__TCA_ACT_MAX
 };
 
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for
+					 * actions stats.
+					 */
+
 #define TCA_ACT_MAX __TCA_ACT_MAX
 #define TCA_OLD_COMPAT (TCA_ACT_MAX+1)
 #define TCA_ACT_MAX_PRIO 32
@@ -566,6 +571,14 @@
 					 * TCA_FLOWER_KEY_ENC_OPT_GENEVE_
 					 * attributes
 					 */
+	TCA_FLOWER_KEY_ENC_OPTS_VXLAN,	/* Nested
+					 * TCA_FLOWER_KEY_ENC_OPT_VXLAN_
+					 * attributes
+					 */
+	TCA_FLOWER_KEY_ENC_OPTS_ERSPAN,	/* Nested
+					 * TCA_FLOWER_KEY_ENC_OPT_ERSPAN_
+					 * attributes
+					 */
 	__TCA_FLOWER_KEY_ENC_OPTS_MAX,
 };
 
@@ -584,6 +597,27 @@
 		(__TCA_FLOWER_KEY_ENC_OPT_GENEVE_MAX - 1)
 
 enum {
+	TCA_FLOWER_KEY_ENC_OPT_VXLAN_UNSPEC,
+	TCA_FLOWER_KEY_ENC_OPT_VXLAN_GBP,		/* u32 */
+	__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX,
+};
+
+#define TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX \
+		(__TCA_FLOWER_KEY_ENC_OPT_VXLAN_MAX - 1)
+
+enum {
+	TCA_FLOWER_KEY_ENC_OPT_ERSPAN_UNSPEC,
+	TCA_FLOWER_KEY_ENC_OPT_ERSPAN_VER,              /* u8 */
+	TCA_FLOWER_KEY_ENC_OPT_ERSPAN_INDEX,            /* be32 */
+	TCA_FLOWER_KEY_ENC_OPT_ERSPAN_DIR,              /* u8 */
+	TCA_FLOWER_KEY_ENC_OPT_ERSPAN_HWID,             /* u8 */
+	__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX,
+};
+
+#define TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX \
+		(__TCA_FLOWER_KEY_ENC_OPT_ERSPAN_MAX - 1)
+
+enum {
 	TCA_FLOWER_KEY_FLAGS_IS_FRAGMENT = (1 << 0),
 	TCA_FLOWER_KEY_FLAGS_FRAG_IS_FIRST = (1 << 1),
 };
diff --git a/original/uapi/linux/pkt_sched.h b/original/uapi/linux/pkt_sched.h
index 5011259..9f1a728 100644
--- a/original/uapi/linux/pkt_sched.h
+++ b/original/uapi/linux/pkt_sched.h
@@ -950,19 +950,25 @@
 	TCA_PIE_BETA,
 	TCA_PIE_ECN,
 	TCA_PIE_BYTEMODE,
+	TCA_PIE_DQ_RATE_ESTIMATOR,
 	__TCA_PIE_MAX
 };
 #define TCA_PIE_MAX   (__TCA_PIE_MAX - 1)
 
 struct tc_pie_xstats {
-	__u64 prob;             /* current probability */
-	__u32 delay;            /* current delay in ms */
-	__u32 avg_dq_rate;      /* current average dq_rate in bits/pie_time */
-	__u32 packets_in;       /* total number of packets enqueued */
-	__u32 dropped;          /* packets dropped due to pie_action */
-	__u32 overlimit;        /* dropped due to lack of space in queue */
-	__u32 maxq;             /* maximum queue size */
-	__u32 ecn_mark;         /* packets marked with ecn*/
+	__u64 prob;			/* current probability */
+	__u32 delay;			/* current delay in ms */
+	__u32 avg_dq_rate;		/* current average dq_rate in
+					 * bits/pie_time
+					 */
+	__u32 dq_rate_estimating;	/* is avg_dq_rate being calculated? */
+	__u32 packets_in;		/* total number of packets enqueued */
+	__u32 dropped;			/* packets dropped due to pie_action */
+	__u32 overlimit;		/* dropped due to lack of space
+					 * in queue
+					 */
+	__u32 maxq;			/* maximum queue size */
+	__u32 ecn_mark;			/* packets marked with ecn*/
 };
 
 /* CBS */
diff --git a/original/uapi/linux/ppp-ioctl.h b/original/uapi/linux/ppp-ioctl.h
index 88b5f99..7bd2a5a 100644
--- a/original/uapi/linux/ppp-ioctl.h
+++ b/original/uapi/linux/ppp-ioctl.h
@@ -104,6 +104,8 @@
 #define PPPIOCGDEBUG	_IOR('t', 65, int)	/* Read debug level */
 #define PPPIOCSDEBUG	_IOW('t', 64, int)	/* Set debug level */
 #define PPPIOCGIDLE	_IOR('t', 63, struct ppp_idle) /* get idle time */
+#define PPPIOCGIDLE32	_IOR('t', 63, struct ppp_idle32) /* 32-bit times */
+#define PPPIOCGIDLE64	_IOR('t', 63, struct ppp_idle64) /* 64-bit times */
 #define PPPIOCNEWUNIT	_IOWR('t', 62, int)	/* create new ppp unit */
 #define PPPIOCATTACH	_IOW('t', 61, int)	/* attach to ppp unit */
 #define PPPIOCDETACH	_IOW('t', 60, int)	/* obsolete, do not use */
diff --git a/original/uapi/linux/ppp_defs.h b/original/uapi/linux/ppp_defs.h
index fff51b9..20286bd 100644
--- a/original/uapi/linux/ppp_defs.h
+++ b/original/uapi/linux/ppp_defs.h
@@ -142,10 +142,24 @@
 /*
  * The following structure records the time in seconds since
  * the last NP packet was sent or received.
+ *
+ * Linux implements both 32-bit and 64-bit time_t versions
+ * for compatibility with user space that defines ppp_idle
+ * based on the libc time_t.
  */
 struct ppp_idle {
-    __kernel_time_t xmit_idle;	/* time since last NP packet sent */
-    __kernel_time_t recv_idle;	/* time since last NP packet received */
+    __kernel_old_time_t xmit_idle;	/* time since last NP packet sent */
+    __kernel_old_time_t recv_idle;	/* time since last NP packet received */
+};
+
+struct ppp_idle32 {
+    __s32 xmit_idle;		/* time since last NP packet sent */
+    __s32 recv_idle;		/* time since last NP packet received */
+};
+
+struct ppp_idle64 {
+    __s64 xmit_idle;		/* time since last NP packet sent */
+    __s64 recv_idle;		/* time since last NP packet received */
 };
 
 #endif /* _UAPI_PPP_DEFS_H_ */
diff --git a/original/uapi/linux/psp-sev.h b/original/uapi/linux/psp-sev.h
index 592a0c1..0549a5c 100644
--- a/original/uapi/linux/psp-sev.h
+++ b/original/uapi/linux/psp-sev.h
@@ -58,6 +58,9 @@
 	SEV_RET_HWSEV_RET_PLATFORM,
 	SEV_RET_HWSEV_RET_UNSAFE,
 	SEV_RET_UNSUPPORTED,
+	SEV_RET_INVALID_PARAM,
+	SEV_RET_RESOURCE_LIMIT,
+	SEV_RET_SECURE_DATA_INVALID,
 	SEV_RET_MAX,
 } sev_ret_code;
 
diff --git a/original/uapi/linux/resource.h b/original/uapi/linux/resource.h
index cc00fd0..74ef57b 100644
--- a/original/uapi/linux/resource.h
+++ b/original/uapi/linux/resource.h
@@ -22,8 +22,8 @@
 #define	RUSAGE_THREAD	1		/* only the calling thread */
 
 struct	rusage {
-	struct timeval ru_utime;	/* user time used */
-	struct timeval ru_stime;	/* system time used */
+	struct __kernel_old_timeval ru_utime;	/* user time used */
+	struct __kernel_old_timeval ru_stime;	/* system time used */
 	__kernel_long_t	ru_maxrss;	/* maximum resident set size */
 	__kernel_long_t	ru_ixrss;	/* integral shared memory size */
 	__kernel_long_t	ru_idrss;	/* integral unshared data size */
diff --git a/original/uapi/linux/rtnetlink.h b/original/uapi/linux/rtnetlink.h
index ce2a623..1418a83 100644
--- a/original/uapi/linux/rtnetlink.h
+++ b/original/uapi/linux/rtnetlink.h
@@ -164,6 +164,13 @@
 	RTM_GETNEXTHOP,
 #define RTM_GETNEXTHOP	RTM_GETNEXTHOP
 
+	RTM_NEWLINKPROP = 108,
+#define RTM_NEWLINKPROP	RTM_NEWLINKPROP
+	RTM_DELLINKPROP,
+#define RTM_DELLINKPROP	RTM_DELLINKPROP
+	RTM_GETLINKPROP,
+#define RTM_GETLINKPROP	RTM_GETLINKPROP
+
 	__RTM_MAX,
 #define RTM_MAX		(((__RTM_MAX + 3) & ~3) - 1)
 };
diff --git a/original/uapi/linux/scc.h b/original/uapi/linux/scc.h
index c5bc7f7..947edb1 100644
--- a/original/uapi/linux/scc.h
+++ b/original/uapi/linux/scc.h
@@ -4,6 +4,7 @@
 #ifndef _UAPI_SCC_H
 #define _UAPI_SCC_H
 
+#include <linux/sockios.h>
 
 /* selection of hardware types */
 
diff --git a/original/uapi/linux/sched.h b/original/uapi/linux/sched.h
index 25b4fa0..4a02178 100644
--- a/original/uapi/linux/sched.h
+++ b/original/uapi/linux/sched.h
@@ -33,31 +33,48 @@
 #define CLONE_NEWNET		0x40000000	/* New network namespace */
 #define CLONE_IO		0x80000000	/* Clone io context */
 
+/* Flags for the clone3() syscall. */
+#define CLONE_CLEAR_SIGHAND 0x100000000ULL /* Clear any signal handler and reset to SIG_DFL. */
+
 #ifndef __ASSEMBLY__
 /**
  * struct clone_args - arguments for the clone3 syscall
- * @flags:       Flags for the new process as listed above.
- *               All flags are valid except for CSIGNAL and
- *               CLONE_DETACHED.
- * @pidfd:       If CLONE_PIDFD is set, a pidfd will be
- *               returned in this argument.
- * @child_tid:   If CLONE_CHILD_SETTID is set, the TID of the
- *               child process will be returned in the child's
- *               memory.
- * @parent_tid:  If CLONE_PARENT_SETTID is set, the TID of
- *               the child process will be returned in the
- *               parent's memory.
- * @exit_signal: The exit_signal the parent process will be
- *               sent when the child exits.
- * @stack:       Specify the location of the stack for the
- *               child process.
- *               Note, @stack is expected to point to the
- *               lowest address. The stack direction will be
- *               determined by the kernel and set up
- *               appropriately based on @stack_size.
- * @stack_size:  The size of the stack for the child process.
- * @tls:         If CLONE_SETTLS is set, the tls descriptor
- *               is set to tls.
+ * @flags:        Flags for the new process as listed above.
+ *                All flags are valid except for CSIGNAL and
+ *                CLONE_DETACHED.
+ * @pidfd:        If CLONE_PIDFD is set, a pidfd will be
+ *                returned in this argument.
+ * @child_tid:    If CLONE_CHILD_SETTID is set, the TID of the
+ *                child process will be returned in the child's
+ *                memory.
+ * @parent_tid:   If CLONE_PARENT_SETTID is set, the TID of
+ *                the child process will be returned in the
+ *                parent's memory.
+ * @exit_signal:  The exit_signal the parent process will be
+ *                sent when the child exits.
+ * @stack:        Specify the location of the stack for the
+ *                child process.
+ *                Note, @stack is expected to point to the
+ *                lowest address. The stack direction will be
+ *                determined by the kernel and set up
+ *                appropriately based on @stack_size.
+ * @stack_size:   The size of the stack for the child process.
+ * @tls:          If CLONE_SETTLS is set, the tls descriptor
+ *                is set to tls.
+ * @set_tid:      Pointer to an array of type *pid_t. The size
+ *                of the array is defined using @set_tid_size.
+ *                This array is used to select PIDs/TIDs for
+ *                newly created processes. The first element in
+ *                this defines the PID in the most nested PID
+ *                namespace. Each additional element in the array
+ *                defines the PID in the parent PID namespace of
+ *                the original PID namespace. If the array has
+ *                less entries than the number of currently
+ *                nested PID namespaces only the PIDs in the
+ *                corresponding namespaces are set.
+ * @set_tid_size: This defines the size of the array referenced
+ *                in @set_tid. This cannot be larger than the
+ *                kernel's limit of nested PID namespaces.
  *
  * The structure is versioned by size and thus extensible.
  * New struct members must go at the end of the struct and
@@ -72,10 +89,13 @@
 	__aligned_u64 stack;
 	__aligned_u64 stack_size;
 	__aligned_u64 tls;
+	__aligned_u64 set_tid;
+	__aligned_u64 set_tid_size;
 };
 #endif
 
 #define CLONE_ARGS_SIZE_VER0 64 /* sizeof first published struct */
+#define CLONE_ARGS_SIZE_VER1 80 /* sizeof second published struct */
 
 /*
  * Scheduling policies
diff --git a/original/uapi/linux/sctp.h b/original/uapi/linux/sctp.h
index 6d5b164..28ad40d 100644
--- a/original/uapi/linux/sctp.h
+++ b/original/uapi/linux/sctp.h
@@ -105,6 +105,7 @@
 #define SCTP_DEFAULT_SNDINFO	34
 #define SCTP_AUTH_DEACTIVATE_KEY	35
 #define SCTP_REUSE_PORT		36
+#define SCTP_PEER_ADDR_THLDS_V2	37
 
 /* Internal Socket Options. Some of the sctp library functions are
  * implemented using these socket options.
@@ -137,6 +138,8 @@
 #define SCTP_ASCONF_SUPPORTED	128
 #define SCTP_AUTH_SUPPORTED	129
 #define SCTP_ECN_SUPPORTED	130
+#define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE	131
+#define SCTP_EXPOSE_PF_STATE	SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
 
 /* PR-SCTP policies */
 #define SCTP_PR_SCTP_NONE	0x0000
@@ -410,6 +413,8 @@
 	SCTP_ADDR_ADDED,
 	SCTP_ADDR_MADE_PRIM,
 	SCTP_ADDR_CONFIRMED,
+	SCTP_ADDR_POTENTIALLY_FAILED,
+#define SCTP_ADDR_PF	SCTP_ADDR_POTENTIALLY_FAILED
 };
 
 
@@ -449,6 +454,16 @@
 	__u8 ssf_data[0];
 };
 
+struct sctp_send_failed_event {
+	__u16 ssf_type;
+	__u16 ssf_flags;
+	__u32 ssf_length;
+	__u32 ssf_error;
+	struct sctp_sndinfo ssfe_info;
+	sctp_assoc_t ssf_assoc_id;
+	__u8 ssf_data[0];
+};
+
 /*
  *   ssf_flags: 16 bits (unsigned integer)
  *
@@ -605,6 +620,7 @@
 	__u8 sctp_stream_reset_event;
 	__u8 sctp_assoc_reset_event;
 	__u8 sctp_stream_change_event;
+	__u8 sctp_send_failure_event_event;
 };
 
 /*
@@ -632,6 +648,7 @@
 	struct sctp_stream_reset_event sn_strreset_event;
 	struct sctp_assoc_reset_event sn_assocreset_event;
 	struct sctp_stream_change_event sn_strchange_event;
+	struct sctp_send_failed_event sn_send_failed_event;
 };
 
 /* Section 5.3.1
@@ -667,7 +684,9 @@
 #define SCTP_ASSOC_RESET_EVENT		SCTP_ASSOC_RESET_EVENT
 	SCTP_STREAM_CHANGE_EVENT,
 #define SCTP_STREAM_CHANGE_EVENT	SCTP_STREAM_CHANGE_EVENT
-	SCTP_SN_TYPE_MAX	= SCTP_STREAM_CHANGE_EVENT,
+	SCTP_SEND_FAILED_EVENT,
+#define SCTP_SEND_FAILED_EVENT		SCTP_SEND_FAILED_EVENT
+	SCTP_SN_TYPE_MAX	= SCTP_SEND_FAILED_EVENT,
 #define SCTP_SN_TYPE_MAX		SCTP_SN_TYPE_MAX
 };
 
@@ -919,6 +938,7 @@
 enum sctp_spinfo_state {
 	SCTP_INACTIVE,
 	SCTP_PF,
+#define	SCTP_POTENTIALLY_FAILED		SCTP_PF
 	SCTP_ACTIVE,
 	SCTP_UNCONFIRMED,
 	SCTP_UNKNOWN = 0xffff  /* Value used for transport state unknown */
@@ -1068,6 +1088,15 @@
 	__u16 spt_pathpfthld;
 };
 
+/* Use a new structure with spt_pathcpthld for back compatibility */
+struct sctp_paddrthlds_v2 {
+	sctp_assoc_t spt_assoc_id;
+	struct sockaddr_storage spt_address;
+	__u16 spt_pathmaxrxt;
+	__u16 spt_pathpfthld;
+	__u16 spt_pathcpthld;
+};
+
 /*
  * Socket Option for Getting the Association/Stream-Specific PR-SCTP Status
  */
diff --git a/original/uapi/linux/seccomp.h b/original/uapi/linux/seccomp.h
index 90734aa..be84d87 100644
--- a/original/uapi/linux/seccomp.h
+++ b/original/uapi/linux/seccomp.h
@@ -76,6 +76,35 @@
 	struct seccomp_data data;
 };
 
+/*
+ * Valid flags for struct seccomp_notif_resp
+ *
+ * Note, the SECCOMP_USER_NOTIF_FLAG_CONTINUE flag must be used with caution!
+ * If set by the process supervising the syscalls of another process the
+ * syscall will continue. This is problematic because of an inherent TOCTOU.
+ * An attacker can exploit the time while the supervised process is waiting on
+ * a response from the supervising process to rewrite syscall arguments which
+ * are passed as pointers of the intercepted syscall.
+ * It should be absolutely clear that this means that the seccomp notifier
+ * _cannot_ be used to implement a security policy! It should only ever be used
+ * in scenarios where a more privileged process supervises the syscalls of a
+ * lesser privileged process to get around kernel-enforced security
+ * restrictions when the privileged process deems this safe. In other words,
+ * in order to continue a syscall the supervising process should be sure that
+ * another security mechanism or the kernel itself will sufficiently block
+ * syscalls if arguments are rewritten to something unsafe.
+ *
+ * Similar precautions should be applied when stacking SECCOMP_RET_USER_NOTIF
+ * or SECCOMP_RET_TRACE. For SECCOMP_RET_USER_NOTIF filters acting on the
+ * same syscall, the most recently added filter takes precedence. This means
+ * that the new SECCOMP_RET_USER_NOTIF filter can override any
+ * SECCOMP_IOCTL_NOTIF_SEND from earlier filters, essentially allowing all
+ * such filtered syscalls to be executed by sending the response
+ * SECCOMP_USER_NOTIF_FLAG_CONTINUE. Note that SECCOMP_RET_TRACE can equally
+ * be overriden by SECCOMP_USER_NOTIF_FLAG_CONTINUE.
+ */
+#define SECCOMP_USER_NOTIF_FLAG_CONTINUE (1UL << 0)
+
 struct seccomp_notif_resp {
 	__u64 id;
 	__s64 val;
diff --git a/original/uapi/linux/sed-opal.h b/original/uapi/linux/sed-opal.h
index c6d035f..6f5af1a 100644
--- a/original/uapi/linux/sed-opal.h
+++ b/original/uapi/linux/sed-opal.h
@@ -113,6 +113,25 @@
 	__u64 size;
 };
 
+/* Opal table operations */
+enum opal_table_ops {
+	OPAL_READ_TABLE,
+	OPAL_WRITE_TABLE,
+};
+
+#define OPAL_UID_LENGTH 8
+struct opal_read_write_table {
+	struct opal_key key;
+	const __u64 data;
+	const __u8 table_uid[OPAL_UID_LENGTH];
+	__u64 offset;
+	__u64 size;
+#define OPAL_TABLE_READ (1 << OPAL_READ_TABLE)
+#define OPAL_TABLE_WRITE (1 << OPAL_WRITE_TABLE)
+	__u64 flags;
+	__u64 priv;
+};
+
 #define IOC_OPAL_SAVE		    _IOW('p', 220, struct opal_lock_unlock)
 #define IOC_OPAL_LOCK_UNLOCK	    _IOW('p', 221, struct opal_lock_unlock)
 #define IOC_OPAL_TAKE_OWNERSHIP	    _IOW('p', 222, struct opal_key)
@@ -128,5 +147,6 @@
 #define IOC_OPAL_PSID_REVERT_TPR    _IOW('p', 232, struct opal_key)
 #define IOC_OPAL_MBR_DONE           _IOW('p', 233, struct opal_mbr_done)
 #define IOC_OPAL_WRITE_SHADOW_MBR   _IOW('p', 234, struct opal_shadow_mbr)
+#define IOC_OPAL_GENERIC_TABLE_RW   _IOW('p', 235, struct opal_read_write_table)
 
 #endif /* _UAPI_SED_OPAL_H */
diff --git a/original/uapi/linux/sem.h b/original/uapi/linux/sem.h
index 39a1876..75aa3b2 100644
--- a/original/uapi/linux/sem.h
+++ b/original/uapi/linux/sem.h
@@ -24,8 +24,8 @@
 /* Obsolete, used only for backwards compatibility and libc5 compiles */
 struct semid_ds {
 	struct ipc_perm	sem_perm;		/* permissions .. see ipc.h */
-	__kernel_time_t	sem_otime;		/* last semop time */
-	__kernel_time_t	sem_ctime;		/* create/last semctl() time */
+	__kernel_old_time_t sem_otime;		/* last semop time */
+	__kernel_old_time_t sem_ctime;		/* create/last semctl() time */
 	struct sem	*sem_base;		/* ptr to first semaphore in array */
 	struct sem_queue *sem_pending;		/* pending operations to be processed */
 	struct sem_queue **sem_pending_last;	/* last pending operation */
diff --git a/original/uapi/linux/serial_core.h b/original/uapi/linux/serial_core.h
index e7fe550..8ec3dd7 100644
--- a/original/uapi/linux/serial_core.h
+++ b/original/uapi/linux/serial_core.h
@@ -290,7 +290,7 @@
 /* Sunix UART */
 #define PORT_SUNIX	121
 
-/* Freescale Linflex UART */
+/* Freescale LINFlexD UART */
 #define PORT_LINFLEXUART	122
 
 #endif /* _UAPILINUX_SERIAL_CORE_H */
diff --git a/original/uapi/linux/shm.h b/original/uapi/linux/shm.h
index 6507ad0..8d1f17a 100644
--- a/original/uapi/linux/shm.h
+++ b/original/uapi/linux/shm.h
@@ -28,9 +28,9 @@
 struct shmid_ds {
 	struct ipc_perm		shm_perm;	/* operation perms */
 	int			shm_segsz;	/* size of segment (bytes) */
-	__kernel_time_t		shm_atime;	/* last attach time */
-	__kernel_time_t		shm_dtime;	/* last detach time */
-	__kernel_time_t		shm_ctime;	/* last change time */
+	__kernel_old_time_t	shm_atime;	/* last attach time */
+	__kernel_old_time_t	shm_dtime;	/* last detach time */
+	__kernel_old_time_t	shm_ctime;	/* last change time */
 	__kernel_ipc_pid_t	shm_cpid;	/* pid of creator */
 	__kernel_ipc_pid_t	shm_lpid;	/* pid of last operator */
 	unsigned short		shm_nattch;	/* no. of current attaches */
diff --git a/original/uapi/linux/snmp.h b/original/uapi/linux/snmp.h
index 549a31c..7eee233 100644
--- a/original/uapi/linux/snmp.h
+++ b/original/uapi/linux/snmp.h
@@ -323,4 +323,21 @@
 	__LINUX_MIB_XFRMMAX
 };
 
+/* linux TLS mib definitions */
+enum
+{
+	LINUX_MIB_TLSNUM = 0,
+	LINUX_MIB_TLSCURRTXSW,			/* TlsCurrTxSw */
+	LINUX_MIB_TLSCURRRXSW,			/* TlsCurrRxSw */
+	LINUX_MIB_TLSCURRTXDEVICE,		/* TlsCurrTxDevice */
+	LINUX_MIB_TLSCURRRXDEVICE,		/* TlsCurrRxDevice */
+	LINUX_MIB_TLSTXSW,			/* TlsTxSw */
+	LINUX_MIB_TLSRXSW,			/* TlsRxSw */
+	LINUX_MIB_TLSTXDEVICE,			/* TlsTxDevice */
+	LINUX_MIB_TLSRXDEVICE,			/* TlsRxDevice */
+	LINUX_MIB_TLSDECRYPTERROR,		/* TlsDecryptError */
+	LINUX_MIB_TLSRXDEVICERESYNC,		/* TlsRxDeviceResync */
+	__LINUX_MIB_TLSMAX
+};
+
 #endif	/* _LINUX_SNMP_H */
diff --git a/original/uapi/linux/stat.h b/original/uapi/linux/stat.h
index 7b35e98..ad80a5c 100644
--- a/original/uapi/linux/stat.h
+++ b/original/uapi/linux/stat.h
@@ -167,8 +167,8 @@
 #define STATX_ATTR_APPEND		0x00000020 /* [I] File is append-only */
 #define STATX_ATTR_NODUMP		0x00000040 /* [I] File is not to be dumped */
 #define STATX_ATTR_ENCRYPTED		0x00000800 /* [I] File requires key to decrypt in fs */
-
 #define STATX_ATTR_AUTOMOUNT		0x00001000 /* Dir: Automount trigger */
+#define STATX_ATTR_VERITY		0x00100000 /* [I] Verity protected file */
 
 
 #endif /* _UAPI_LINUX_STAT_H */
diff --git a/original/uapi/linux/tc_act/tc_tunnel_key.h b/original/uapi/linux/tc_act/tc_tunnel_key.h
index 41c8b46..3f10dc4 100644
--- a/original/uapi/linux/tc_act/tc_tunnel_key.h
+++ b/original/uapi/linux/tc_act/tc_tunnel_key.h
@@ -50,6 +50,14 @@
 						 * TCA_TUNNEL_KEY_ENC_OPTS_
 						 * attributes
 						 */
+	TCA_TUNNEL_KEY_ENC_OPTS_VXLAN,		/* Nested
+						 * TCA_TUNNEL_KEY_ENC_OPTS_
+						 * attributes
+						 */
+	TCA_TUNNEL_KEY_ENC_OPTS_ERSPAN,		/* Nested
+						 * TCA_TUNNEL_KEY_ENC_OPTS_
+						 * attributes
+						 */
 	__TCA_TUNNEL_KEY_ENC_OPTS_MAX,
 };
 
@@ -67,4 +75,25 @@
 #define TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX \
 	(__TCA_TUNNEL_KEY_ENC_OPT_GENEVE_MAX - 1)
 
+enum {
+	TCA_TUNNEL_KEY_ENC_OPT_VXLAN_UNSPEC,
+	TCA_TUNNEL_KEY_ENC_OPT_VXLAN_GBP,		/* u32 */
+	__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX,
+};
+
+#define TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX \
+	(__TCA_TUNNEL_KEY_ENC_OPT_VXLAN_MAX - 1)
+
+enum {
+	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_UNSPEC,
+	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_VER,		/* u8 */
+	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_INDEX,		/* be32 */
+	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_DIR,		/* u8 */
+	TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_HWID,		/* u8 */
+	__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX,
+};
+
+#define TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX \
+	(__TCA_TUNNEL_KEY_ENC_OPT_ERSPAN_MAX - 1)
+
 #endif
diff --git a/original/uapi/linux/tcp.h b/original/uapi/linux/tcp.h
index 81e6979..74af1f7 100644
--- a/original/uapi/linux/tcp.h
+++ b/original/uapi/linux/tcp.h
@@ -155,6 +155,14 @@
 	TCP_QUEUES_NR,
 };
 
+/* why fastopen failed from client perspective */
+enum tcp_fastopen_client_fail {
+	TFO_STATUS_UNSPEC, /* catch-all */
+	TFO_COOKIE_UNAVAILABLE, /* if not in TFO_CLIENT_NO_COOKIE mode */
+	TFO_DATA_NOT_ACKED, /* SYN-ACK did not ack SYN data */
+	TFO_SYN_RETRANSMITTED, /* SYN-ACK did not ack SYN data after timeout */
+};
+
 /* for TCP_INFO socket option */
 #define TCPI_OPT_TIMESTAMPS	1
 #define TCPI_OPT_SACK		2
@@ -211,7 +219,7 @@
 	__u8	tcpi_backoff;
 	__u8	tcpi_options;
 	__u8	tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
-	__u8	tcpi_delivery_rate_app_limited:1;
+	__u8	tcpi_delivery_rate_app_limited:1, tcpi_fastopen_client_fail:2;
 
 	__u32	tcpi_rto;
 	__u32	tcpi_ato;
diff --git a/original/uapi/linux/time.h b/original/uapi/linux/time.h
index 958932e..a655aa2 100644
--- a/original/uapi/linux/time.h
+++ b/original/uapi/linux/time.h
@@ -8,13 +8,13 @@
 #ifndef _STRUCT_TIMESPEC
 #define _STRUCT_TIMESPEC
 struct timespec {
-	__kernel_time_t	tv_sec;			/* seconds */
-	long		tv_nsec;		/* nanoseconds */
+	__kernel_old_time_t	tv_sec;		/* seconds */
+	long			tv_nsec;	/* nanoseconds */
 };
 #endif
 
 struct timeval {
-	__kernel_time_t		tv_sec;		/* seconds */
+	__kernel_old_time_t	tv_sec;		/* seconds */
 	__kernel_suseconds_t	tv_usec;	/* microseconds */
 };
 
diff --git a/original/uapi/linux/time_types.h b/original/uapi/linux/time_types.h
index 27bfc8f..074e391 100644
--- a/original/uapi/linux/time_types.h
+++ b/original/uapi/linux/time_types.h
@@ -28,6 +28,11 @@
 };
 #endif
 
+struct __kernel_old_timespec {
+	__kernel_old_time_t	tv_sec;		/* seconds */
+	long			tv_nsec;	/* nanoseconds */
+};
+
 struct __kernel_sock_timeval {
 	__s64 tv_sec;
 	__s64 tv_usec;
diff --git a/original/uapi/linux/tipc.h b/original/uapi/linux/tipc.h
index 7df026e..add01db 100644
--- a/original/uapi/linux/tipc.h
+++ b/original/uapi/linux/tipc.h
@@ -191,6 +191,7 @@
 #define TIPC_GROUP_JOIN         135     /* Takes struct tipc_group_req* */
 #define TIPC_GROUP_LEAVE        136     /* No argument */
 #define TIPC_SOCK_RECVQ_USED    137     /* Default: none (read only) */
+#define TIPC_NODELAY            138     /* Default: false */
 
 /*
  * Flag values
@@ -232,6 +233,27 @@
 	char node_id[TIPC_NODEID_LEN];
 };
 
+/*
+ * TIPC Crypto, AEAD
+ */
+#define TIPC_AEAD_ALG_NAME		(32)
+
+struct tipc_aead_key {
+	char alg_name[TIPC_AEAD_ALG_NAME];
+	unsigned int keylen;	/* in bytes */
+	char key[];
+};
+
+#define TIPC_AEAD_KEYLEN_MIN		(16 + 4)
+#define TIPC_AEAD_KEYLEN_MAX		(32 + 4)
+#define TIPC_AEAD_KEY_SIZE_MAX		(sizeof(struct tipc_aead_key) + \
+							TIPC_AEAD_KEYLEN_MAX)
+
+static inline int tipc_aead_key_size(struct tipc_aead_key *key)
+{
+	return sizeof(*key) + key->keylen;
+}
+
 /* The macros and functions below are deprecated:
  */
 
diff --git a/original/uapi/linux/tipc_config.h b/original/uapi/linux/tipc_config.h
index 4955e1a..4dfc056 100644
--- a/original/uapi/linux/tipc_config.h
+++ b/original/uapi/linux/tipc_config.h
@@ -309,7 +309,7 @@
 	tlv_ptr->tlv_len  = htons(tlv_len);
 	if (len && data) {
 		memcpy(TLV_DATA(tlv_ptr), data, len);
-		memset(TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len);
+		memset((char *)TLV_DATA(tlv_ptr) + len, 0, TLV_SPACE(len) - tlv_len);
 	}
 	return TLV_SPACE(len);
 }
@@ -409,7 +409,7 @@
 	tcm_hdr->tcm_flags = htons(flags);
 	if (data_len && data) {
 		memcpy(TCM_DATA(msg), data, data_len);
-		memset(TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len);
+		memset((char *)TCM_DATA(msg) + data_len, 0, TCM_SPACE(data_len) - msg_len);
 	}
 	return TCM_SPACE(data_len);
 }
diff --git a/original/uapi/linux/tipc_netlink.h b/original/uapi/linux/tipc_netlink.h
index efb958f..6c2194a 100644
--- a/original/uapi/linux/tipc_netlink.h
+++ b/original/uapi/linux/tipc_netlink.h
@@ -63,6 +63,8 @@
 	TIPC_NL_PEER_REMOVE,
 	TIPC_NL_BEARER_ADD,
 	TIPC_NL_UDP_GET_REMOTEIP,
+	TIPC_NL_KEY_SET,
+	TIPC_NL_KEY_FLUSH,
 
 	__TIPC_NL_CMD_MAX,
 	TIPC_NL_CMD_MAX = __TIPC_NL_CMD_MAX - 1
@@ -160,6 +162,8 @@
 	TIPC_NLA_NODE_UNSPEC,
 	TIPC_NLA_NODE_ADDR,		/* u32 */
 	TIPC_NLA_NODE_UP,		/* flag */
+	TIPC_NLA_NODE_ID,		/* data */
+	TIPC_NLA_NODE_KEY,		/* data */
 
 	__TIPC_NLA_NODE_MAX,
 	TIPC_NLA_NODE_MAX = __TIPC_NLA_NODE_MAX - 1
diff --git a/original/uapi/linux/utime.h b/original/uapi/linux/utime.h
index fd9aa26..bc8f13e 100644
--- a/original/uapi/linux/utime.h
+++ b/original/uapi/linux/utime.h
@@ -5,8 +5,8 @@
 #include <linux/types.h>
 
 struct utimbuf {
-	__kernel_time_t actime;
-	__kernel_time_t modtime;
+	__kernel_old_time_t actime;
+	__kernel_old_time_t modtime;
 };
 
 #endif
diff --git a/original/uapi/linux/v4l2-controls.h b/original/uapi/linux/v4l2-controls.h
index a2669b7..5a7bede 100644
--- a/original/uapi/linux/v4l2-controls.h
+++ b/original/uapi/linux/v4l2-controls.h
@@ -1034,6 +1034,7 @@
 #define V4L2_CID_TEST_PATTERN_GREENR		(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 5)
 #define V4L2_CID_TEST_PATTERN_BLUE		(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB		(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
+#define V4L2_CID_UNIT_CELL_SIZE			(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
 
 
 /* Image processing controls */
diff --git a/original/uapi/linux/version.h b/original/uapi/linux/version.h
index 0bdb867..9004c23 100644
--- a/original/uapi/linux/version.h
+++ b/original/uapi/linux/version.h
@@ -1,2 +1,2 @@
-#define LINUX_VERSION_CODE 328704
+#define LINUX_VERSION_CODE 328960
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
diff --git a/original/uapi/linux/videodev2.h b/original/uapi/linux/videodev2.h
index ebb9755..169e210 100644
--- a/original/uapi/linux/videodev2.h
+++ b/original/uapi/linux/videodev2.h
@@ -422,6 +422,11 @@
 	__u32   denominator;
 };
 
+struct v4l2_area {
+	__u32   width;
+	__u32   height;
+};
+
 /**
   * struct v4l2_capability - Describes V4L2 device caps returned by VIDIOC_QUERYCAP
   *
@@ -755,6 +760,7 @@
 #define V4L2_META_FMT_VSP1_HGT    v4l2_fourcc('V', 'S', 'P', 'T') /* R-Car VSP1 2-D Histogram */
 #define V4L2_META_FMT_UVC         v4l2_fourcc('U', 'V', 'C', 'H') /* UVC Payload Header metadata */
 #define V4L2_META_FMT_D4XX        v4l2_fourcc('D', '4', 'X', 'X') /* D4XX Payload Header metadata */
+#define V4L2_META_FMT_VIVID	  v4l2_fourcc('V', 'I', 'V', 'D') /* Vivid Metadata */
 
 /* priv field value to indicates that subsequent fields are valid. */
 #define V4L2_PIX_FMT_PRIV_MAGIC		0xfeedcafe
@@ -915,11 +921,12 @@
 };
 
 /* capabilities for struct v4l2_requestbuffers and v4l2_create_buffers */
-#define V4L2_BUF_CAP_SUPPORTS_MMAP	(1 << 0)
-#define V4L2_BUF_CAP_SUPPORTS_USERPTR	(1 << 1)
-#define V4L2_BUF_CAP_SUPPORTS_DMABUF	(1 << 2)
-#define V4L2_BUF_CAP_SUPPORTS_REQUESTS	(1 << 3)
-#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS (1 << 4)
+#define V4L2_BUF_CAP_SUPPORTS_MMAP			(1 << 0)
+#define V4L2_BUF_CAP_SUPPORTS_USERPTR			(1 << 1)
+#define V4L2_BUF_CAP_SUPPORTS_DMABUF			(1 << 2)
+#define V4L2_BUF_CAP_SUPPORTS_REQUESTS			(1 << 3)
+#define V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS		(1 << 4)
+#define V4L2_BUF_CAP_SUPPORTS_M2M_HOLD_CAPTURE_BUF	(1 << 5)
 
 /**
  * struct v4l2_plane - plane info for multi-planar buffers
@@ -1044,6 +1051,8 @@
 #define V4L2_BUF_FLAG_IN_REQUEST		0x00000080
 /* timecode field is valid */
 #define V4L2_BUF_FLAG_TIMECODE			0x00000100
+/* Don't return the capture buffer until OUTPUT timestamp changes */
+#define V4L2_BUF_FLAG_M2M_HOLD_CAPTURE_BUF	0x00000200
 /* Buffer is prepared for queuing */
 #define V4L2_BUF_FLAG_PREPARED			0x00000400
 /* Cache handling flags */
@@ -1678,6 +1687,7 @@
 		__u8 __user *p_u8;
 		__u16 __user *p_u16;
 		__u32 __user *p_u32;
+		struct v4l2_area __user *p_area;
 		void __user *ptr;
 	};
 } __attribute__ ((packed));
@@ -1723,6 +1733,7 @@
 	V4L2_CTRL_TYPE_U8	     = 0x0100,
 	V4L2_CTRL_TYPE_U16	     = 0x0101,
 	V4L2_CTRL_TYPE_U32	     = 0x0102,
+	V4L2_CTRL_TYPE_AREA          = 0x0106,
 };
 
 /*  Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
@@ -1978,6 +1989,7 @@
 #define V4L2_DEC_CMD_STOP        (1)
 #define V4L2_DEC_CMD_PAUSE       (2)
 #define V4L2_DEC_CMD_RESUME      (3)
+#define V4L2_DEC_CMD_FLUSH       (4)
 
 /* Flags for V4L2_DEC_CMD_START */
 #define V4L2_DEC_CMD_START_MUTE_AUDIO	(1 << 0)
diff --git a/original/uapi/linux/virtio_ring.h b/original/uapi/linux/virtio_ring.h
index 4c4e24c..559f42e 100644
--- a/original/uapi/linux/virtio_ring.h
+++ b/original/uapi/linux/virtio_ring.h
@@ -169,7 +169,7 @@
 {
 	vr->num = num;
 	vr->desc = p;
-	vr->avail = p + num*sizeof(struct vring_desc);
+	vr->avail = (struct vring_avail *)((char *)p + num * sizeof(struct vring_desc));
 	vr->used = (void *)(((uintptr_t)&vr->avail->ring[num] + sizeof(__virtio16)
 		+ align-1) & ~(align - 1));
 }
diff --git a/original/uapi/misc/fastrpc.h b/original/uapi/misc/fastrpc.h
index fb792e8..07de2b7 100644
--- a/original/uapi/misc/fastrpc.h
+++ b/original/uapi/misc/fastrpc.h
@@ -10,6 +10,8 @@
 #define FASTRPC_IOCTL_INVOKE		_IOWR('R', 3, struct fastrpc_invoke)
 #define FASTRPC_IOCTL_INIT_ATTACH	_IO('R', 4)
 #define FASTRPC_IOCTL_INIT_CREATE	_IOWR('R', 5, struct fastrpc_init_create)
+#define FASTRPC_IOCTL_MMAP              _IOWR('R', 6, struct fastrpc_req_mmap)
+#define FASTRPC_IOCTL_MUNMAP            _IOWR('R', 7, struct fastrpc_req_munmap)
 
 struct fastrpc_invoke_args {
 	__u64 ptr;
@@ -38,4 +40,17 @@
 	__u64 size;	/* size */
 };
 
+struct fastrpc_req_mmap {
+	__s32 fd;
+	__u32 flags;	/* flags for dsp to map with */
+	__u64 vaddrin;	/* optional virtual address */
+	__u64 size;	/* size */
+	__u64 vaddrout;	/* dsp virtual address */
+};
+
+struct fastrpc_req_munmap {
+	__u64 vaddrout;	/* address to unmap */
+	__u64 size;	/* size */
+};
+
 #endif /* __QCOM_FASTRPC_H__ */
diff --git a/original/uapi/misc/habanalabs.h b/original/uapi/misc/habanalabs.h
index 39c4ea5..4faa2c9 100644
--- a/original/uapi/misc/habanalabs.h
+++ b/original/uapi/misc/habanalabs.h
@@ -88,13 +88,19 @@
  *                         internal engine.
  * HL_INFO_DEVICE_STATUS - Retrieve the device's status. This opcode doesn't
  *                         require an open context.
- * HL_INFO_DEVICE_UTILIZATION - Retrieve the total utilization of the device
- *                              over the last period specified by the user.
- *                              The period can be between 100ms to 1s, in
- *                              resolution of 100ms. The return value is a
- *                              percentage of the utilization rate.
+ * HL_INFO_DEVICE_UTILIZATION  - Retrieve the total utilization of the device
+ *                               over the last period specified by the user.
+ *                               The period can be between 100ms to 1s, in
+ *                               resolution of 100ms. The return value is a
+ *                               percentage of the utilization rate.
  * HL_INFO_HW_EVENTS_AGGREGATE - Receive an array describing how many times each
  *                               event occurred since the driver was loaded.
+ * HL_INFO_CLK_RATE            - Retrieve the current and maximum clock rate
+ *                               of the device in MHz. The maximum clock rate is
+ *                               configurable via sysfs parameter
+ * HL_INFO_RESET_COUNT   - Retrieve the counts of the soft and hard reset
+ *                         operations performed on the device since the last
+ *                         time the driver was loaded.
  */
 #define HL_INFO_HW_IP_INFO		0
 #define HL_INFO_HW_EVENTS		1
@@ -103,8 +109,11 @@
 #define HL_INFO_DEVICE_STATUS		4
 #define HL_INFO_DEVICE_UTILIZATION	6
 #define HL_INFO_HW_EVENTS_AGGREGATE	7
+#define HL_INFO_CLK_RATE		8
+#define HL_INFO_RESET_COUNT		9
 
 #define HL_INFO_VERSION_MAX_LEN	128
+#define HL_INFO_CARD_NAME_MAX_LEN	16
 
 struct hl_info_hw_ip_info {
 	__u64 sram_base_address;
@@ -123,6 +132,7 @@
 	__u8 dram_enabled;
 	__u8 pad[2];
 	__u8 armcp_version[HL_INFO_VERSION_MAX_LEN];
+	__u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
 };
 
 struct hl_info_dram_usage {
@@ -149,6 +159,16 @@
 	__u32 pad;
 };
 
+struct hl_info_clk_rate {
+	__u32 cur_clk_rate_mhz;
+	__u32 max_clk_rate_mhz;
+};
+
+struct hl_info_reset_count {
+	__u32 hard_reset_cnt;
+	__u32 soft_reset_cnt;
+};
+
 struct hl_info_args {
 	/* Location of relevant struct in userspace */
 	__u64 return_pointer;
@@ -181,13 +201,15 @@
 /* Opcode to destroy previously created command buffer */
 #define HL_CB_OP_DESTROY	1
 
+#define HL_MAX_CB_SIZE		0x200000	/* 2MB */
+
 struct hl_cb_in {
 	/* Handle of CB or 0 if we want to create one */
 	__u64 cb_handle;
 	/* HL_CB_OP_* */
 	__u32 op;
-	/* Size of CB. Maximum size is 2MB. The minimum size that will be
-	 * allocated, regardless of this parameter's value, is PAGE_SIZE
+	/* Size of CB. Maximum size is HL_MAX_CB_SIZE. The minimum size that
+	 * will be allocated, regardless of this parameter's value, is PAGE_SIZE
 	 */
 	__u32 cb_size;
 	/* Context ID - Currently not in use */
@@ -233,6 +255,8 @@
 
 #define HL_CS_STATUS_SUCCESS		0
 
+#define HL_MAX_JOBS_PER_CS		512
+
 struct hl_cs_in {
 	/* this holds address of array of hl_cs_chunk for restore phase */
 	__u64 chunks_restore;
@@ -242,9 +266,13 @@
 	 * Currently not in use
 	 */
 	__u64 chunks_store;
-	/* Number of chunks in restore phase array */
+	/* Number of chunks in restore phase array. Maximum number is
+	 * HL_MAX_JOBS_PER_CS
+	 */
 	__u32 num_chunks_restore;
-	/* Number of chunks in execution array */
+	/* Number of chunks in execution array. Maximum number is
+	 * HL_MAX_JOBS_PER_CS
+	 */
 	__u32 num_chunks_execute;
 	/* Number of chunks in restore phase array - Currently not in use */
 	__u32 num_chunks_store;
@@ -589,7 +617,7 @@
  *
  * The user can call this IOCTL with a handle it received from the CS IOCTL
  * to wait until the handle's CS has finished executing. The user will wait
- * inside the kernel until the CS has finished or until the user-requeusted
+ * inside the kernel until the CS has finished or until the user-requested
  * timeout has expired.
  *
  * The return value of the IOCTL is a standard Linux error code. The possible
diff --git a/original/uapi/rdma/cxgb3-abi.h b/original/uapi/rdma/cxgb3-abi.h
deleted file mode 100644
index 85aed67..0000000
--- a/original/uapi/rdma/cxgb3-abi.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
-/*
- * Copyright (c) 2006 Chelsio, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#ifndef CXGB3_ABI_USER_H
-#define CXGB3_ABI_USER_H
-
-#include <linux/types.h>
-
-#define IWCH_UVERBS_ABI_VERSION	1
-
-/*
- * Make sure that all structs defined in this file remain laid out so
- * that they pack the same way on 32-bit and 64-bit architectures (to
- * avoid incompatibility between 32-bit userspace and 64-bit kernels).
- * In particular do not use pointer types -- pass pointers in __aligned_u64
- * instead.
- */
-struct iwch_create_cq_req {
-	__aligned_u64 user_rptr_addr;
-};
-
-struct iwch_create_cq_resp_v0 {
-	__aligned_u64 key;
-	__u32 cqid;
-	__u32 size_log2;
-};
-
-struct iwch_create_cq_resp {
-	__aligned_u64 key;
-	__u32 cqid;
-	__u32 size_log2;
-	__u32 memsize;
-	__u32 reserved;
-};
-
-struct iwch_create_qp_resp {
-	__aligned_u64 key;
-	__aligned_u64 db_key;
-	__u32 qpid;
-	__u32 size_log2;
-	__u32 sq_size_log2;
-	__u32 rq_size_log2;
-};
-
-struct iwch_reg_user_mr_resp {
-	__u32 pbl_addr;
-};
-
-struct iwch_alloc_pd_resp {
-	__u32 pdid;
-};
-
-#endif /* CXGB3_ABI_USER_H */
diff --git a/original/uapi/rdma/efa-abi.h b/original/uapi/rdma/efa-abi.h
index 9599a2a..53b6e20 100644
--- a/original/uapi/rdma/efa-abi.h
+++ b/original/uapi/rdma/efa-abi.h
@@ -90,12 +90,18 @@
 	__u8 reserved_30[2];
 };
 
+enum {
+	EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
+};
+
 struct efa_ibv_ex_query_device_resp {
 	__u32 comp_mask;
 	__u32 max_sq_wr;
 	__u32 max_rq_wr;
 	__u16 max_sq_sge;
 	__u16 max_rq_sge;
+	__u32 max_rdma_size;
+	__u32 device_caps;
 };
 
 #endif /* EFA_ABI_USER_H */
diff --git a/original/uapi/rdma/ib_user_ioctl_verbs.h b/original/uapi/rdma/ib_user_ioctl_verbs.h
index 72c7fc7..9019b2d 100644
--- a/original/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/original/uapi/rdma/ib_user_ioctl_verbs.h
@@ -173,4 +173,26 @@
 	__u8  reserved[6];
 };
 
+enum rdma_driver_id {
+	RDMA_DRIVER_UNKNOWN,
+	RDMA_DRIVER_MLX5,
+	RDMA_DRIVER_MLX4,
+	RDMA_DRIVER_CXGB3,
+	RDMA_DRIVER_CXGB4,
+	RDMA_DRIVER_MTHCA,
+	RDMA_DRIVER_BNXT_RE,
+	RDMA_DRIVER_OCRDMA,
+	RDMA_DRIVER_NES,
+	RDMA_DRIVER_I40IW,
+	RDMA_DRIVER_VMW_PVRDMA,
+	RDMA_DRIVER_QEDR,
+	RDMA_DRIVER_HNS,
+	RDMA_DRIVER_USNIC,
+	RDMA_DRIVER_RXE,
+	RDMA_DRIVER_HFI1,
+	RDMA_DRIVER_QIB,
+	RDMA_DRIVER_EFA,
+	RDMA_DRIVER_SIW,
+};
+
 #endif
diff --git a/original/uapi/rdma/mlx5_user_ioctl_cmds.h b/original/uapi/rdma/mlx5_user_ioctl_cmds.h
index d0da070..20d8830 100644
--- a/original/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/original/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -198,6 +198,7 @@
 	MLX5_IB_ATTR_CREATE_FLOW_ARR_FLOW_ACTIONS,
 	MLX5_IB_ATTR_CREATE_FLOW_TAG,
 	MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX,
+	MLX5_IB_ATTR_CREATE_FLOW_ARR_COUNTERS_DEVX_OFFSET,
 };
 
 enum mlx5_ib_destoy_flow_attrs {
diff --git a/original/uapi/rdma/nes-abi.h b/original/uapi/rdma/nes-abi.h
deleted file mode 100644
index f80495b..0000000
--- a/original/uapi/rdma/nes-abi.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB) */
-/*
- * Copyright (c) 2006 - 2011 Intel Corporation.  All rights reserved.
- * Copyright (c) 2005 Topspin Communications.  All rights reserved.
- * Copyright (c) 2005 Cisco Systems.  All rights reserved.
- * Copyright (c) 2005 Open Grid Computing, Inc. All rights reserved.
- *
- * This software is available to you under a choice of one of two
- * licenses.  You may choose to be licensed under the terms of the GNU
- * General Public License (GPL) Version 2, available from the file
- * COPYING in the main directory of this source tree, or the
- * OpenIB.org BSD license below:
- *
- *     Redistribution and use in source and binary forms, with or
- *     without modification, are permitted provided that the following
- *     conditions are met:
- *
- *      - Redistributions of source code must retain the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer.
- *
- *      - Redistributions in binary form must reproduce the above
- *        copyright notice, this list of conditions and the following
- *        disclaimer in the documentation and/or other materials
- *        provided with the distribution.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
- * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
- * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- *
- */
-
-#ifndef NES_ABI_USER_H
-#define NES_ABI_USER_H
-
-#include <linux/types.h>
-
-#define NES_ABI_USERSPACE_VER 2
-#define NES_ABI_KERNEL_VER    2
-
-/*
- * Make sure that all structs defined in this file remain laid out so
- * that they pack the same way on 32-bit and 64-bit architectures (to
- * avoid incompatibility between 32-bit userspace and 64-bit kernels).
- * In particular do not use pointer types -- pass pointers in __u64
- * instead.
- */
-
-struct nes_alloc_ucontext_req {
-	__u32 reserved32;
-	__u8  userspace_ver;
-	__u8  reserved8[3];
-};
-
-struct nes_alloc_ucontext_resp {
-	__u32 max_pds; /* maximum pds allowed for this user process */
-	__u32 max_qps; /* maximum qps allowed for this user process */
-	__u32 wq_size; /* size of the WQs (sq+rq) allocated to the mmaped area */
-	__u8  virtwq;  /* flag to indicate if virtual WQ are to be used or not */
-	__u8  kernel_ver;
-	__u8  reserved[2];
-};
-
-struct nes_alloc_pd_resp {
-	__u32 pd_id;
-	__u32 mmap_db_index;
-};
-
-struct nes_create_cq_req {
-	__aligned_u64 user_cq_buffer;
-	__u32 mcrqf;
-	__u8 reserved[4];
-};
-
-struct nes_create_qp_req {
-	__aligned_u64 user_wqe_buffers;
-	__aligned_u64 user_qp_buffer;
-};
-
-enum iwnes_memreg_type {
-	IWNES_MEMREG_TYPE_MEM = 0x0000,
-	IWNES_MEMREG_TYPE_QP = 0x0001,
-	IWNES_MEMREG_TYPE_CQ = 0x0002,
-	IWNES_MEMREG_TYPE_MW = 0x0003,
-	IWNES_MEMREG_TYPE_FMR = 0x0004,
-	IWNES_MEMREG_TYPE_FMEM = 0x0005,
-};
-
-struct nes_mem_reg_req {
-	__u32 reg_type;	/* indicates if id is memory, QP or CQ */
-	__u32 reserved;
-};
-
-struct nes_create_cq_resp {
-	__u32 cq_id;
-	__u32 cq_size;
-	__u32 mmap_db_index;
-	__u32 reserved;
-};
-
-struct nes_create_qp_resp {
-	__u32 qp_id;
-	__u32 actual_sq_size;
-	__u32 actual_rq_size;
-	__u32 mmap_sq_db_index;
-	__u32 mmap_rq_db_index;
-	__u32 nes_drv_opt;
-};
-
-#endif	/* NES_ABI_USER_H */
diff --git a/original/uapi/rdma/qedr-abi.h b/original/uapi/rdma/qedr-abi.h
index 7a10b3a..c022ee2 100644
--- a/original/uapi/rdma/qedr-abi.h
+++ b/original/uapi/rdma/qedr-abi.h
@@ -38,6 +38,15 @@
 #define QEDR_ABI_VERSION		(8)
 
 /* user kernel communication data structures. */
+enum qedr_alloc_ucontext_flags {
+	QEDR_ALLOC_UCTX_RESERVED	= 1 << 0,
+	QEDR_ALLOC_UCTX_DB_REC		= 1 << 1
+};
+
+struct qedr_alloc_ucontext_req {
+	__u32 context_flags;
+	__u32 reserved;
+};
 
 struct qedr_alloc_ucontext_resp {
 	__aligned_u64 db_pa;
@@ -74,6 +83,7 @@
 	__u32 db_offset;
 	__u16 icid;
 	__u16 reserved;
+	__aligned_u64 db_rec_addr;
 };
 
 struct qedr_create_qp_ureq {
@@ -109,6 +119,13 @@
 
 	__u32 rq_db2_offset;
 	__u32 reserved;
+
+	/* address of SQ doorbell recovery user entry */
+	__aligned_u64 sq_db_rec_addr;
+
+	/* address of RQ doorbell recovery user entry */
+	__aligned_u64 rq_db_rec_addr;
+
 };
 
 struct qedr_create_srq_ureq {
@@ -128,4 +145,12 @@
 	__u32 reserved1;
 };
 
+/* doorbell recovery entry allocated and populated by userspace doorbelling
+ * entities and mapped to kernel. Kernel uses this to register doorbell
+ * information with doorbell drop recovery mechanism.
+ */
+struct qedr_user_db_rec {
+	__aligned_u64 db_data; /* doorbell data */
+};
+
 #endif /* __QEDR_USER_H__ */
diff --git a/original/uapi/rdma/rdma_user_ioctl_cmds.h b/original/uapi/rdma/rdma_user_ioctl_cmds.h
index b8bb285..7b1ec80 100644
--- a/original/uapi/rdma/rdma_user_ioctl_cmds.h
+++ b/original/uapi/rdma/rdma_user_ioctl_cmds.h
@@ -84,26 +84,4 @@
 	struct ib_uverbs_attr  attrs[0];
 };
 
-enum rdma_driver_id {
-	RDMA_DRIVER_UNKNOWN,
-	RDMA_DRIVER_MLX5,
-	RDMA_DRIVER_MLX4,
-	RDMA_DRIVER_CXGB3,
-	RDMA_DRIVER_CXGB4,
-	RDMA_DRIVER_MTHCA,
-	RDMA_DRIVER_BNXT_RE,
-	RDMA_DRIVER_OCRDMA,
-	RDMA_DRIVER_NES,
-	RDMA_DRIVER_I40IW,
-	RDMA_DRIVER_VMW_PVRDMA,
-	RDMA_DRIVER_QEDR,
-	RDMA_DRIVER_HNS,
-	RDMA_DRIVER_USNIC,
-	RDMA_DRIVER_RXE,
-	RDMA_DRIVER_HFI1,
-	RDMA_DRIVER_QIB,
-	RDMA_DRIVER_EFA,
-	RDMA_DRIVER_SIW,
-};
-
 #endif
diff --git a/original/uapi/rdma/vmw_pvrdma-abi.h b/original/uapi/rdma/vmw_pvrdma-abi.h
index 6e73f02..f8b638c 100644
--- a/original/uapi/rdma/vmw_pvrdma-abi.h
+++ b/original/uapi/rdma/vmw_pvrdma-abi.h
@@ -179,6 +179,11 @@
 	__aligned_u64 qp_addr;
 };
 
+struct pvrdma_create_qp_resp {
+	__u32 qpn;
+	__u32 qp_handle;
+};
+
 /* PVRDMA masked atomic compare and swap */
 struct pvrdma_ex_cmp_swap {
 	__aligned_u64 swap_val;
diff --git a/original/uapi/sound/compress_params.h b/original/uapi/sound/compress_params.h
index 3d4d6de..9c96fb0 100644
--- a/original/uapi/sound/compress_params.h
+++ b/original/uapi/sound/compress_params.h
@@ -317,12 +317,22 @@
 	__s32 reserved[15];	/* Can be used for SND_AUDIOCODEC_BESPOKE */
 } __attribute__((packed, aligned(4)));
 
+struct snd_dec_flac {
+	__u16 sample_size;
+	__u16 min_blk_size;
+	__u16 max_blk_size;
+	__u16 min_frame_size;
+	__u16 max_frame_size;
+	__u16 reserved;
+} __attribute__((packed, aligned(4)));
+
 union snd_codec_options {
 	struct snd_enc_wma wma;
 	struct snd_enc_vorbis vorbis;
 	struct snd_enc_real real;
 	struct snd_enc_flac flac;
 	struct snd_enc_generic generic;
+	struct snd_dec_flac flac_d;
 } __attribute__((packed, aligned(4)));
 
 /** struct snd_codec_desc - description of codec capabilities
diff --git a/original/uapi/sound/sof/abi.h b/original/uapi/sound/sof/abi.h
index a0fe0d4..ebfdc20 100644
--- a/original/uapi/sound/sof/abi.h
+++ b/original/uapi/sound/sof/abi.h
@@ -26,7 +26,7 @@
 
 /* SOF ABI version major, minor and patch numbers */
 #define SOF_ABI_MAJOR 3
-#define SOF_ABI_MINOR 10
+#define SOF_ABI_MINOR 11
 #define SOF_ABI_PATCH 0
 
 /* SOF ABI version number. Format within 32bit word is MMmmmppp */
diff --git a/original/uapi/sound/sof/tokens.h b/original/uapi/sound/sof/tokens.h
index 8f99685..76883e6 100644
--- a/original/uapi/sound/sof/tokens.h
+++ b/original/uapi/sound/sof/tokens.h
@@ -111,7 +111,14 @@
 /* TODO: Add SAI tokens */
 
 /* ESAI */
-#define SOF_TKN_IMX_ESAI_FIRST_TOKEN		1100
-/* TODO: Add ESAI tokens */
+#define SOF_TKN_IMX_ESAI_MCLK_ID		1100
+
+/* Stream */
+#define SOF_TKN_STREAM_PLAYBACK_COMPATIBLE_D0I3	1200
+#define SOF_TKN_STREAM_CAPTURE_COMPATIBLE_D0I3	1201
+
+/* Led control for mute switches */
+#define SOF_TKN_MUTE_LED_USE			1300
+#define SOF_TKN_MUTE_LED_DIRECTION		1301
 
 #endif