Snap for 8730993 from 39254bbbba81dadb8a50570136573d0362366089 to mainline-tzdata3-release

Change-Id: I0a7063dc7dc3924712cef766164b7362181d5559
diff --git a/modified/scsi/scsi.h b/modified/scsi/scsi.h
index 77ad18d..04b4e1c 100644
--- a/modified/scsi/scsi.h
+++ b/modified/scsi/scsi.h
@@ -14,7 +14,6 @@
 #include <scsi/scsi_common.h>
 #endif /* __KERNEL__ */
 #include <scsi/scsi_proto.h>
-#include <scsi/scsi_status.h>
 
 #ifdef __KERNEL__
 struct scsi_cmnd;
@@ -34,8 +33,34 @@
  * possible channels, (target) ids, or luns on a given shost.
  */
 #define SCAN_WILD_CARD	~0
+
+/** scsi_status_is_good - check the status return.
+ *
+ * @status: the status passed up from the driver (including host and
+ *          driver components)
+ *
+ * This returns true for known good conditions that may be treated as
+ * command completed normally
+ */
+static inline int scsi_status_is_good(int status)
+{
+	/*
+	 * FIXME: bit0 is listed as reserved in SCSI-2, but is
+	 * significant in SCSI-3.  For now, we follow the SCSI-2
+	 * behaviour and ignore reserved bits.
+	 */
+	status &= 0xfe;
+	return ((status == SAM_STAT_GOOD) ||
+		(status == SAM_STAT_CONDITION_MET) ||
+		/* Next two "intermediate" statuses are obsolete in SAM-4 */
+		(status == SAM_STAT_INTERMEDIATE) ||
+		(status == SAM_STAT_INTERMEDIATE_CONDITION_MET) ||
+		/* FIXME: this is obsolete in SAM-3 */
+		(status == SAM_STAT_COMMAND_TERMINATED));
+}
 #endif /* __KERNEL__ */
 
+
 /*
  * standard mode-select header prepended to all mode-select commands
  */
@@ -68,50 +93,111 @@
 {
 	return (lun & 0xff00) == SCSI_W_LUN_BASE;
 }
-
-/**
- * scsi_status_is_check_condition - check the status return.
- *
- * @status: the status passed up from the driver (including host and
- *          driver components)
- *
- * This returns true if the status code is SAM_STAT_CHECK_CONDITION.
- */
-static inline int scsi_status_is_check_condition(int status)
-{
-	if (status < 0)
-		return false;
-	status &= 0xfe;
-	return status == SAM_STAT_CHECK_CONDITION;
-}
 #endif /* __KERNEL__ */
 
+
 /*
- *  Extended message codes.
+ *  MESSAGE CODES
  */
 
+#define COMMAND_COMPLETE    0x00
+#define EXTENDED_MESSAGE    0x01
 #define     EXTENDED_MODIFY_DATA_POINTER    0x00
 #define     EXTENDED_SDTR                   0x01
 #define     EXTENDED_EXTENDED_IDENTIFY      0x02    /* SCSI-I only */
 #define     EXTENDED_WDTR                   0x03
 #define     EXTENDED_PPR                    0x04
 #define     EXTENDED_MODIFY_BIDI_DATA_PTR   0x05
+#define SAVE_POINTERS       0x02
+#define RESTORE_POINTERS    0x03
+#define DISCONNECT          0x04
+#define INITIATOR_ERROR     0x05
+#define ABORT_TASK_SET      0x06
+#define MESSAGE_REJECT      0x07
+#define NOP                 0x08
+#define MSG_PARITY_ERROR    0x09
+#define LINKED_CMD_COMPLETE 0x0a
+#define LINKED_FLG_CMD_COMPLETE 0x0b
+#define TARGET_RESET        0x0c
+#define ABORT_TASK          0x0d
+#define CLEAR_TASK_SET      0x0e
+#define INITIATE_RECOVERY   0x0f            /* SCSI-II only */
+#define RELEASE_RECOVERY    0x10            /* SCSI-II only */
+#define TERMINATE_IO_PROC   0x11            /* SCSI-II only */
+#define CLEAR_ACA           0x16
+#define LOGICAL_UNIT_RESET  0x17
+#define SIMPLE_QUEUE_TAG    0x20
+#define HEAD_OF_QUEUE_TAG   0x21
+#define ORDERED_QUEUE_TAG   0x22
+#define IGNORE_WIDE_RESIDUE 0x23
+#define ACA                 0x24
+#define QAS_REQUEST         0x55
+
+/* Old SCSI2 names, don't use in new code */
+#define BUS_DEVICE_RESET    TARGET_RESET
+#define ABORT               ABORT_TASK_SET
 
 #ifdef __KERNEL__
 /*
+ * Host byte codes
+ */
+
+#define DID_OK          0x00	/* NO error                                */
+#define DID_NO_CONNECT  0x01	/* Couldn't connect before timeout period  */
+#define DID_BUS_BUSY    0x02	/* BUS stayed busy through time out period */
+#define DID_TIME_OUT    0x03	/* TIMED OUT for other reason              */
+#define DID_BAD_TARGET  0x04	/* BAD target.                             */
+#define DID_ABORT       0x05	/* Told to abort for some other reason     */
+#define DID_PARITY      0x06	/* Parity error                            */
+#define DID_ERROR       0x07	/* Internal error                          */
+#define DID_RESET       0x08	/* Reset by somebody.                      */
+#define DID_BAD_INTR    0x09	/* Got an interrupt we weren't expecting.  */
+#define DID_PASSTHROUGH 0x0a	/* Force command past mid-layer            */
+#define DID_SOFT_ERROR  0x0b	/* The low level driver just wish a retry  */
+#define DID_IMM_RETRY   0x0c	/* Retry without decrementing retry count  */
+#define DID_REQUEUE	0x0d	/* Requeue command (no immediate retry) also
+				 * without decrementing the retry count	   */
+#define DID_TRANSPORT_DISRUPTED 0x0e /* Transport error disrupted execution
+				      * and the driver blocked the port to
+				      * recover the link. Transport class will
+				      * retry or fail IO */
+#define DID_TRANSPORT_FAILFAST	0x0f /* Transport class fastfailed the io */
+#define DID_TARGET_FAILURE 0x10 /* Permanent target failure, do not retry on
+				 * other paths */
+#define DID_NEXUS_FAILURE 0x11  /* Permanent nexus failure, retry on other
+				 * paths might yield different results */
+#define DID_ALLOC_FAILURE 0x12  /* Space allocation on the device failed */
+#define DID_MEDIUM_ERROR  0x13  /* Medium error */
+#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */
+#define DRIVER_OK       0x00	/* Driver status                           */
+
+/*
+ *  These indicate the error that occurred, and what is available.
+ */
+
+#define DRIVER_BUSY         0x01
+#define DRIVER_SOFT         0x02
+#define DRIVER_MEDIA        0x03
+#define DRIVER_ERROR        0x04
+
+#define DRIVER_INVALID      0x05
+#define DRIVER_TIMEOUT      0x06
+#define DRIVER_HARD         0x07
+#define DRIVER_SENSE	    0x08
+
+/*
  * Internal return values.
  */
-enum scsi_disposition {
-	NEEDS_RETRY		= 0x2001,
-	SUCCESS			= 0x2002,
-	FAILED			= 0x2003,
-	QUEUED			= 0x2004,
-	SOFT_ERROR		= 0x2005,
-	ADD_TO_MLQUEUE		= 0x2006,
-	TIMEOUT_ERROR		= 0x2007,
-	SCSI_RETURN_NOT_HANDLED	= 0x2008,
-	FAST_IO_FAIL		= 0x2009,
-};
+
+#define NEEDS_RETRY     0x2001
+#define SUCCESS         0x2002
+#define FAILED          0x2003
+#define QUEUED          0x2004
+#define SOFT_ERROR      0x2005
+#define ADD_TO_MLQUEUE  0x2006
+#define TIMEOUT_ERROR   0x2007
+#define SCSI_RETURN_NOT_HANDLED   0x2008
+#define FAST_IO_FAIL	0x2009
 
 /*
  * Midlevel queue return values.
@@ -127,10 +213,14 @@
  *  These are set by:
  *
  *      status byte = set from target device
- *      msg_byte    (unused)
+ *      msg_byte    = return status from host adapter itself.
  *      host_byte   = set by low-level driver to indicate status.
+ *      driver_byte = set by mid-level.
  */
+#define status_byte(result) (((result) >> 1) & 0x7f)
+#define msg_byte(result)    (((result) >> 8) & 0xff)
 #define host_byte(result)   (((result) >> 16) & 0xff)
+#define driver_byte(result) (((result) >> 24) & 0xff)
 
 #define sense_class(sense)  (((sense) >> 4) & 0x7)
 #define sense_error(sense)  ((sense) & 0xf)
@@ -195,35 +285,4 @@
 /* Used to obtain the PCI location of a device */
 #define SCSI_IOCTL_GET_PCI		0x5387
 
-/** scsi_status_is_good - check the status return.
- *
- * @status: the status passed up from the driver (including host and
- *          driver components)
- *
- * This returns true for known good conditions that may be treated as
- * command completed normally
- */
-static inline bool scsi_status_is_good(int status)
-{
-	if (status < 0)
-		return false;
-
-	if (host_byte(status) == DID_NO_CONNECT)
-		return false;
-
-	/*
-	 * FIXME: bit0 is listed as reserved in SCSI-2, but is
-	 * significant in SCSI-3.  For now, we follow the SCSI-2
-	 * behaviour and ignore reserved bits.
-	 */
-	status &= 0xfe;
-	return ((status == SAM_STAT_GOOD) ||
-		(status == SAM_STAT_CONDITION_MET) ||
-		/* Next two "intermediate" statuses are obsolete in SAM-4 */
-		(status == SAM_STAT_INTERMEDIATE) ||
-		(status == SAM_STAT_INTERMEDIATE_CONDITION_MET) ||
-		/* FIXME: this is obsolete in SAM-3 */
-		(status == SAM_STAT_COMMAND_TERMINATED));
-}
-
 #endif /* _SCSI_SCSI_H */
diff --git a/modified/scsi/scsi_proto.h b/modified/scsi/scsi_proto.h
index 3b9519b..a351801 100644
--- a/modified/scsi/scsi_proto.h
+++ b/modified/scsi/scsi_proto.h
@@ -191,22 +191,40 @@
  *  SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft
  *  T10/1561-D Revision 4 Draft dated 7th November 2002.
  */
-enum sam_status {
-	SAM_STAT_GOOD				= 0x00,
-	SAM_STAT_CHECK_CONDITION		= 0x02,
-	SAM_STAT_CONDITION_MET			= 0x04,
-	SAM_STAT_BUSY				= 0x08,
-	SAM_STAT_INTERMEDIATE			= 0x10,
-	SAM_STAT_INTERMEDIATE_CONDITION_MET	= 0x14,
-	SAM_STAT_RESERVATION_CONFLICT		= 0x18,
-	SAM_STAT_COMMAND_TERMINATED		= 0x22,	/* obsolete in SAM-3 */
-	SAM_STAT_TASK_SET_FULL			= 0x28,
-	SAM_STAT_ACA_ACTIVE			= 0x30,
-	SAM_STAT_TASK_ABORTED			= 0x40,
-};
+#define SAM_STAT_GOOD            0x00
+#define SAM_STAT_CHECK_CONDITION 0x02
+#define SAM_STAT_CONDITION_MET   0x04
+#define SAM_STAT_BUSY            0x08
+#define SAM_STAT_INTERMEDIATE    0x10
+#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14
+#define SAM_STAT_RESERVATION_CONFLICT 0x18
+#define SAM_STAT_COMMAND_TERMINATED 0x22	/* obsolete in SAM-3 */
+#define SAM_STAT_TASK_SET_FULL   0x28
+#define SAM_STAT_ACA_ACTIVE      0x30
+#define SAM_STAT_TASK_ABORTED    0x40
 #endif /* __KERNEL__ */
 
-#define STATUS_MASK         0xfe
+/*
+ *  Status codes. These are deprecated as they are shifted 1 bit right
+ *  from those found in the SCSI standards. This causes confusion for
+ *  applications that are ported to several OSes. Prefer SAM Status codes
+ *  above.
+ */
+
+#define GOOD                 0x00
+#define CHECK_CONDITION      0x01
+#define CONDITION_GOOD       0x02
+#define BUSY                 0x04
+#define INTERMEDIATE_GOOD    0x08
+#define INTERMEDIATE_C_GOOD  0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED   0x11
+#define QUEUE_FULL           0x14
+#define ACA_ACTIVE           0x18
+#define TASK_ABORTED         0x20
+
+#define STATUS_MASK          0xfe
+
 /*
  *  SENSE KEYS
  */
@@ -327,16 +345,4 @@
 	ZBC_ZONE_COND_OFFLINE		= 0xf,
 };
 
-/* Version descriptor values for INQUIRY */
-enum scsi_version_descriptor {
-	SCSI_VERSION_DESCRIPTOR_FCP4	= 0x0a40,
-	SCSI_VERSION_DESCRIPTOR_ISCSI	= 0x0960,
-	SCSI_VERSION_DESCRIPTOR_SAM5	= 0x00a0,
-	SCSI_VERSION_DESCRIPTOR_SAS3	= 0x0c60,
-	SCSI_VERSION_DESCRIPTOR_SBC3	= 0x04c0,
-	SCSI_VERSION_DESCRIPTOR_SBP3	= 0x0980,
-	SCSI_VERSION_DESCRIPTOR_SPC4	= 0x0460,
-	SCSI_VERSION_DESCRIPTOR_SRP	= 0x0940
-};
-
 #endif /* _SCSI_PROTO_H_ */
diff --git a/modified/scsi/scsi_status.h b/modified/scsi/scsi_status.h
deleted file mode 100644
index d916e31..0000000
--- a/modified/scsi/scsi_status.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-
-#ifndef _SCSI_SCSI_STATUS_H
-#define _SCSI_SCSI_STATUS_H
-
-#include <linux/types.h>
-#include <scsi/scsi_proto.h>
-
-#ifdef __KERNEL__
-/* Message codes. */
-enum scsi_msg_byte {
-	COMMAND_COMPLETE	= 0x00,
-	EXTENDED_MESSAGE	= 0x01,
-	SAVE_POINTERS		= 0x02,
-	RESTORE_POINTERS	= 0x03,
-	DISCONNECT		= 0x04,
-	INITIATOR_ERROR		= 0x05,
-	ABORT_TASK_SET		= 0x06,
-	MESSAGE_REJECT		= 0x07,
-	NOP			= 0x08,
-	MSG_PARITY_ERROR	= 0x09,
-	LINKED_CMD_COMPLETE	= 0x0a,
-	LINKED_FLG_CMD_COMPLETE	= 0x0b,
-	TARGET_RESET		= 0x0c,
-	ABORT_TASK		= 0x0d,
-	CLEAR_TASK_SET		= 0x0e,
-	INITIATE_RECOVERY	= 0x0f,            /* SCSI-II only */
-	RELEASE_RECOVERY	= 0x10,            /* SCSI-II only */
-	TERMINATE_IO_PROC	= 0x11,            /* SCSI-II only */
-	CLEAR_ACA		= 0x16,
-	LOGICAL_UNIT_RESET	= 0x17,
-	SIMPLE_QUEUE_TAG	= 0x20,
-	HEAD_OF_QUEUE_TAG	= 0x21,
-	ORDERED_QUEUE_TAG	= 0x22,
-	IGNORE_WIDE_RESIDUE	= 0x23,
-	ACA			= 0x24,
-	QAS_REQUEST		= 0x55,
-
-	/* Old SCSI2 names, don't use in new code */
-	BUS_DEVICE_RESET	= TARGET_RESET,
-	ABORT			= ABORT_TASK_SET,
-};
-
-/* Host byte codes. */
-enum scsi_host_status {
-	DID_OK		= 0x00,	/* NO error                                */
-	DID_NO_CONNECT	= 0x01,	/* Couldn't connect before timeout period  */
-	DID_BUS_BUSY	= 0x02,	/* BUS stayed busy through time out period */
-	DID_TIME_OUT	= 0x03,	/* TIMED OUT for other reason              */
-	DID_BAD_TARGET	= 0x04,	/* BAD target.                             */
-	DID_ABORT	= 0x05,	/* Told to abort for some other reason     */
-	DID_PARITY	= 0x06,	/* Parity error                            */
-	DID_ERROR	= 0x07,	/* Internal error                          */
-	DID_RESET	= 0x08,	/* Reset by somebody.                      */
-	DID_BAD_INTR	= 0x09,	/* Got an interrupt we weren't expecting.  */
-	DID_PASSTHROUGH	= 0x0a,	/* Force command past mid-layer            */
-	DID_SOFT_ERROR	= 0x0b,	/* The low level driver just wish a retry  */
-	DID_IMM_RETRY	= 0x0c,	/* Retry without decrementing retry count  */
-	DID_REQUEUE	= 0x0d,	/* Requeue command (no immediate retry) also
-				 * without decrementing the retry count	   */
-	DID_TRANSPORT_DISRUPTED = 0x0e, /* Transport error disrupted execution
-					 * and the driver blocked the port to
-					 * recover the link. Transport class will
-					 * retry or fail IO */
-	DID_TRANSPORT_FAILFAST = 0x0f, /* Transport class fastfailed the io */
-	DID_TARGET_FAILURE = 0x10, /* Permanent target failure, do not retry on
-				    * other paths */
-	DID_NEXUS_FAILURE = 0x11,  /* Permanent nexus failure, retry on other
-				    * paths might yield different results */
-	DID_ALLOC_FAILURE = 0x12,  /* Space allocation on the device failed */
-	DID_MEDIUM_ERROR = 0x13,  /* Medium error */
-	DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */
-};
-#endif /* __KERNEL__ */
-
-#endif /* _SCSI_SCSI_STATUS_H */
diff --git a/original/scsi/scsi.h b/original/scsi/scsi.h
index 3e46859..e75cca2 100644
--- a/original/scsi/scsi.h
+++ b/original/scsi/scsi.h
@@ -11,7 +11,6 @@
 #include <linux/kernel.h>
 #include <scsi/scsi_common.h>
 #include <scsi/scsi_proto.h>
-#include <scsi/scsi_status.h>
 
 struct scsi_cmnd;
 
@@ -31,6 +30,32 @@
  */
 #define SCAN_WILD_CARD	~0
 
+/** scsi_status_is_good - check the status return.
+ *
+ * @status: the status passed up from the driver (including host and
+ *          driver components)
+ *
+ * This returns true for known good conditions that may be treated as
+ * command completed normally
+ */
+static inline int scsi_status_is_good(int status)
+{
+	/*
+	 * FIXME: bit0 is listed as reserved in SCSI-2, but is
+	 * significant in SCSI-3.  For now, we follow the SCSI-2
+	 * behaviour and ignore reserved bits.
+	 */
+	status &= 0xfe;
+	return ((status == SAM_STAT_GOOD) ||
+		(status == SAM_STAT_CONDITION_MET) ||
+		/* Next two "intermediate" statuses are obsolete in SAM-4 */
+		(status == SAM_STAT_INTERMEDIATE) ||
+		(status == SAM_STAT_INTERMEDIATE_CONDITION_MET) ||
+		/* FIXME: this is obsolete in SAM-3 */
+		(status == SAM_STAT_COMMAND_TERMINATED));
+}
+
+
 /*
  * standard mode-select header prepended to all mode-select commands
  */
@@ -63,46 +88,108 @@
 	return (lun & 0xff00) == SCSI_W_LUN_BASE;
 }
 
-/**
- * scsi_status_is_check_condition - check the status return.
- *
- * @status: the status passed up from the driver (including host and
- *          driver components)
- *
- * This returns true if the status code is SAM_STAT_CHECK_CONDITION.
- */
-static inline int scsi_status_is_check_condition(int status)
-{
-	if (status < 0)
-		return false;
-	status &= 0xfe;
-	return status == SAM_STAT_CHECK_CONDITION;
-}
 
 /*
- *  Extended message codes.
+ *  MESSAGE CODES
  */
+
+#define COMMAND_COMPLETE    0x00
+#define EXTENDED_MESSAGE    0x01
 #define     EXTENDED_MODIFY_DATA_POINTER    0x00
 #define     EXTENDED_SDTR                   0x01
 #define     EXTENDED_EXTENDED_IDENTIFY      0x02    /* SCSI-I only */
 #define     EXTENDED_WDTR                   0x03
 #define     EXTENDED_PPR                    0x04
 #define     EXTENDED_MODIFY_BIDI_DATA_PTR   0x05
+#define SAVE_POINTERS       0x02
+#define RESTORE_POINTERS    0x03
+#define DISCONNECT          0x04
+#define INITIATOR_ERROR     0x05
+#define ABORT_TASK_SET      0x06
+#define MESSAGE_REJECT      0x07
+#define NOP                 0x08
+#define MSG_PARITY_ERROR    0x09
+#define LINKED_CMD_COMPLETE 0x0a
+#define LINKED_FLG_CMD_COMPLETE 0x0b
+#define TARGET_RESET        0x0c
+#define ABORT_TASK          0x0d
+#define CLEAR_TASK_SET      0x0e
+#define INITIATE_RECOVERY   0x0f            /* SCSI-II only */
+#define RELEASE_RECOVERY    0x10            /* SCSI-II only */
+#define TERMINATE_IO_PROC   0x11            /* SCSI-II only */
+#define CLEAR_ACA           0x16
+#define LOGICAL_UNIT_RESET  0x17
+#define SIMPLE_QUEUE_TAG    0x20
+#define HEAD_OF_QUEUE_TAG   0x21
+#define ORDERED_QUEUE_TAG   0x22
+#define IGNORE_WIDE_RESIDUE 0x23
+#define ACA                 0x24
+#define QAS_REQUEST         0x55
+
+/* Old SCSI2 names, don't use in new code */
+#define BUS_DEVICE_RESET    TARGET_RESET
+#define ABORT               ABORT_TASK_SET
+
+/*
+ * Host byte codes
+ */
+
+#define DID_OK          0x00	/* NO error                                */
+#define DID_NO_CONNECT  0x01	/* Couldn't connect before timeout period  */
+#define DID_BUS_BUSY    0x02	/* BUS stayed busy through time out period */
+#define DID_TIME_OUT    0x03	/* TIMED OUT for other reason              */
+#define DID_BAD_TARGET  0x04	/* BAD target.                             */
+#define DID_ABORT       0x05	/* Told to abort for some other reason     */
+#define DID_PARITY      0x06	/* Parity error                            */
+#define DID_ERROR       0x07	/* Internal error                          */
+#define DID_RESET       0x08	/* Reset by somebody.                      */
+#define DID_BAD_INTR    0x09	/* Got an interrupt we weren't expecting.  */
+#define DID_PASSTHROUGH 0x0a	/* Force command past mid-layer            */
+#define DID_SOFT_ERROR  0x0b	/* The low level driver just wish a retry  */
+#define DID_IMM_RETRY   0x0c	/* Retry without decrementing retry count  */
+#define DID_REQUEUE	0x0d	/* Requeue command (no immediate retry) also
+				 * without decrementing the retry count	   */
+#define DID_TRANSPORT_DISRUPTED 0x0e /* Transport error disrupted execution
+				      * and the driver blocked the port to
+				      * recover the link. Transport class will
+				      * retry or fail IO */
+#define DID_TRANSPORT_FAILFAST	0x0f /* Transport class fastfailed the io */
+#define DID_TARGET_FAILURE 0x10 /* Permanent target failure, do not retry on
+				 * other paths */
+#define DID_NEXUS_FAILURE 0x11  /* Permanent nexus failure, retry on other
+				 * paths might yield different results */
+#define DID_ALLOC_FAILURE 0x12  /* Space allocation on the device failed */
+#define DID_MEDIUM_ERROR  0x13  /* Medium error */
+#define DID_TRANSPORT_MARGINAL 0x14 /* Transport marginal errors */
+#define DRIVER_OK       0x00	/* Driver status                           */
+
+/*
+ *  These indicate the error that occurred, and what is available.
+ */
+
+#define DRIVER_BUSY         0x01
+#define DRIVER_SOFT         0x02
+#define DRIVER_MEDIA        0x03
+#define DRIVER_ERROR        0x04
+
+#define DRIVER_INVALID      0x05
+#define DRIVER_TIMEOUT      0x06
+#define DRIVER_HARD         0x07
+#define DRIVER_SENSE	    0x08
 
 /*
  * Internal return values.
  */
-enum scsi_disposition {
-	NEEDS_RETRY		= 0x2001,
-	SUCCESS			= 0x2002,
-	FAILED			= 0x2003,
-	QUEUED			= 0x2004,
-	SOFT_ERROR		= 0x2005,
-	ADD_TO_MLQUEUE		= 0x2006,
-	TIMEOUT_ERROR		= 0x2007,
-	SCSI_RETURN_NOT_HANDLED	= 0x2008,
-	FAST_IO_FAIL		= 0x2009,
-};
+
+#define NEEDS_RETRY     0x2001
+#define SUCCESS         0x2002
+#define FAILED          0x2003
+#define QUEUED          0x2004
+#define SOFT_ERROR      0x2005
+#define ADD_TO_MLQUEUE  0x2006
+#define TIMEOUT_ERROR   0x2007
+#define SCSI_RETURN_NOT_HANDLED   0x2008
+#define FAST_IO_FAIL	0x2009
 
 /*
  * Midlevel queue return values.
@@ -118,10 +205,14 @@
  *  These are set by:
  *
  *      status byte = set from target device
- *      msg_byte    (unused)
+ *      msg_byte    = return status from host adapter itself.
  *      host_byte   = set by low-level driver to indicate status.
+ *      driver_byte = set by mid-level.
  */
+#define status_byte(result) (((result) >> 1) & 0x7f)
+#define msg_byte(result)    (((result) >> 8) & 0xff)
 #define host_byte(result)   (((result) >> 16) & 0xff)
+#define driver_byte(result) (((result) >> 24) & 0xff)
 
 #define sense_class(sense)  (((sense) >> 4) & 0x7)
 #define sense_error(sense)  ((sense) & 0xf)
@@ -185,35 +276,4 @@
 /* Used to obtain the PCI location of a device */
 #define SCSI_IOCTL_GET_PCI		0x5387
 
-/** scsi_status_is_good - check the status return.
- *
- * @status: the status passed up from the driver (including host and
- *          driver components)
- *
- * This returns true for known good conditions that may be treated as
- * command completed normally
- */
-static inline bool scsi_status_is_good(int status)
-{
-	if (status < 0)
-		return false;
-
-	if (host_byte(status) == DID_NO_CONNECT)
-		return false;
-
-	/*
-	 * FIXME: bit0 is listed as reserved in SCSI-2, but is
-	 * significant in SCSI-3.  For now, we follow the SCSI-2
-	 * behaviour and ignore reserved bits.
-	 */
-	status &= 0xfe;
-	return ((status == SAM_STAT_GOOD) ||
-		(status == SAM_STAT_CONDITION_MET) ||
-		/* Next two "intermediate" statuses are obsolete in SAM-4 */
-		(status == SAM_STAT_INTERMEDIATE) ||
-		(status == SAM_STAT_INTERMEDIATE_CONDITION_MET) ||
-		/* FIXME: this is obsolete in SAM-3 */
-		(status == SAM_STAT_COMMAND_TERMINATED));
-}
-
 #endif /* _SCSI_SCSI_H */
diff --git a/original/scsi/scsi_ioctl.h b/original/scsi/scsi_ioctl.h
index beac64e..b465799 100644
--- a/original/scsi/scsi_ioctl.h
+++ b/original/scsi/scsi_ioctl.h
@@ -18,9 +18,7 @@
 
 #ifdef __KERNEL__
 
-struct gendisk;
 struct scsi_device;
-struct sg_io_hdr;
 
 /*
  * Structures used for scsi_ioctl et al.
@@ -45,11 +43,8 @@
 
 int scsi_ioctl_block_when_processing_errors(struct scsi_device *sdev,
 		int cmd, bool ndelay);
-int scsi_ioctl(struct scsi_device *sdev, fmode_t mode, int cmd,
-		void __user *arg);
-int get_sg_io_hdr(struct sg_io_hdr *hdr, const void __user *argp);
-int put_sg_io_hdr(const struct sg_io_hdr *hdr, void __user *argp);
-bool scsi_cmd_allowed(unsigned char *cmd, fmode_t mode);
+extern int scsi_ioctl(struct scsi_device *, int, void __user *);
+extern int scsi_compat_ioctl(struct scsi_device *sdev, int cmd, void __user *arg);
 
 #endif /* __KERNEL__ */
 #endif /* _SCSI_IOCTL_H */
diff --git a/original/scsi/scsi_proto.h b/original/scsi/scsi_proto.h
index f017843..c368601 100644
--- a/original/scsi/scsi_proto.h
+++ b/original/scsi/scsi_proto.h
@@ -190,21 +190,39 @@
  *  SCSI Architecture Model (SAM) Status codes. Taken from SAM-3 draft
  *  T10/1561-D Revision 4 Draft dated 7th November 2002.
  */
-enum sam_status {
-	SAM_STAT_GOOD				= 0x00,
-	SAM_STAT_CHECK_CONDITION		= 0x02,
-	SAM_STAT_CONDITION_MET			= 0x04,
-	SAM_STAT_BUSY				= 0x08,
-	SAM_STAT_INTERMEDIATE			= 0x10,
-	SAM_STAT_INTERMEDIATE_CONDITION_MET	= 0x14,
-	SAM_STAT_RESERVATION_CONFLICT		= 0x18,
-	SAM_STAT_COMMAND_TERMINATED		= 0x22,	/* obsolete in SAM-3 */
-	SAM_STAT_TASK_SET_FULL			= 0x28,
-	SAM_STAT_ACA_ACTIVE			= 0x30,
-	SAM_STAT_TASK_ABORTED			= 0x40,
-};
+#define SAM_STAT_GOOD            0x00
+#define SAM_STAT_CHECK_CONDITION 0x02
+#define SAM_STAT_CONDITION_MET   0x04
+#define SAM_STAT_BUSY            0x08
+#define SAM_STAT_INTERMEDIATE    0x10
+#define SAM_STAT_INTERMEDIATE_CONDITION_MET 0x14
+#define SAM_STAT_RESERVATION_CONFLICT 0x18
+#define SAM_STAT_COMMAND_TERMINATED 0x22	/* obsolete in SAM-3 */
+#define SAM_STAT_TASK_SET_FULL   0x28
+#define SAM_STAT_ACA_ACTIVE      0x30
+#define SAM_STAT_TASK_ABORTED    0x40
 
-#define STATUS_MASK         0xfe
+/*
+ *  Status codes. These are deprecated as they are shifted 1 bit right
+ *  from those found in the SCSI standards. This causes confusion for
+ *  applications that are ported to several OSes. Prefer SAM Status codes
+ *  above.
+ */
+
+#define GOOD                 0x00
+#define CHECK_CONDITION      0x01
+#define CONDITION_GOOD       0x02
+#define BUSY                 0x04
+#define INTERMEDIATE_GOOD    0x08
+#define INTERMEDIATE_C_GOOD  0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED   0x11
+#define QUEUE_FULL           0x14
+#define ACA_ACTIVE           0x18
+#define TASK_ABORTED         0x20
+
+#define STATUS_MASK          0xfe
+
 /*
  *  SENSE KEYS
  */
@@ -323,16 +341,4 @@
 	ZBC_ZONE_COND_OFFLINE		= 0xf,
 };
 
-/* Version descriptor values for INQUIRY */
-enum scsi_version_descriptor {
-	SCSI_VERSION_DESCRIPTOR_FCP4	= 0x0a40,
-	SCSI_VERSION_DESCRIPTOR_ISCSI	= 0x0960,
-	SCSI_VERSION_DESCRIPTOR_SAM5	= 0x00a0,
-	SCSI_VERSION_DESCRIPTOR_SAS3	= 0x0c60,
-	SCSI_VERSION_DESCRIPTOR_SBC3	= 0x04c0,
-	SCSI_VERSION_DESCRIPTOR_SBP3	= 0x0980,
-	SCSI_VERSION_DESCRIPTOR_SPC4	= 0x0460,
-	SCSI_VERSION_DESCRIPTOR_SRP	= 0x0940
-};
-
 #endif /* _SCSI_PROTO_H_ */
diff --git a/original/scsi/scsi_status.h b/original/scsi/scsi_status.h
deleted file mode 100644
index 31d30ce..0000000
--- a/original/scsi/scsi_status.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-
-#ifndef _SCSI_SCSI_STATUS_H
-#define _SCSI_SCSI_STATUS_H
-
-#include <linux/types.h>
-#include <scsi/scsi_proto.h>
-
-/* Message codes. */
-enum scsi_msg_byte {
-	COMMAND_COMPLETE	= 0x00,
-	EXTENDED_MESSAGE	= 0x01,
-	SAVE_POINTERS		= 0x02,
-	RESTORE_POINTERS	= 0x03,
-	DISCONNECT		= 0x04,
-	INITIATOR_ERROR		= 0x05,
-	ABORT_TASK_SET		= 0x06,
-	MESSAGE_REJECT		= 0x07,
-	NOP			= 0x08,
-	MSG_PARITY_ERROR	= 0x09,
-	LINKED_CMD_COMPLETE	= 0x0a,
-	LINKED_FLG_CMD_COMPLETE	= 0x0b,
-	TARGET_RESET		= 0x0c,
-	ABORT_TASK		= 0x0d,
-	CLEAR_TASK_SET		= 0x0e,
-	INITIATE_RECOVERY	= 0x0f,            /* SCSI-II only */
-	RELEASE_RECOVERY	= 0x10,            /* SCSI-II only */
-	TERMINATE_IO_PROC	= 0x11,            /* SCSI-II only */
-	CLEAR_ACA		= 0x16,
-	LOGICAL_UNIT_RESET	= 0x17,
-	SIMPLE_QUEUE_TAG	= 0x20,
-	HEAD_OF_QUEUE_TAG	= 0x21,
-	ORDERED_QUEUE_TAG	= 0x22,
-	IGNORE_WIDE_RESIDUE	= 0x23,
-	ACA			= 0x24,
-	QAS_REQUEST		= 0x55,
-
-	/* Old SCSI2 names, don't use in new code */
-	BUS_DEVICE_RESET	= TARGET_RESET,
-	ABORT			= ABORT_TASK_SET,
-};
-
-/* Host byte codes. */
-enum scsi_host_status {
-	DID_OK		= 0x00,	/* NO error                                */
-	DID_NO_CONNECT	= 0x01,	/* Couldn't connect before timeout period  */
-	DID_BUS_BUSY	= 0x02,	/* BUS stayed busy through time out period */
-	DID_TIME_OUT	= 0x03,	/* TIMED OUT for other reason              */
-	DID_BAD_TARGET	= 0x04,	/* BAD target.                             */
-	DID_ABORT	= 0x05,	/* Told to abort for some other reason     */
-	DID_PARITY	= 0x06,	/* Parity error                            */
-	DID_ERROR	= 0x07,	/* Internal error                          */
-	DID_RESET	= 0x08,	/* Reset by somebody.                      */
-	DID_BAD_INTR	= 0x09,	/* Got an interrupt we weren't expecting.  */
-	DID_PASSTHROUGH	= 0x0a,	/* Force command past mid-layer            */
-	DID_SOFT_ERROR	= 0x0b,	/* The low level driver just wish a retry  */
-	DID_IMM_RETRY	= 0x0c,	/* Retry without decrementing retry count  */
-	DID_REQUEUE	= 0x0d,	/* Requeue command (no immediate retry) also
-				 * without decrementing the retry count	   */
-	DID_TRANSPORT_DISRUPTED = 0x0e, /* Transport error disrupted execution
-					 * and the driver blocked the port to
-					 * recover the link. Transport class will
-					 * retry or fail IO */
-	DID_TRANSPORT_FAILFAST = 0x0f, /* Transport class fastfailed the io */
-	DID_TARGET_FAILURE = 0x10, /* Permanent target failure, do not retry on
-				    * other paths */
-	DID_NEXUS_FAILURE = 0x11,  /* Permanent nexus failure, retry on other
-				    * paths might yield different results */
-	DID_ALLOC_FAILURE = 0x12,  /* Space allocation on the device failed */
-	DID_MEDIUM_ERROR = 0x13,  /* Medium error */
-	DID_TRANSPORT_MARGINAL = 0x14, /* Transport marginal errors */
-};
-
-#endif /* _SCSI_SCSI_STATUS_H */
diff --git a/original/scsi/sg.h b/original/scsi/sg.h
index 068e35d..7327e12 100644
--- a/original/scsi/sg.h
+++ b/original/scsi/sg.h
@@ -29,6 +29,10 @@
  * For utility and test programs see: http://sg.danny.cz/sg/sg3_utils.html
  */
 
+#ifdef __KERNEL__
+extern int sg_big_buff; /* for sysctl */
+#endif
+
 
 typedef struct sg_iovec /* same structure as used by readv() Linux system */
 {                       /* call. It defines one scatter-gather element. */
@@ -127,39 +131,6 @@
 #define SG_INFO_DIRECT_IO 0x2   /* direct IO requested and performed */
 #define SG_INFO_MIXED_IO 0x4    /* part direct, part indirect IO */
 
-/*
- * Obsolete DRIVER_SENSE driver byte
- *
- * Originally the SCSI midlayer would set the DRIVER_SENSE driver byte when
- * a sense code was generated and a sense buffer was allocated.
- * However, as nowadays every scsi command has a sense code allocated this
- * distinction became moot as one could check the sense buffer directly.
- * Consequently this byte is not set anymore from the midlayer, but SG will
- * keep setting this byte to be compatible with previous releases.
- */
-#define DRIVER_SENSE 0x08
-/* Obsolete driver_byte() declaration */
-#define driver_byte(result) (((result) >> 24) & 0xff)
-
-/*
- *  Original linux SCSI Status codes. They are shifted 1 bit right
- *  from those found in the SCSI standards.
- */
-
-#define GOOD                 0x00
-#define CHECK_CONDITION      0x01
-#define CONDITION_GOOD       0x02
-#define BUSY                 0x04
-#define INTERMEDIATE_GOOD    0x08
-#define INTERMEDIATE_C_GOOD  0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED   0x11
-#define QUEUE_FULL           0x14
-#define ACA_ACTIVE           0x18
-#define TASK_ABORTED         0x20
-
-/* Obsolete status_byte() declaration */
-#define status_byte(result) (((result) >> 1) & 0x7f)
 
 typedef struct sg_scsi_id { /* used by SG_GET_SCSI_ID ioctl() */
     int host_no;        /* as in "scsi<n>" where 'n' is one of 0, 1, 2 etc */
@@ -174,7 +145,7 @@
 
 typedef struct sg_req_info { /* used by SG_GET_REQUEST_TABLE ioctl() */
     char req_state;     /* 0 -> not used, 1 -> written, 2 -> ready to read */
-    char orphan;        /* 0 -> normal request, 1 -> from interrupted SG_IO */
+    char orphan;        /* 0 -> normal request, 1 -> from interruped SG_IO */
     char sg_io_owned;   /* 0 -> complete with read(), 1 -> owned by SG_IO */
     char problem;       /* 0 -> no problem detected, 1 -> error to report */
     int pack_id;        /* pack_id associated with request */
diff --git a/original/uapi/asm-arm/asm/hwcap.h b/original/uapi/asm-arm/asm/hwcap.h
index 990199d..b5971df 100644
--- a/original/uapi/asm-arm/asm/hwcap.h
+++ b/original/uapi/asm-arm/asm/hwcap.h
@@ -15,7 +15,7 @@
 #define HWCAP_EDSP	(1 << 7)
 #define HWCAP_JAVA	(1 << 8)
 #define HWCAP_IWMMXT	(1 << 9)
-#define HWCAP_CRUNCH	(1 << 10)	/* Obsolete */
+#define HWCAP_CRUNCH	(1 << 10)
 #define HWCAP_THUMBEE	(1 << 11)
 #define HWCAP_NEON	(1 << 12)
 #define HWCAP_VFPv3	(1 << 13)
diff --git a/original/uapi/asm-arm/asm/ptrace.h b/original/uapi/asm-arm/asm/ptrace.h
index 8896c23..e61c65b 100644
--- a/original/uapi/asm-arm/asm/ptrace.h
+++ b/original/uapi/asm-arm/asm/ptrace.h
@@ -26,8 +26,8 @@
 #define PTRACE_GET_THREAD_AREA	22
 #define PTRACE_SET_SYSCALL	23
 /* PTRACE_SYSCALL is 24 */
-#define PTRACE_GETCRUNCHREGS	25 /* obsolete */
-#define PTRACE_SETCRUNCHREGS	26 /* obsolete */
+#define PTRACE_GETCRUNCHREGS	25
+#define PTRACE_SETCRUNCHREGS	26
 #define PTRACE_GETVFPREGS	27
 #define PTRACE_SETVFPREGS	28
 #define PTRACE_GETHBPREGS	29
diff --git a/original/uapi/asm-arm/asm/setup.h b/original/uapi/asm-arm/asm/setup.h
index 25ceda6..345bf0a 100644
--- a/original/uapi/asm-arm/asm/setup.h
+++ b/original/uapi/asm-arm/asm/setup.h
@@ -17,7 +17,7 @@
 
 #include <linux/types.h>
 
-#define COMMAND_LINE_SIZE 1024
+#define COMMAND_LINE_SIZE 2048
 
 /* The list ends with an ATAG_NONE node. */
 #define ATAG_NONE	0x00000000
diff --git a/original/uapi/asm-arm/asm/unistd-common.h b/original/uapi/asm-arm/asm/unistd-common.h
new file mode 100644
index 0000000..e38b11c
--- /dev/null
+++ b/original/uapi/asm-arm/asm/unistd-common.h
@@ -0,0 +1,401 @@
+#ifndef _UAPI_ASM_ARM_UNISTD_COMMON_H
+#define _UAPI_ASM_ARM_UNISTD_COMMON_H 1
+
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+
+#endif /* _UAPI_ASM_ARM_UNISTD_COMMON_H */
diff --git a/original/uapi/asm-arm/asm/unistd-eabi.h b/original/uapi/asm-arm/asm/unistd-eabi.h
index 55f8300..274bb88 100644
--- a/original/uapi/asm-arm/asm/unistd-eabi.h
+++ b/original/uapi/asm-arm/asm/unistd-eabi.h
@@ -1,408 +1,5 @@
-#ifndef _UAPI_ASM_UNISTD_EABI_H
-#define _UAPI_ASM_UNISTD_EABI_H
+#ifndef _UAPI_ASM_ARM_UNISTD_EABI_H
+#define _UAPI_ASM_ARM_UNISTD_EABI_H 1
 
-#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
-#define __NR_exit (__NR_SYSCALL_BASE + 1)
-#define __NR_fork (__NR_SYSCALL_BASE + 2)
-#define __NR_read (__NR_SYSCALL_BASE + 3)
-#define __NR_write (__NR_SYSCALL_BASE + 4)
-#define __NR_open (__NR_SYSCALL_BASE + 5)
-#define __NR_close (__NR_SYSCALL_BASE + 6)
-#define __NR_creat (__NR_SYSCALL_BASE + 8)
-#define __NR_link (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink (__NR_SYSCALL_BASE + 10)
-#define __NR_execve (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir (__NR_SYSCALL_BASE + 12)
-#define __NR_mknod (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod (__NR_SYSCALL_BASE + 15)
-#define __NR_lchown (__NR_SYSCALL_BASE + 16)
-#define __NR_lseek (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid (__NR_SYSCALL_BASE + 20)
-#define __NR_mount (__NR_SYSCALL_BASE + 21)
-#define __NR_setuid (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid (__NR_SYSCALL_BASE + 24)
-#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
-#define __NR_pause (__NR_SYSCALL_BASE + 29)
-#define __NR_access (__NR_SYSCALL_BASE + 33)
-#define __NR_nice (__NR_SYSCALL_BASE + 34)
-#define __NR_sync (__NR_SYSCALL_BASE + 36)
-#define __NR_kill (__NR_SYSCALL_BASE + 37)
-#define __NR_rename (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
-#define __NR_dup (__NR_SYSCALL_BASE + 41)
-#define __NR_pipe (__NR_SYSCALL_BASE + 42)
-#define __NR_times (__NR_SYSCALL_BASE + 43)
-#define __NR_brk (__NR_SYSCALL_BASE + 45)
-#define __NR_setgid (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid (__NR_SYSCALL_BASE + 50)
-#define __NR_acct (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
-#define __NR_umask (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot (__NR_SYSCALL_BASE + 61)
-#define __NR_ustat (__NR_SYSCALL_BASE + 62)
-#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid (__NR_SYSCALL_BASE + 64)
-#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
-#define __NR_setsid (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
-#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
-#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
-#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
-#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
-#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
-#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
-#define __NR_symlink (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink (__NR_SYSCALL_BASE + 85)
-#define __NR_uselib (__NR_SYSCALL_BASE + 86)
-#define __NR_swapon (__NR_SYSCALL_BASE + 87)
-#define __NR_reboot (__NR_SYSCALL_BASE + 88)
-#define __NR_munmap (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
-#define __NR_fchown (__NR_SYSCALL_BASE + 95)
-#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
-#define __NR_statfs (__NR_SYSCALL_BASE + 99)
-#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
-#define __NR_syslog (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
-#define __NR_stat (__NR_SYSCALL_BASE + 106)
-#define __NR_lstat (__NR_SYSCALL_BASE + 107)
-#define __NR_fstat (__NR_SYSCALL_BASE + 108)
-#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
-#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
-#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
-#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
-#define __NR_fsync (__NR_SYSCALL_BASE + 118)
-#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
-#define __NR_clone (__NR_SYSCALL_BASE + 120)
-#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
-#define __NR_uname (__NR_SYSCALL_BASE + 122)
-#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
-#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
-#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
-#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
-#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
-#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
-#define __NR_personality (__NR_SYSCALL_BASE + 136)
-#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
-#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
-#define __NR__llseek (__NR_SYSCALL_BASE + 140)
-#define __NR_getdents (__NR_SYSCALL_BASE + 141)
-#define __NR__newselect (__NR_SYSCALL_BASE + 142)
-#define __NR_flock (__NR_SYSCALL_BASE + 143)
-#define __NR_msync (__NR_SYSCALL_BASE + 144)
-#define __NR_readv (__NR_SYSCALL_BASE + 145)
-#define __NR_writev (__NR_SYSCALL_BASE + 146)
-#define __NR_getsid (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
-#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
-#define __NR_mlock (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap (__NR_SYSCALL_BASE + 163)
-#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
-#define __NR_poll (__NR_SYSCALL_BASE + 168)
-#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
-#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
-#define __NR_prctl (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
-#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
-#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
-#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
-#define __NR_chown (__NR_SYSCALL_BASE + 182)
-#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
-#define __NR_capget (__NR_SYSCALL_BASE + 184)
-#define __NR_capset (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
-#define __NR_vfork (__NR_SYSCALL_BASE + 190)
-#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
-#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
-#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
-#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
-#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
-#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
-#define __NR_mincore (__NR_SYSCALL_BASE + 219)
-#define __NR_madvise (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill (__NR_SYSCALL_BASE + 238)
-#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
-#define __NR_futex (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
-#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
-#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
-#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
-#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
-#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
-#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
-#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
-#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
-#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
-#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
-#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
-#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
-#define __NR_utimes (__NR_SYSCALL_BASE + 269)
-#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
-#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
-#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
-#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
-#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
-#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
-#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
-#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
-#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
-#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
-#define __NR_waitid (__NR_SYSCALL_BASE + 280)
-#define __NR_socket (__NR_SYSCALL_BASE + 281)
-#define __NR_bind (__NR_SYSCALL_BASE + 282)
-#define __NR_connect (__NR_SYSCALL_BASE + 283)
-#define __NR_listen (__NR_SYSCALL_BASE + 284)
-#define __NR_accept (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
-#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
-#define __NR_send (__NR_SYSCALL_BASE + 289)
-#define __NR_sendto (__NR_SYSCALL_BASE + 290)
-#define __NR_recv (__NR_SYSCALL_BASE + 291)
-#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
-#define __NR_semop (__NR_SYSCALL_BASE + 298)
-#define __NR_semget (__NR_SYSCALL_BASE + 299)
-#define __NR_semctl (__NR_SYSCALL_BASE + 300)
-#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
-#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
-#define __NR_msgget (__NR_SYSCALL_BASE + 303)
-#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
-#define __NR_shmat (__NR_SYSCALL_BASE + 305)
-#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
-#define __NR_shmget (__NR_SYSCALL_BASE + 307)
-#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
-#define __NR_add_key (__NR_SYSCALL_BASE + 309)
-#define __NR_request_key (__NR_SYSCALL_BASE + 310)
-#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
-#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
-#define __NR_vserver (__NR_SYSCALL_BASE + 313)
-#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
-#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
-#define __NR_mbind (__NR_SYSCALL_BASE + 319)
-#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
-#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
-#define __NR_openat (__NR_SYSCALL_BASE + 322)
-#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
-#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
-#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
-#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
-#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
-#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
-#define __NR_renameat (__NR_SYSCALL_BASE + 329)
-#define __NR_linkat (__NR_SYSCALL_BASE + 330)
-#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
-#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
-#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
-#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
-#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
-#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
-#define __NR_unshare (__NR_SYSCALL_BASE + 337)
-#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
-#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
-#define __NR_splice (__NR_SYSCALL_BASE + 340)
-#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
-#define __NR_tee (__NR_SYSCALL_BASE + 342)
-#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
-#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
-#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
-#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
-#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
-#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
-#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
-#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
-#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
-#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
-#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
-#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
-#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
-#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
-#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
-#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
-#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
-#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
-#define __NR_preadv (__NR_SYSCALL_BASE + 361)
-#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
-#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
-#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
-#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
-#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
-#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
-#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
-#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
-#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
-#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
-#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
-#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
-#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
-#define __NR_setns (__NR_SYSCALL_BASE + 375)
-#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
-#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
-#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
-#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
-#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
-#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
-#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
-#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
-#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
-#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
-#define __NR_bpf (__NR_SYSCALL_BASE + 386)
-#define __NR_execveat (__NR_SYSCALL_BASE + 387)
-#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
-#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
-#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
-#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
-#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
-#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
-#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
-#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
-#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
-#define __NR_statx (__NR_SYSCALL_BASE + 397)
-#define __NR_rseq (__NR_SYSCALL_BASE + 398)
-#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
-#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
-#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
-#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
-#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
-#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
-#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
-#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
-#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
-#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
-#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
-#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
-#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
-#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
-#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
-#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
-#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
-#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
-#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
-#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
-#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
-#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
-#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
-#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
-#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
-#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
-#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
-#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
-#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
-#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
-#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
-#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
-#define __NR_fspick (__NR_SYSCALL_BASE + 433)
-#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
-#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
-#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
-#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
-#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
-#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
-#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
-#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
-#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 
-#endif /* _UAPI_ASM_UNISTD_EABI_H */
+#endif /* _UAPI_ASM_ARM_UNISTD_EABI_H */
diff --git a/original/uapi/asm-arm/asm/unistd-oabi.h b/original/uapi/asm-arm/asm/unistd-oabi.h
index 45d0e16..2281bca 100644
--- a/original/uapi/asm-arm/asm/unistd-oabi.h
+++ b/original/uapi/asm-arm/asm/unistd-oabi.h
@@ -1,420 +1,17 @@
-#ifndef _UAPI_ASM_UNISTD_OABI_H
-#define _UAPI_ASM_UNISTD_OABI_H
+#ifndef _UAPI_ASM_ARM_UNISTD_OABI_H
+#define _UAPI_ASM_ARM_UNISTD_OABI_H 1
 
-#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
-#define __NR_exit (__NR_SYSCALL_BASE + 1)
-#define __NR_fork (__NR_SYSCALL_BASE + 2)
-#define __NR_read (__NR_SYSCALL_BASE + 3)
-#define __NR_write (__NR_SYSCALL_BASE + 4)
-#define __NR_open (__NR_SYSCALL_BASE + 5)
-#define __NR_close (__NR_SYSCALL_BASE + 6)
-#define __NR_creat (__NR_SYSCALL_BASE + 8)
-#define __NR_link (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink (__NR_SYSCALL_BASE + 10)
-#define __NR_execve (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir (__NR_SYSCALL_BASE + 12)
 #define __NR_time (__NR_SYSCALL_BASE + 13)
-#define __NR_mknod (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod (__NR_SYSCALL_BASE + 15)
-#define __NR_lchown (__NR_SYSCALL_BASE + 16)
-#define __NR_lseek (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid (__NR_SYSCALL_BASE + 20)
-#define __NR_mount (__NR_SYSCALL_BASE + 21)
 #define __NR_umount (__NR_SYSCALL_BASE + 22)
-#define __NR_setuid (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid (__NR_SYSCALL_BASE + 24)
 #define __NR_stime (__NR_SYSCALL_BASE + 25)
-#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
 #define __NR_alarm (__NR_SYSCALL_BASE + 27)
-#define __NR_pause (__NR_SYSCALL_BASE + 29)
 #define __NR_utime (__NR_SYSCALL_BASE + 30)
-#define __NR_access (__NR_SYSCALL_BASE + 33)
-#define __NR_nice (__NR_SYSCALL_BASE + 34)
-#define __NR_sync (__NR_SYSCALL_BASE + 36)
-#define __NR_kill (__NR_SYSCALL_BASE + 37)
-#define __NR_rename (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
-#define __NR_dup (__NR_SYSCALL_BASE + 41)
-#define __NR_pipe (__NR_SYSCALL_BASE + 42)
-#define __NR_times (__NR_SYSCALL_BASE + 43)
-#define __NR_brk (__NR_SYSCALL_BASE + 45)
-#define __NR_setgid (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid (__NR_SYSCALL_BASE + 50)
-#define __NR_acct (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
-#define __NR_umask (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot (__NR_SYSCALL_BASE + 61)
-#define __NR_ustat (__NR_SYSCALL_BASE + 62)
-#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid (__NR_SYSCALL_BASE + 64)
-#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
-#define __NR_setsid (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
-#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
-#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
-#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
-#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
 #define __NR_getrlimit (__NR_SYSCALL_BASE + 76)
-#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
-#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
 #define __NR_select (__NR_SYSCALL_BASE + 82)
-#define __NR_symlink (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink (__NR_SYSCALL_BASE + 85)
-#define __NR_uselib (__NR_SYSCALL_BASE + 86)
-#define __NR_swapon (__NR_SYSCALL_BASE + 87)
-#define __NR_reboot (__NR_SYSCALL_BASE + 88)
 #define __NR_readdir (__NR_SYSCALL_BASE + 89)
 #define __NR_mmap (__NR_SYSCALL_BASE + 90)
-#define __NR_munmap (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
-#define __NR_fchown (__NR_SYSCALL_BASE + 95)
-#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
-#define __NR_statfs (__NR_SYSCALL_BASE + 99)
-#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
 #define __NR_socketcall (__NR_SYSCALL_BASE + 102)
-#define __NR_syslog (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
-#define __NR_stat (__NR_SYSCALL_BASE + 106)
-#define __NR_lstat (__NR_SYSCALL_BASE + 107)
-#define __NR_fstat (__NR_SYSCALL_BASE + 108)
-#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
 #define __NR_syscall (__NR_SYSCALL_BASE + 113)
-#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
-#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
-#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
 #define __NR_ipc (__NR_SYSCALL_BASE + 117)
-#define __NR_fsync (__NR_SYSCALL_BASE + 118)
-#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
-#define __NR_clone (__NR_SYSCALL_BASE + 120)
-#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
-#define __NR_uname (__NR_SYSCALL_BASE + 122)
-#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
-#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
-#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
-#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
-#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
-#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
-#define __NR_personality (__NR_SYSCALL_BASE + 136)
-#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
-#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
-#define __NR__llseek (__NR_SYSCALL_BASE + 140)
-#define __NR_getdents (__NR_SYSCALL_BASE + 141)
-#define __NR__newselect (__NR_SYSCALL_BASE + 142)
-#define __NR_flock (__NR_SYSCALL_BASE + 143)
-#define __NR_msync (__NR_SYSCALL_BASE + 144)
-#define __NR_readv (__NR_SYSCALL_BASE + 145)
-#define __NR_writev (__NR_SYSCALL_BASE + 146)
-#define __NR_getsid (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
-#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
-#define __NR_mlock (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap (__NR_SYSCALL_BASE + 163)
-#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
-#define __NR_poll (__NR_SYSCALL_BASE + 168)
-#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
-#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
-#define __NR_prctl (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
-#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
-#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
-#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
-#define __NR_chown (__NR_SYSCALL_BASE + 182)
-#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
-#define __NR_capget (__NR_SYSCALL_BASE + 184)
-#define __NR_capset (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
-#define __NR_vfork (__NR_SYSCALL_BASE + 190)
-#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
-#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
-#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
-#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
-#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
-#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
-#define __NR_mincore (__NR_SYSCALL_BASE + 219)
-#define __NR_madvise (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill (__NR_SYSCALL_BASE + 238)
-#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
-#define __NR_futex (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
-#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
-#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
-#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
-#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
-#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
-#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
-#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
-#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
-#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
-#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
-#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
-#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
-#define __NR_utimes (__NR_SYSCALL_BASE + 269)
-#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
-#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
-#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
-#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
-#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
-#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
-#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
-#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
-#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
-#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
-#define __NR_waitid (__NR_SYSCALL_BASE + 280)
-#define __NR_socket (__NR_SYSCALL_BASE + 281)
-#define __NR_bind (__NR_SYSCALL_BASE + 282)
-#define __NR_connect (__NR_SYSCALL_BASE + 283)
-#define __NR_listen (__NR_SYSCALL_BASE + 284)
-#define __NR_accept (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
-#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
-#define __NR_send (__NR_SYSCALL_BASE + 289)
-#define __NR_sendto (__NR_SYSCALL_BASE + 290)
-#define __NR_recv (__NR_SYSCALL_BASE + 291)
-#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
-#define __NR_semop (__NR_SYSCALL_BASE + 298)
-#define __NR_semget (__NR_SYSCALL_BASE + 299)
-#define __NR_semctl (__NR_SYSCALL_BASE + 300)
-#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
-#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
-#define __NR_msgget (__NR_SYSCALL_BASE + 303)
-#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
-#define __NR_shmat (__NR_SYSCALL_BASE + 305)
-#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
-#define __NR_shmget (__NR_SYSCALL_BASE + 307)
-#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
-#define __NR_add_key (__NR_SYSCALL_BASE + 309)
-#define __NR_request_key (__NR_SYSCALL_BASE + 310)
-#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
-#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
-#define __NR_vserver (__NR_SYSCALL_BASE + 313)
-#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
-#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
-#define __NR_mbind (__NR_SYSCALL_BASE + 319)
-#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
-#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
-#define __NR_openat (__NR_SYSCALL_BASE + 322)
-#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
-#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
-#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
-#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
-#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
-#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
-#define __NR_renameat (__NR_SYSCALL_BASE + 329)
-#define __NR_linkat (__NR_SYSCALL_BASE + 330)
-#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
-#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
-#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
-#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
-#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
-#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
-#define __NR_unshare (__NR_SYSCALL_BASE + 337)
-#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
-#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
-#define __NR_splice (__NR_SYSCALL_BASE + 340)
-#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
-#define __NR_tee (__NR_SYSCALL_BASE + 342)
-#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
-#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
-#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
-#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
-#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
-#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
-#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
-#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
-#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
-#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
-#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
-#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
-#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
-#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
-#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
-#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
-#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
-#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
-#define __NR_preadv (__NR_SYSCALL_BASE + 361)
-#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
-#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
-#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
-#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
-#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
-#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
-#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
-#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
-#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
-#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
-#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
-#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
-#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
-#define __NR_setns (__NR_SYSCALL_BASE + 375)
-#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
-#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
-#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
-#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
-#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
-#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
-#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
-#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
-#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
-#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
-#define __NR_bpf (__NR_SYSCALL_BASE + 386)
-#define __NR_execveat (__NR_SYSCALL_BASE + 387)
-#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
-#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
-#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
-#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
-#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
-#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
-#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
-#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
-#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
-#define __NR_statx (__NR_SYSCALL_BASE + 397)
-#define __NR_rseq (__NR_SYSCALL_BASE + 398)
-#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
-#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
-#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
-#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
-#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
-#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
-#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
-#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
-#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
-#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
-#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
-#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
-#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
-#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
-#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
-#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
-#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
-#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
-#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
-#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
-#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
-#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
-#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
-#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
-#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
-#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
-#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
-#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
-#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
-#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
-#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
-#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
-#define __NR_fspick (__NR_SYSCALL_BASE + 433)
-#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
-#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
-#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
-#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
-#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
-#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
-#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
-#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
-#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 
-#endif /* _UAPI_ASM_UNISTD_OABI_H */
+#endif /* _UAPI_ASM_ARM_UNISTD_OABI_H */
diff --git a/original/uapi/asm-arm/asm/unistd.h b/original/uapi/asm-arm/asm/unistd.h
index a114991..93ecf8a 100644
--- a/original/uapi/asm-arm/asm/unistd.h
+++ b/original/uapi/asm-arm/asm/unistd.h
@@ -15,7 +15,6 @@
 #define _UAPI__ASM_ARM_UNISTD_H
 
 #define __NR_OABI_SYSCALL_BASE	0x900000
-#define __NR_SYSCALL_MASK	0x0fffff
 
 #if defined(__thumb__) || defined(__ARM_EABI__)
 #define __NR_SYSCALL_BASE	0
@@ -25,6 +24,7 @@
 #include <asm/unistd-oabi.h>
 #endif
 
+#include <asm/unistd-common.h>
 #define __NR_sync_file_range2		__NR_arm_sync_file_range
 
 /*
diff --git a/original/uapi/asm-arm64/asm/hwcap.h b/original/uapi/asm-arm64/asm/hwcap.h
index f037318..b8f41aa 100644
--- a/original/uapi/asm-arm64/asm/hwcap.h
+++ b/original/uapi/asm-arm64/asm/hwcap.h
@@ -75,8 +75,5 @@
 #define HWCAP2_RNG		(1 << 16)
 #define HWCAP2_BTI		(1 << 17)
 #define HWCAP2_MTE		(1 << 18)
-#define HWCAP2_ECV		(1 << 19)
-#define HWCAP2_AFP		(1 << 20)
-#define HWCAP2_RPRES		(1 << 21)
 
 #endif /* _UAPI__ASM_HWCAP_H */
diff --git a/original/uapi/asm-arm64/asm/kvm.h b/original/uapi/asm-arm64/asm/kvm.h
index 323e251..24223ad 100644
--- a/original/uapi/asm-arm64/asm/kvm.h
+++ b/original/uapi/asm-arm64/asm/kvm.h
@@ -184,17 +184,6 @@
 	__u32 reserved[12];
 };
 
-struct kvm_arm_copy_mte_tags {
-	__u64 guest_ipa;
-	__u64 length;
-	void __user *addr;
-	__u64 flags;
-	__u64 reserved[2];
-};
-
-#define KVM_ARM_TAGS_TO_GUEST		0
-#define KVM_ARM_TAGS_FROM_GUEST		1
-
 /* If you need to interpret the index values, here is the key: */
 #define KVM_REG_ARM_COPROC_MASK		0x000000000FFF0000
 #define KVM_REG_ARM_COPROC_SHIFT	16
@@ -281,11 +270,6 @@
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED	3
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED     	(1U << 4)
 
-#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3	KVM_REG_ARM_FW_REG(3)
-#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL		0
-#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL		1
-#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED	2
-
 /* SVE registers */
 #define KVM_REG_ARM64_SVE		(0x15 << KVM_REG_ARM_COPROC_SHIFT)
 
diff --git a/original/uapi/asm-arm64/asm/unistd.h b/original/uapi/asm-arm64/asm/unistd.h
index ce2ee8f..f83a70e 100644
--- a/original/uapi/asm-arm64/asm/unistd.h
+++ b/original/uapi/asm-arm64/asm/unistd.h
@@ -20,6 +20,5 @@
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #define __ARCH_WANT_SYS_CLONE3
-#define __ARCH_WANT_MEMFD_SECRET
 
 #include <asm-generic/unistd.h>
diff --git a/original/uapi/asm-generic/fcntl.h b/original/uapi/asm-generic/fcntl.h
index ecd0f5b..9dc0bf0 100644
--- a/original/uapi/asm-generic/fcntl.h
+++ b/original/uapi/asm-generic/fcntl.h
@@ -181,10 +181,6 @@
 				   blocking */
 #define LOCK_UN		8	/* remove lock */
 
-/*
- * LOCK_MAND support has been removed from the kernel. We leave the symbols
- * here to not break legacy builds, but these should not be used in new code.
- */
 #define LOCK_MAND	32	/* This is a mandatory flock ... */
 #define LOCK_READ	64	/* which allows concurrent read operations */
 #define LOCK_WRITE	128	/* which allows concurrent write operations */
diff --git a/original/uapi/asm-generic/mman-common.h b/original/uapi/asm-generic/mman-common.h
index 1567a32..f94f65d 100644
--- a/original/uapi/asm-generic/mman-common.h
+++ b/original/uapi/asm-generic/mman-common.h
@@ -72,9 +72,6 @@
 #define MADV_COLD	20		/* deactivate these pages */
 #define MADV_PAGEOUT	21		/* reclaim these pages */
 
-#define MADV_POPULATE_READ	22	/* populate (prefault) page tables readable */
-#define MADV_POPULATE_WRITE	23	/* populate (prefault) page tables writable */
-
 /* compatibility flags */
 #define MAP_FILE	0
 
diff --git a/original/uapi/asm-generic/poll.h b/original/uapi/asm-generic/poll.h
index f9c520c..41b509f 100644
--- a/original/uapi/asm-generic/poll.h
+++ b/original/uapi/asm-generic/poll.h
@@ -29,7 +29,7 @@
 #define POLLRDHUP       0x2000
 #endif
 
-#define POLLFREE	(__force __poll_t)0x4000
+#define POLLFREE	(__force __poll_t)0x4000	/* currently only for epoll */
 
 #define POLL_BUSY_LOOP	(__force __poll_t)0x8000
 
diff --git a/original/uapi/asm-generic/siginfo.h b/original/uapi/asm-generic/siginfo.h
index 3ba180f..d259700 100644
--- a/original/uapi/asm-generic/siginfo.h
+++ b/original/uapi/asm-generic/siginfo.h
@@ -29,11 +29,6 @@
 #define __ARCH_SI_ATTRIBUTES
 #endif
 
-/*
- * Be careful when extending this union.  On 32bit siginfo_t is 32bit
- * aligned.  Which means that a 64bit field or any other field that
- * would increase the alignment of siginfo_t will break the ABI.
- */
 union __sifields {
 	/* kill() */
 	struct {
@@ -68,6 +63,9 @@
 	/* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, SIGEMT */
 	struct {
 		void __user *_addr; /* faulting insn/memory ref. */
+#ifdef __ARCH_SI_TRAPNO
+		int _trapno;	/* TRAP # which caused the signal */
+#endif
 #ifdef __ia64__
 		int _imm;		/* immediate value for "break" */
 		unsigned int _flags;	/* see ia64 si_flags */
@@ -77,8 +75,6 @@
 #define __ADDR_BND_PKEY_PAD  (__alignof__(void *) < sizeof(short) ? \
 			      sizeof(short) : __alignof__(void *))
 		union {
-			/* used on alpha and sparc */
-			int _trapno;	/* TRAP # which caused the signal */
 			/*
 			 * used when si_code=BUS_MCEERR_AR or
 			 * used when si_code=BUS_MCEERR_AO
@@ -95,11 +91,6 @@
 				char _dummy_pkey[__ADDR_BND_PKEY_PAD];
 				__u32 _pkey;
 			} _addr_pkey;
-			/* used when si_code=TRAP_PERF */
-			struct {
-				unsigned long _data;
-				__u32 _type;
-			} _perf;
 		};
 	} _sigfault;
 
@@ -157,13 +148,13 @@
 #define si_int		_sifields._rt._sigval.sival_int
 #define si_ptr		_sifields._rt._sigval.sival_ptr
 #define si_addr		_sifields._sigfault._addr
+#ifdef __ARCH_SI_TRAPNO
 #define si_trapno	_sifields._sigfault._trapno
+#endif
 #define si_addr_lsb	_sifields._sigfault._addr_lsb
 #define si_lower	_sifields._sigfault._addr_bnd._lower
 #define si_upper	_sifields._sigfault._addr_bnd._upper
 #define si_pkey		_sifields._sigfault._addr_pkey._pkey
-#define si_perf_data	_sifields._sigfault._perf._data
-#define si_perf_type	_sifields._sigfault._perf._type
 #define si_band		_sifields._sigpoll._band
 #define si_fd		_sifields._sigpoll._fd
 #define si_call_addr	_sifields._sigsys._call_addr
@@ -262,8 +253,7 @@
 #define TRAP_BRANCH     3	/* process taken branch trap */
 #define TRAP_HWBKPT     4	/* hardware breakpoint/watchpoint */
 #define TRAP_UNK	5	/* undiagnosed trap */
-#define TRAP_PERF	6	/* perf event with sigtrap=1 */
-#define NSIGTRAP	6
+#define NSIGTRAP	5
 
 /*
  * There is an additional set of SIGTRAP si_codes used by ptrace
diff --git a/original/uapi/asm-generic/signal-defs.h b/original/uapi/asm-generic/signal-defs.h
index 7572f2f..fe929e7 100644
--- a/original/uapi/asm-generic/signal-defs.h
+++ b/original/uapi/asm-generic/signal-defs.h
@@ -45,7 +45,6 @@
 #define SA_UNSUPPORTED	0x00000400
 #define SA_EXPOSE_TAGBITS	0x00000800
 /* 0x00010000 used on mips */
-/* 0x00800000 used for internal SA_IMMUTABLE */
 /* 0x01000000 used on x86 */
 /* 0x02000000 used on x86 */
 /*
diff --git a/original/uapi/asm-generic/socket.h b/original/uapi/asm-generic/socket.h
index c77a131..4dcd13d 100644
--- a/original/uapi/asm-generic/socket.h
+++ b/original/uapi/asm-generic/socket.h
@@ -122,12 +122,6 @@
 #define SO_PREFER_BUSY_POLL	69
 #define SO_BUSY_POLL_BUDGET	70
 
-#define SO_NETNS_COOKIE		71
-
-#define SO_BUF_LOCK		72
-
-#define SO_RESERVE_MEM		73
-
 #if !defined(__KERNEL__)
 
 #if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
diff --git a/original/uapi/asm-generic/unistd.h b/original/uapi/asm-generic/unistd.h
index 1c48b0a..ce58cff 100644
--- a/original/uapi/asm-generic/unistd.h
+++ b/original/uapi/asm-generic/unistd.h
@@ -673,15 +673,15 @@
 #define __NR_remap_file_pages 234
 __SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)
 #define __NR_mbind 235
-__SYSCALL(__NR_mbind, sys_mbind)
+__SC_COMP(__NR_mbind, sys_mbind, compat_sys_mbind)
 #define __NR_get_mempolicy 236
-__SYSCALL(__NR_get_mempolicy, sys_get_mempolicy)
+__SC_COMP(__NR_get_mempolicy, sys_get_mempolicy, compat_sys_get_mempolicy)
 #define __NR_set_mempolicy 237
-__SYSCALL(__NR_set_mempolicy, sys_set_mempolicy)
+__SC_COMP(__NR_set_mempolicy, sys_set_mempolicy, compat_sys_set_mempolicy)
 #define __NR_migrate_pages 238
-__SYSCALL(__NR_migrate_pages, sys_migrate_pages)
+__SC_COMP(__NR_migrate_pages, sys_migrate_pages, compat_sys_migrate_pages)
 #define __NR_move_pages 239
-__SYSCALL(__NR_move_pages, sys_move_pages)
+__SC_COMP(__NR_move_pages, sys_move_pages, compat_sys_move_pages)
 #endif
 
 #define __NR_rt_tgsigqueueinfo 240
@@ -863,31 +863,9 @@
 __SC_COMP(__NR_epoll_pwait2, sys_epoll_pwait2, compat_sys_epoll_pwait2)
 #define __NR_mount_setattr 442
 __SYSCALL(__NR_mount_setattr, sys_mount_setattr)
-#define __NR_quotactl_fd 443
-__SYSCALL(__NR_quotactl_fd, sys_quotactl_fd)
-
-#define __NR_landlock_create_ruleset 444
-__SYSCALL(__NR_landlock_create_ruleset, sys_landlock_create_ruleset)
-#define __NR_landlock_add_rule 445
-__SYSCALL(__NR_landlock_add_rule, sys_landlock_add_rule)
-#define __NR_landlock_restrict_self 446
-__SYSCALL(__NR_landlock_restrict_self, sys_landlock_restrict_self)
-
-#ifdef __ARCH_WANT_MEMFD_SECRET
-#define __NR_memfd_secret 447
-__SYSCALL(__NR_memfd_secret, sys_memfd_secret)
-#endif
-#define __NR_process_mrelease 448
-__SYSCALL(__NR_process_mrelease, sys_process_mrelease)
-
-#define __NR_futex_waitv 449
-__SYSCALL(__NR_futex_waitv, sys_futex_waitv)
-
-#define __NR_set_mempolicy_home_node 450
-__SYSCALL(__NR_set_mempolicy_home_node, sys_set_mempolicy_home_node)
 
 #undef __NR_syscalls
-#define __NR_syscalls 451
+#define __NR_syscalls 443
 
 /*
  * 32 bit systems traditionally used different
diff --git a/original/uapi/asm-x86/asm/auxvec.h b/original/uapi/asm-x86/asm/auxvec.h
index 6beb55b..580e3c5 100644
--- a/original/uapi/asm-x86/asm/auxvec.h
+++ b/original/uapi/asm-x86/asm/auxvec.h
@@ -12,9 +12,9 @@
 
 /* entries in ARCH_DLINFO: */
 #if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64)
-# define AT_VECTOR_SIZE_ARCH 3
-#else /* else it's non-compat x86-64 */
 # define AT_VECTOR_SIZE_ARCH 2
+#else /* else it's non-compat x86-64 */
+# define AT_VECTOR_SIZE_ARCH 1
 #endif
 
 #endif /* _ASM_X86_AUXVEC_H */
diff --git a/original/uapi/asm-x86/asm/bootparam.h b/original/uapi/asm-x86/asm/bootparam.h
index b25d3f8..600a141 100644
--- a/original/uapi/asm-x86/asm/bootparam.h
+++ b/original/uapi/asm-x86/asm/bootparam.h
@@ -234,7 +234,7 @@
  * handling of page tables.
  *
  * These enums should only ever be used by x86 code, and the code that uses
- * it should be well contained and compartmentalized.
+ * it should be well contained and compartamentalized.
  *
  * KVM and Xen HVM do not have a subarch as these are expected to follow
  * standard x86 boot entries. If there is a genuine need for "hypervisor" type
@@ -252,7 +252,7 @@
  * @X86_SUBARCH_XEN: Used for Xen guest types which follow the PV boot path,
  * 	which start at asm startup_xen() entry point and later jump to the C
  * 	xen_start_kernel() entry point. Both domU and dom0 type of guests are
- * 	currently supported through this PV boot path.
+ * 	currently supportd through this PV boot path.
  * @X86_SUBARCH_INTEL_MID: Used for Intel MID (Mobile Internet Device) platform
  *	systems which do not have the PCI legacy interfaces.
  * @X86_SUBARCH_CE4100: Used for Intel CE media processor (CE4100) SoC
diff --git a/original/uapi/asm-x86/asm/debugreg.h b/original/uapi/asm-x86/asm/debugreg.h
index 0007ba0..d95d080 100644
--- a/original/uapi/asm-x86/asm/debugreg.h
+++ b/original/uapi/asm-x86/asm/debugreg.h
@@ -24,7 +24,6 @@
 #define DR_TRAP3	(0x8)		/* db3 */
 #define DR_TRAP_BITS	(DR_TRAP0|DR_TRAP1|DR_TRAP2|DR_TRAP3)
 
-#define DR_BUS_LOCK	(0x800)		/* bus_lock */
 #define DR_STEP		(0x4000)	/* single-step */
 #define DR_SWITCH	(0x8000)	/* task switch */
 
diff --git a/original/uapi/asm-x86/asm/hwcap2.h b/original/uapi/asm-x86/asm/hwcap2.h
index 054604a..5fdfcb4 100644
--- a/original/uapi/asm-x86/asm/hwcap2.h
+++ b/original/uapi/asm-x86/asm/hwcap2.h
@@ -2,12 +2,10 @@
 #ifndef _ASM_X86_HWCAP2_H
 #define _ASM_X86_HWCAP2_H
 
-#include <linux/const.h>
-
 /* MONITOR/MWAIT enabled in Ring 3 */
-#define HWCAP2_RING3MWAIT		_BITUL(0)
+#define HWCAP2_RING3MWAIT		(1 << 0)
 
 /* Kernel allows FSGSBASE instructions available in Ring 3 */
-#define HWCAP2_FSGSBASE			_BITUL(1)
+#define HWCAP2_FSGSBASE			BIT(1)
 
 #endif
diff --git a/original/uapi/asm-x86/asm/kvm.h b/original/uapi/asm-x86/asm/kvm.h
index bf6e960..5a3022c 100644
--- a/original/uapi/asm-x86/asm/kvm.h
+++ b/original/uapi/asm-x86/asm/kvm.h
@@ -159,19 +159,6 @@
 	__u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64];
 };
 
-struct kvm_sregs2 {
-	/* out (KVM_GET_SREGS2) / in (KVM_SET_SREGS2) */
-	struct kvm_segment cs, ds, es, fs, gs, ss;
-	struct kvm_segment tr, ldt;
-	struct kvm_dtable gdt, idt;
-	__u64 cr0, cr2, cr3, cr4, cr8;
-	__u64 efer;
-	__u64 apic_base;
-	__u64 flags;
-	__u64 pdptrs[4];
-};
-#define KVM_SREGS2_FLAGS_PDPTRS_VALID 1
-
 /* for KVM_GET_FPU and KVM_SET_FPU */
 struct kvm_fpu {
 	__u8  fpr[8][16];
@@ -295,7 +282,6 @@
 #define KVM_GUESTDBG_USE_HW_BP		0x00020000
 #define KVM_GUESTDBG_INJECT_DB		0x00040000
 #define KVM_GUESTDBG_INJECT_BP		0x00080000
-#define KVM_GUESTDBG_BLOCKIRQ		0x00100000
 
 /* for KVM_SET_GUEST_DEBUG */
 struct kvm_guest_debug_arch {
@@ -373,23 +359,9 @@
 	__u64 reserved[9];
 };
 
-/* for KVM_CAP_XSAVE and KVM_CAP_XSAVE2 */
+/* for KVM_CAP_XSAVE */
 struct kvm_xsave {
-	/*
-	 * KVM_GET_XSAVE2 and KVM_SET_XSAVE write and read as many bytes
-	 * as are returned by KVM_CHECK_EXTENSION(KVM_CAP_XSAVE2)
-	 * respectively, when invoked on the vm file descriptor.
-	 *
-	 * The size value returned by KVM_CHECK_EXTENSION(KVM_CAP_XSAVE2)
-	 * will always be at least 4096. Currently, it is only greater
-	 * than 4096 if a dynamic feature has been enabled with
-	 * ``arch_prctl()``, but this may change in the future.
-	 *
-	 * The offsets of the state save areas in struct kvm_xsave follow
-	 * the contents of CPUID leaf 0xD on the host.
-	 */
 	__u32 region[1024];
-	__u32 extra[0];
 };
 
 #define KVM_MAX_XCRS	16
@@ -452,9 +424,6 @@
 
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE	0x00000001
 
-/* attributes for system fd (group 0) */
-#define KVM_X86_XCOMP_GUEST_SUPP	0
-
 struct kvm_vmx_nested_state_data {
 	__u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
 	__u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -468,8 +437,6 @@
 		__u16 flags;
 	} smm;
 
-	__u16 pad;
-
 	__u32 flags;
 	__u64 preemption_timer_deadline;
 };
@@ -521,8 +488,4 @@
 #define KVM_PMU_EVENT_ALLOW 0
 #define KVM_PMU_EVENT_DENY 1
 
-/* for KVM_{GET,SET,HAS}_DEVICE_ATTR */
-#define KVM_VCPU_TSC_CTRL 0 /* control group for the timestamp counter (TSC) */
-#define   KVM_VCPU_TSC_OFFSET 0 /* attribute for the TSC offset */
-
 #endif /* _ASM_X86_KVM_H */
diff --git a/original/uapi/asm-x86/asm/kvm_para.h b/original/uapi/asm-x86/asm/kvm_para.h
index 6e64b27..950afeb 100644
--- a/original/uapi/asm-x86/asm/kvm_para.h
+++ b/original/uapi/asm-x86/asm/kvm_para.h
@@ -8,7 +8,6 @@
  * should be used to determine that a VM is running under KVM.
  */
 #define KVM_CPUID_SIGNATURE	0x40000000
-#define KVM_SIGNATURE "KVMKVMKVM\0\0\0"
 
 /* This CPUID returns two feature bitmaps in eax, edx. Before enabling
  * a particular paravirtualization, the appropriate feature bit should
@@ -34,8 +33,6 @@
 #define KVM_FEATURE_PV_SCHED_YIELD	13
 #define KVM_FEATURE_ASYNC_PF_INT	14
 #define KVM_FEATURE_MSI_EXT_DEST_ID	15
-#define KVM_FEATURE_HC_MAP_GPA_RANGE	16
-#define KVM_FEATURE_MIGRATION_CONTROL	17
 
 #define KVM_HINTS_REALTIME      0
 
@@ -57,7 +54,6 @@
 #define MSR_KVM_POLL_CONTROL	0x4b564d05
 #define MSR_KVM_ASYNC_PF_INT	0x4b564d06
 #define MSR_KVM_ASYNC_PF_ACK	0x4b564d07
-#define MSR_KVM_MIGRATION_CONTROL	0x4b564d08
 
 struct kvm_steal_time {
 	__u64 steal;
@@ -94,16 +90,6 @@
 /* MSR_KVM_ASYNC_PF_INT */
 #define KVM_ASYNC_PF_VEC_MASK			GENMASK(7, 0)
 
-/* MSR_KVM_MIGRATION_CONTROL */
-#define KVM_MIGRATION_READY		(1 << 0)
-
-/* KVM_HC_MAP_GPA_RANGE */
-#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K	0
-#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M	(1 << 0)
-#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G	(1 << 1)
-#define KVM_MAP_GPA_RANGE_ENC_STAT(n)	(n << 4)
-#define KVM_MAP_GPA_RANGE_ENCRYPTED	KVM_MAP_GPA_RANGE_ENC_STAT(1)
-#define KVM_MAP_GPA_RANGE_DECRYPTED	KVM_MAP_GPA_RANGE_ENC_STAT(0)
 
 /* Operations for KVM_HC_MMU_OP */
 #define KVM_MMU_OP_WRITE_PTE            1
diff --git a/original/uapi/asm-x86/asm/msgbuf.h b/original/uapi/asm-x86/asm/msgbuf.h
index ac83e25..b3d0664 100644
--- a/original/uapi/asm-x86/asm/msgbuf.h
+++ b/original/uapi/asm-x86/asm/msgbuf.h
@@ -12,7 +12,7 @@
  * The msqid64_ds structure for x86 architecture with x32 ABI.
  *
  * On x86-32 and x86-64 we can just use the generic definition, but
- * x32 uses the same binary layout as x86_64, which is different
+ * x32 uses the same binary layout as x86_64, which is differnet
  * from other 32-bit architectures.
  */
 
diff --git a/original/uapi/asm-x86/asm/prctl.h b/original/uapi/asm-x86/asm/prctl.h
index 500b96e..5a6aac9 100644
--- a/original/uapi/asm-x86/asm/prctl.h
+++ b/original/uapi/asm-x86/asm/prctl.h
@@ -2,22 +2,16 @@
 #ifndef _ASM_X86_PRCTL_H
 #define _ASM_X86_PRCTL_H
 
-#define ARCH_SET_GS			0x1001
-#define ARCH_SET_FS			0x1002
-#define ARCH_GET_FS			0x1003
-#define ARCH_GET_GS			0x1004
+#define ARCH_SET_GS		0x1001
+#define ARCH_SET_FS		0x1002
+#define ARCH_GET_FS		0x1003
+#define ARCH_GET_GS		0x1004
 
-#define ARCH_GET_CPUID			0x1011
-#define ARCH_SET_CPUID			0x1012
+#define ARCH_GET_CPUID		0x1011
+#define ARCH_SET_CPUID		0x1012
 
-#define ARCH_GET_XCOMP_SUPP		0x1021
-#define ARCH_GET_XCOMP_PERM		0x1022
-#define ARCH_REQ_XCOMP_PERM		0x1023
-#define ARCH_GET_XCOMP_GUEST_PERM	0x1024
-#define ARCH_REQ_XCOMP_GUEST_PERM	0x1025
-
-#define ARCH_MAP_VDSO_X32		0x2001
-#define ARCH_MAP_VDSO_32		0x2002
-#define ARCH_MAP_VDSO_64		0x2003
+#define ARCH_MAP_VDSO_X32	0x2001
+#define ARCH_MAP_VDSO_32	0x2002
+#define ARCH_MAP_VDSO_64	0x2003
 
 #endif /* _ASM_X86_PRCTL_H */
diff --git a/original/uapi/asm-x86/asm/sgx.h b/original/uapi/asm-x86/asm/sgx.h
index f4b8158..9034f30 100644
--- a/original/uapi/asm-x86/asm/sgx.h
+++ b/original/uapi/asm-x86/asm/sgx.h
@@ -27,8 +27,6 @@
 	_IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
 #define SGX_IOC_ENCLAVE_PROVISION \
 	_IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
-#define SGX_IOC_VEPC_REMOVE_ALL \
-	_IO(SGX_MAGIC, 0x04)
 
 /**
  * struct sgx_enclave_create - parameter structure for the
@@ -154,7 +152,7 @@
  * Most exceptions reported on ENCLU, including those that occur within the
  * enclave, are fixed up and reported synchronously instead of being delivered
  * via a standard signal. Debug Exceptions (#DB) and Breakpoints (#BP) are
- * never fixed up and are always delivered via standard signals. On synchronously
+ * never fixed up and are always delivered via standard signals. On synchrously
  * reported exceptions, -EFAULT is returned and details about the exception are
  * recorded in @run.exception, the optional sgx_enclave_exception struct.
  *
diff --git a/original/uapi/asm-x86/asm/shmbuf.h b/original/uapi/asm-x86/asm/shmbuf.h
index fce18ea..f0305dc 100644
--- a/original/uapi/asm-x86/asm/shmbuf.h
+++ b/original/uapi/asm-x86/asm/shmbuf.h
@@ -9,7 +9,7 @@
  * The shmid64_ds structure for x86 architecture with x32 ABI.
  *
  * On x86-32 and x86-64 we can just use the generic definition, but
- * x32 uses the same binary layout as x86_64, which is different
+ * x32 uses the same binary layout as x86_64, which is differnet
  * from other 32-bit architectures.
  */
 
diff --git a/original/uapi/asm-x86/asm/sigcontext.h b/original/uapi/asm-x86/asm/sigcontext.h
index d0d9b33..844d60e 100644
--- a/original/uapi/asm-x86/asm/sigcontext.h
+++ b/original/uapi/asm-x86/asm/sigcontext.h
@@ -139,7 +139,7 @@
  * The 64-bit FPU frame. (FXSAVE format and later)
  *
  * Note1: If sw_reserved.magic1 == FP_XSTATE_MAGIC1 then the structure is
- *        larger: 'struct _xstate'. Note that 'struct _xstate' embeds
+ *        larger: 'struct _xstate'. Note that 'struct _xstate' embedds
  *        'struct _fpstate' so that you can always assume the _fpstate portion
  *        exists so that you can check the magic value.
  *
diff --git a/original/uapi/asm-x86/asm/svm.h b/original/uapi/asm-x86/asm/svm.h
index efa9693..554f75f 100644
--- a/original/uapi/asm-x86/asm/svm.h
+++ b/original/uapi/asm-x86/asm/svm.h
@@ -110,9 +110,6 @@
 #define SVM_VMGEXIT_GET_AP_JUMP_TABLE		1
 #define SVM_VMGEXIT_UNSUPPORTED_EVENT		0x8000ffff
 
-/* Exit code reserved for hypervisor/software use */
-#define SVM_EXIT_SW				0xf0000000
-
 #define SVM_EXIT_ERR           -1
 
 #define SVM_EXIT_REASONS \
diff --git a/original/uapi/asm-x86/asm/unistd_32.h b/original/uapi/asm-x86/asm/unistd_32.h
index 3bdb80d..e3d32ca 100644
--- a/original/uapi/asm-x86/asm/unistd_32.h
+++ b/original/uapi/asm-x86/asm/unistd_32.h
@@ -1,5 +1,5 @@
-#ifndef _UAPI_ASM_UNISTD_32_H
-#define _UAPI_ASM_UNISTD_32_H
+#ifndef _ASM_X86_UNISTD_32_H
+#define _ASM_X86_UNISTD_32_H 1
 
 #define __NR_restart_syscall 0
 #define __NR_exit 1
@@ -433,17 +433,9 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
-#define __NR_quotactl_fd 443
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_restrict_self 446
-#define __NR_memfd_secret 447
-#define __NR_process_mrelease 448
-#define __NR_futex_waitv 449
-#define __NR_set_mempolicy_home_node 450
 
 #ifdef __KERNEL__
-#define __NR_syscalls 451
+#define __NR_syscall_max 442
 #endif
 
-#endif /* _UAPI_ASM_UNISTD_32_H */
+#endif /* _ASM_X86_UNISTD_32_H */
diff --git a/original/uapi/asm-x86/asm/unistd_64.h b/original/uapi/asm-x86/asm/unistd_64.h
index a7689ee..ffbe094 100644
--- a/original/uapi/asm-x86/asm/unistd_64.h
+++ b/original/uapi/asm-x86/asm/unistd_64.h
@@ -1,5 +1,5 @@
-#ifndef _UAPI_ASM_UNISTD_64_H
-#define _UAPI_ASM_UNISTD_64_H
+#ifndef _ASM_X86_UNISTD_64_H
+#define _ASM_X86_UNISTD_64_H 1
 
 #define __NR_read 0
 #define __NR_write 1
@@ -355,17 +355,9 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
-#define __NR_quotactl_fd 443
-#define __NR_landlock_create_ruleset 444
-#define __NR_landlock_add_rule 445
-#define __NR_landlock_restrict_self 446
-#define __NR_memfd_secret 447
-#define __NR_process_mrelease 448
-#define __NR_futex_waitv 449
-#define __NR_set_mempolicy_home_node 450
 
 #ifdef __KERNEL__
-#define __NR_syscalls 451
+#define __NR_syscall_max 442
 #endif
 
-#endif /* _UAPI_ASM_UNISTD_64_H */
+#endif /* _ASM_X86_UNISTD_64_H */
diff --git a/original/uapi/asm-x86/asm/unistd_x32.h b/original/uapi/asm-x86/asm/unistd_x32.h
index 700514e..7b7ee98 100644
--- a/original/uapi/asm-x86/asm/unistd_x32.h
+++ b/original/uapi/asm-x86/asm/unistd_x32.h
@@ -1,5 +1,5 @@
-#ifndef _UAPI_ASM_UNISTD_X32_H
-#define _UAPI_ASM_UNISTD_X32_H
+#ifndef _ASM_X86_UNISTD_X32_H
+#define _ASM_X86_UNISTD_X32_H 1
 
 #define __NR_read (__X32_SYSCALL_BIT + 0)
 #define __NR_write (__X32_SYSCALL_BIT + 1)
@@ -308,14 +308,6 @@
 #define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
 #define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
 #define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
-#define __NR_quotactl_fd (__X32_SYSCALL_BIT + 443)
-#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
-#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
-#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
-#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447)
-#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
-#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
-#define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
@@ -354,7 +346,7 @@
 #define __NR_pwritev2 (__X32_SYSCALL_BIT + 547)
 
 #ifdef __KERNEL__
-#define __NR_syscalls 548
+#define __NR_syscall_max 547
 #endif
 
-#endif /* _UAPI_ASM_UNISTD_X32_H */
+#endif /* _ASM_X86_UNISTD_X32_H */
diff --git a/original/uapi/asm-x86/asm/vmx.h b/original/uapi/asm-x86/asm/vmx.h
index 946d761..b8e650a 100644
--- a/original/uapi/asm-x86/asm/vmx.h
+++ b/original/uapi/asm-x86/asm/vmx.h
@@ -27,7 +27,6 @@
 
 
 #define VMX_EXIT_REASONS_FAILED_VMENTRY         0x80000000
-#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE	0x08000000
 
 #define EXIT_REASON_EXCEPTION_NMI       0
 #define EXIT_REASON_EXTERNAL_INTERRUPT  1
diff --git a/original/uapi/drm/amdgpu_drm.h b/original/uapi/drm/amdgpu_drm.h
index 0b94ec7..7fb9c09 100644
--- a/original/uapi/drm/amdgpu_drm.h
+++ b/original/uapi/drm/amdgpu_drm.h
@@ -80,7 +80,7 @@
  *
  * %AMDGPU_GEM_DOMAIN_GTT	GPU accessible system memory, mapped into the
  * GPU's virtual address space via gart. Gart memory linearizes non-contiguous
- * pages of system memory, allows GPU access system memory in a linearized
+ * pages of system memory, allows GPU access system memory in a linezrized
  * fashion.
  *
  * %AMDGPU_GEM_DOMAIN_VRAM	Local video memory. For APUs, it is memory
@@ -116,6 +116,8 @@
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC		(1 << 2)
 /* Flag that the memory should be in VRAM and cleared */
 #define AMDGPU_GEM_CREATE_VRAM_CLEARED		(1 << 3)
+/* Flag that create shadow bo(GTT) while allocating vram bo */
+#define AMDGPU_GEM_CREATE_SHADOW		(1 << 4)
 /* Flag that allocating the BO should use linear VRAM */
 #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS	(1 << 5)
 /* Flag that BO is always valid in this VM */
@@ -136,10 +138,6 @@
  * accessing it with various hw blocks
  */
 #define AMDGPU_GEM_CREATE_ENCRYPTED		(1 << 10)
-/* Flag that BO will be used only in preemptible context, which does
- * not require GTT memory accounting
- */
-#define AMDGPU_GEM_CREATE_PREEMPTIBLE		(1 << 11)
 
 struct drm_amdgpu_gem_create_in  {
 	/** the requested memory size */
@@ -757,8 +755,6 @@
 	#define AMDGPU_INFO_VBIOS_SIZE		0x1
 	/* Subquery id: Query vbios image */
 	#define AMDGPU_INFO_VBIOS_IMAGE		0x2
-	/* Subquery id: Query vbios info */
-	#define AMDGPU_INFO_VBIOS_INFO		0x3
 /* Query UVD handles */
 #define AMDGPU_INFO_NUM_HANDLES			0x1C
 /* Query sensor related information */
@@ -786,6 +782,7 @@
 #define AMDGPU_INFO_VRAM_LOST_COUNTER		0x1F
 /* query ras mask of enabled features*/
 #define AMDGPU_INFO_RAS_ENABLED_FEATURES	0x20
+
 /* RAS MASK: UMC (VRAM) */
 #define AMDGPU_INFO_RAS_ENABLED_UMC			(1 << 0)
 /* RAS MASK: SDMA */
@@ -814,12 +811,6 @@
 #define AMDGPU_INFO_RAS_ENABLED_MP1			(1 << 12)
 /* RAS MASK: FUSE */
 #define AMDGPU_INFO_RAS_ENABLED_FUSE			(1 << 13)
-/* query video encode/decode caps */
-#define AMDGPU_INFO_VIDEO_CAPS			0x21
-	/* Subquery id: Decode */
-	#define AMDGPU_INFO_VIDEO_CAPS_DECODE		0
-	/* Subquery id: Encode */
-	#define AMDGPU_INFO_VIDEO_CAPS_ENCODE		1
 
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT	0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK	0xff
@@ -887,10 +878,6 @@
 		struct {
 			__u32 type;
 		} sensor_info;
-
-		struct {
-			__u32 type;
-		} video_cap;
 	};
 };
 
@@ -951,15 +938,6 @@
 	__u32 feature;
 };
 
-struct drm_amdgpu_info_vbios {
-	__u8 name[64];
-	__u8 vbios_pn[64];
-	__u32 version;
-	__u32 pad;
-	__u8 vbios_ver_str[32];
-	__u8 date[32];
-};
-
 #define AMDGPU_VRAM_TYPE_UNKNOWN 0
 #define AMDGPU_VRAM_TYPE_GDDR1 1
 #define AMDGPU_VRAM_TYPE_DDR2  2
@@ -1096,30 +1074,6 @@
 	__u32 pad;
 };
 
-/* query video encode/decode caps */
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2			0
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4			1
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1			2
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC		3
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC			4
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG			5
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9			6
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1			7
-#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT			8
-
-struct drm_amdgpu_info_video_codec_info {
-	__u32 valid;
-	__u32 max_width;
-	__u32 max_height;
-	__u32 max_pixels_per_frame;
-	__u32 max_level;
-	__u32 pad;
-};
-
-struct drm_amdgpu_info_video_caps {
-	struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
-};
-
 /*
  * Supported GPU families
  */
@@ -1133,7 +1087,6 @@
 #define AMDGPU_FAMILY_RV			142 /* Raven */
 #define AMDGPU_FAMILY_NV			143 /* Navi10 */
 #define AMDGPU_FAMILY_VGH			144 /* Van Gogh */
-#define AMDGPU_FAMILY_YC			146 /* Yellow Carp */
 
 #if defined(__cplusplus)
 }
diff --git a/original/uapi/drm/drm.h b/original/uapi/drm/drm.h
index 6428085..0827037 100644
--- a/original/uapi/drm/drm.h
+++ b/original/uapi/drm/drm.h
@@ -625,147 +625,30 @@
 	__u64 size;
 };
 
-/**
- * DRM_CAP_DUMB_BUFFER
- *
- * If set to 1, the driver supports creating dumb buffers via the
- * &DRM_IOCTL_MODE_CREATE_DUMB ioctl.
- */
 #define DRM_CAP_DUMB_BUFFER		0x1
-/**
- * DRM_CAP_VBLANK_HIGH_CRTC
- *
- * If set to 1, the kernel supports specifying a :ref:`CRTC index<crtc_index>`
- * in the high bits of &drm_wait_vblank_request.type.
- *
- * Starting kernel version 2.6.39, this capability is always set to 1.
- */
 #define DRM_CAP_VBLANK_HIGH_CRTC	0x2
-/**
- * DRM_CAP_DUMB_PREFERRED_DEPTH
- *
- * The preferred bit depth for dumb buffers.
- *
- * The bit depth is the number of bits used to indicate the color of a single
- * pixel excluding any padding. This is different from the number of bits per
- * pixel. For instance, XRGB8888 has a bit depth of 24 but has 32 bits per
- * pixel.
- *
- * Note that this preference only applies to dumb buffers, it's irrelevant for
- * other types of buffers.
- */
 #define DRM_CAP_DUMB_PREFERRED_DEPTH	0x3
-/**
- * DRM_CAP_DUMB_PREFER_SHADOW
- *
- * If set to 1, the driver prefers userspace to render to a shadow buffer
- * instead of directly rendering to a dumb buffer. For best speed, userspace
- * should do streaming ordered memory copies into the dumb buffer and never
- * read from it.
- *
- * Note that this preference only applies to dumb buffers, it's irrelevant for
- * other types of buffers.
- */
 #define DRM_CAP_DUMB_PREFER_SHADOW	0x4
-/**
- * DRM_CAP_PRIME
- *
- * Bitfield of supported PRIME sharing capabilities. See &DRM_PRIME_CAP_IMPORT
- * and &DRM_PRIME_CAP_EXPORT.
- *
- * PRIME buffers are exposed as dma-buf file descriptors. See
- * Documentation/gpu/drm-mm.rst, section "PRIME Buffer Sharing".
- */
 #define DRM_CAP_PRIME			0x5
-/**
- * DRM_PRIME_CAP_IMPORT
- *
- * If this bit is set in &DRM_CAP_PRIME, the driver supports importing PRIME
- * buffers via the &DRM_IOCTL_PRIME_FD_TO_HANDLE ioctl.
- */
 #define  DRM_PRIME_CAP_IMPORT		0x1
-/**
- * DRM_PRIME_CAP_EXPORT
- *
- * If this bit is set in &DRM_CAP_PRIME, the driver supports exporting PRIME
- * buffers via the &DRM_IOCTL_PRIME_HANDLE_TO_FD ioctl.
- */
 #define  DRM_PRIME_CAP_EXPORT		0x2
-/**
- * DRM_CAP_TIMESTAMP_MONOTONIC
- *
- * If set to 0, the kernel will report timestamps with ``CLOCK_REALTIME`` in
- * struct drm_event_vblank. If set to 1, the kernel will report timestamps with
- * ``CLOCK_MONOTONIC``. See ``clock_gettime(2)`` for the definition of these
- * clocks.
- *
- * Starting from kernel version 2.6.39, the default value for this capability
- * is 1. Starting kernel version 4.15, this capability is always set to 1.
- */
 #define DRM_CAP_TIMESTAMP_MONOTONIC	0x6
-/**
- * DRM_CAP_ASYNC_PAGE_FLIP
- *
- * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC.
- */
 #define DRM_CAP_ASYNC_PAGE_FLIP		0x7
-/**
- * DRM_CAP_CURSOR_WIDTH
- *
- * The ``CURSOR_WIDTH`` and ``CURSOR_HEIGHT`` capabilities return a valid
- * width x height combination for the hardware cursor. The intention is that a
- * hardware agnostic userspace can query a cursor plane size to use.
+/*
+ * The CURSOR_WIDTH and CURSOR_HEIGHT capabilities return a valid widthxheight
+ * combination for the hardware cursor. The intention is that a hardware
+ * agnostic userspace can query a cursor plane size to use.
  *
  * Note that the cross-driver contract is to merely return a valid size;
  * drivers are free to attach another meaning on top, eg. i915 returns the
  * maximum plane size.
  */
 #define DRM_CAP_CURSOR_WIDTH		0x8
-/**
- * DRM_CAP_CURSOR_HEIGHT
- *
- * See &DRM_CAP_CURSOR_WIDTH.
- */
 #define DRM_CAP_CURSOR_HEIGHT		0x9
-/**
- * DRM_CAP_ADDFB2_MODIFIERS
- *
- * If set to 1, the driver supports supplying modifiers in the
- * &DRM_IOCTL_MODE_ADDFB2 ioctl.
- */
 #define DRM_CAP_ADDFB2_MODIFIERS	0x10
-/**
- * DRM_CAP_PAGE_FLIP_TARGET
- *
- * If set to 1, the driver supports the &DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE and
- * &DRM_MODE_PAGE_FLIP_TARGET_RELATIVE flags in
- * &drm_mode_crtc_page_flip_target.flags for the &DRM_IOCTL_MODE_PAGE_FLIP
- * ioctl.
- */
 #define DRM_CAP_PAGE_FLIP_TARGET	0x11
-/**
- * DRM_CAP_CRTC_IN_VBLANK_EVENT
- *
- * If set to 1, the kernel supports reporting the CRTC ID in
- * &drm_event_vblank.crtc_id for the &DRM_EVENT_VBLANK and
- * &DRM_EVENT_FLIP_COMPLETE events.
- *
- * Starting kernel version 4.12, this capability is always set to 1.
- */
 #define DRM_CAP_CRTC_IN_VBLANK_EVENT	0x12
-/**
- * DRM_CAP_SYNCOBJ
- *
- * If set to 1, the driver supports sync objects. See
- * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects".
- */
 #define DRM_CAP_SYNCOBJ		0x13
-/**
- * DRM_CAP_SYNCOBJ_TIMELINE
- *
- * If set to 1, the driver supports timeline operations on sync objects. See
- * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects".
- */
 #define DRM_CAP_SYNCOBJ_TIMELINE	0x14
 
 /* DRM_IOCTL_GET_CAP ioctl argument type */
@@ -777,12 +660,9 @@
 /**
  * DRM_CLIENT_CAP_STEREO_3D
  *
- * If set to 1, the DRM core will expose the stereo 3D capabilities of the
+ * if set to 1, the DRM core will expose the stereo 3D capabilities of the
  * monitor by advertising the supported 3D layouts in the flags of struct
- * drm_mode_modeinfo. See ``DRM_MODE_FLAG_3D_*``.
- *
- * This capability is always supported for all drivers starting from kernel
- * version 3.13.
+ * drm_mode_modeinfo.
  */
 #define DRM_CLIENT_CAP_STEREO_3D	1
 
@@ -791,9 +671,6 @@
  *
  * If set to 1, the DRM core will expose all planes (overlay, primary, and
  * cursor) to userspace.
- *
- * This capability has been introduced in kernel version 3.15. Starting from
- * kernel version 3.17, this capability is always supported for all drivers.
  */
 #define DRM_CLIENT_CAP_UNIVERSAL_PLANES  2
 
@@ -803,13 +680,6 @@
  * If set to 1, the DRM core will expose atomic properties to userspace. This
  * implicitly enables &DRM_CLIENT_CAP_UNIVERSAL_PLANES and
  * &DRM_CLIENT_CAP_ASPECT_RATIO.
- *
- * If the driver doesn't support atomic mode-setting, enabling this capability
- * will fail with -EOPNOTSUPP.
- *
- * This capability has been introduced in kernel version 4.0. Starting from
- * kernel version 4.2, this capability is always supported for atomic-capable
- * drivers.
  */
 #define DRM_CLIENT_CAP_ATOMIC	3
 
@@ -817,10 +687,6 @@
  * DRM_CLIENT_CAP_ASPECT_RATIO
  *
  * If set to 1, the DRM core will provide aspect ratio information in modes.
- * See ``DRM_MODE_FLAG_PIC_AR_*``.
- *
- * This capability is always supported for all drivers starting from kernel
- * version 4.18.
  */
 #define DRM_CLIENT_CAP_ASPECT_RATIO    4
 
@@ -828,11 +694,8 @@
  * DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
  *
  * If set to 1, the DRM core will expose special connectors to be used for
- * writing back to memory the scene setup in the commit. The client must enable
- * &DRM_CLIENT_CAP_ATOMIC first.
- *
- * This capability is always supported for atomic-capable drivers starting from
- * kernel version 4.19.
+ * writing back to memory the scene setup in the commit. Depends on client
+ * also supporting DRM_CLIENT_CAP_ATOMIC
  */
 #define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS	5
 
@@ -1050,16 +913,6 @@
 #define DRM_IOCTL_MODE_GETPROPBLOB	DRM_IOWR(0xAC, struct drm_mode_get_blob)
 #define DRM_IOCTL_MODE_GETFB		DRM_IOWR(0xAD, struct drm_mode_fb_cmd)
 #define DRM_IOCTL_MODE_ADDFB		DRM_IOWR(0xAE, struct drm_mode_fb_cmd)
-/**
- * DRM_IOCTL_MODE_RMFB - Remove a framebuffer.
- *
- * This removes a framebuffer previously added via ADDFB/ADDFB2. The IOCTL
- * argument is a framebuffer object ID.
- *
- * Warning: removing a framebuffer currently in-use on an enabled plane will
- * disable that plane. The CRTC the plane is linked to may also be disabled
- * (depending on driver capabilities).
- */
 #define DRM_IOCTL_MODE_RMFB		DRM_IOWR(0xAF, unsigned int)
 #define DRM_IOCTL_MODE_PAGE_FLIP	DRM_IOWR(0xB0, struct drm_mode_crtc_page_flip)
 #define DRM_IOCTL_MODE_DIRTYFB		DRM_IOWR(0xB1, struct drm_mode_fb_dirty_cmd)
@@ -1096,24 +949,6 @@
 #define DRM_IOCTL_SYNCOBJ_TRANSFER	DRM_IOWR(0xCC, struct drm_syncobj_transfer)
 #define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL	DRM_IOWR(0xCD, struct drm_syncobj_timeline_array)
 
-/**
- * DRM_IOCTL_MODE_GETFB2 - Get framebuffer metadata.
- *
- * This queries metadata about a framebuffer. User-space fills
- * &drm_mode_fb_cmd2.fb_id as the input, and the kernels fills the rest of the
- * struct as the output.
- *
- * If the client is DRM master or has &CAP_SYS_ADMIN, &drm_mode_fb_cmd2.handles
- * will be filled with GEM buffer handles. Planes are valid until one has a
- * zero handle -- this can be used to compute the number of planes.
- *
- * Otherwise, &drm_mode_fb_cmd2.handles will be zeroed and planes are valid
- * until one has a zero &drm_mode_fb_cmd2.pitches.
- *
- * If the framebuffer has a format modifier, &DRM_MODE_FB_MODIFIERS will be set
- * in &drm_mode_fb_cmd2.flags and &drm_mode_fb_cmd2.modifier will contain the
- * modifier. Otherwise, user-space must ignore &drm_mode_fb_cmd2.modifier.
- */
 #define DRM_IOCTL_MODE_GETFB2		DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)
 
 /*
diff --git a/original/uapi/drm/drm_fourcc.h b/original/uapi/drm/drm_fourcc.h
index fc0c145..f76de49 100644
--- a/original/uapi/drm/drm_fourcc.h
+++ b/original/uapi/drm/drm_fourcc.h
@@ -104,12 +104,6 @@
 /* 8 bpp Red */
 #define DRM_FORMAT_R8		fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
 
-/* 10 bpp Red */
-#define DRM_FORMAT_R10		fourcc_code('R', '1', '0', ' ') /* [15:0] x:R 6:10 little endian */
-
-/* 12 bpp Red */
-#define DRM_FORMAT_R12		fourcc_code('R', '1', '2', ' ') /* [15:0] x:R 4:12 little endian */
-
 /* 16 bpp Red */
 #define DRM_FORMAT_R16		fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */
 
@@ -174,13 +168,6 @@
 #define DRM_FORMAT_RGBA1010102	fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */
 #define DRM_FORMAT_BGRA1010102	fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */
 
-/* 64 bpp RGB */
-#define DRM_FORMAT_XRGB16161616	fourcc_code('X', 'R', '4', '8') /* [63:0] x:R:G:B 16:16:16:16 little endian */
-#define DRM_FORMAT_XBGR16161616	fourcc_code('X', 'B', '4', '8') /* [63:0] x:B:G:R 16:16:16:16 little endian */
-
-#define DRM_FORMAT_ARGB16161616	fourcc_code('A', 'R', '4', '8') /* [63:0] A:R:G:B 16:16:16:16 little endian */
-#define DRM_FORMAT_ABGR16161616	fourcc_code('A', 'B', '4', '8') /* [63:0] A:B:G:R 16:16:16:16 little endian */
-
 /*
  * Floating point 64bpp RGB
  * IEEE 754-2008 binary16 half-precision float
@@ -314,13 +301,6 @@
  */
 #define DRM_FORMAT_P016		fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
 
-/* 2 plane YCbCr420.
- * 3 10 bit components and 2 padding bits packed into 4 bytes.
- * index 0 = Y plane, [31:0] x:Y2:Y1:Y0 2:10:10:10 little endian
- * index 1 = Cr:Cb plane, [63:0] x:Cr2:Cb2:Cr1:x:Cb1:Cr0:Cb0 [2:10:10:10:2:10:10:10] little endian
- */
-#define DRM_FORMAT_P030		fourcc_code('P', '0', '3', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel packed */
-
 /* 3 plane non-subsampled (444) YCbCr
  * 16 bits per component, but only 10 bits are used and 6 bits are padded
  * index 0: Y plane, [15:0] Y:x [10:6] little endian
@@ -386,12 +366,6 @@
 
 #define DRM_FORMAT_RESERVED	      ((1ULL << 56) - 1)
 
-#define fourcc_mod_get_vendor(modifier) \
-	(((modifier) >> 56) & 0xff)
-
-#define fourcc_mod_is_vendor(modifier, vendor) \
-	(fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_## vendor)
-
 #define fourcc_mod_code(vendor, val) \
 	((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
 
@@ -861,10 +835,6 @@
  * and UV.  Some SAND-using hardware stores UV in a separate tiled
  * image from Y to reduce the column height, which is not supported
  * with these modifiers.
- *
- * The DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT modifier is also
- * supported for DRM_FORMAT_P030 where the columns remain as 128 bytes
- * wide, but as this is a 10 bpp format that translates to 96 pixels.
  */
 
 #define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
@@ -923,9 +893,9 @@
 
 /*
  * The top 4 bits (out of the 56 bits alloted for specifying vendor specific
- * modifiers) denote the category for modifiers. Currently we have three
- * categories of modifiers ie AFBC, MISC and AFRC. We can have a maximum of
- * sixteen different categories.
+ * 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))
@@ -1041,109 +1011,6 @@
 #define AFBC_FORMAT_MOD_USM	(1ULL << 12)
 
 /*
- * Arm Fixed-Rate Compression (AFRC) modifiers
- *
- * AFRC is a proprietary fixed rate image compression protocol and format,
- * designed to provide guaranteed bandwidth and memory footprint
- * reductions in graphics and media use-cases.
- *
- * AFRC buffers consist of one or more planes, with the same components
- * and meaning as an uncompressed buffer using the same pixel format.
- *
- * Within each plane, the pixel/luma/chroma values are grouped into
- * "coding unit" blocks which are individually compressed to a
- * fixed size (in bytes). All coding units within a given plane of a buffer
- * store the same number of values, and have the same compressed size.
- *
- * The coding unit size is configurable, allowing different rates of compression.
- *
- * The start of each AFRC buffer plane must be aligned to an alignment granule which
- * depends on the coding unit size.
- *
- * Coding Unit Size   Plane Alignment
- * ----------------   ---------------
- * 16 bytes           1024 bytes
- * 24 bytes           512  bytes
- * 32 bytes           2048 bytes
- *
- * Coding units are grouped into paging tiles. AFRC buffer dimensions must be aligned
- * to a multiple of the paging tile dimensions.
- * The dimensions of each paging tile depend on whether the buffer is optimised for
- * scanline (SCAN layout) or rotated (ROT layout) access.
- *
- * Layout   Paging Tile Width   Paging Tile Height
- * ------   -----------------   ------------------
- * SCAN     16 coding units     4 coding units
- * ROT      8  coding units     8 coding units
- *
- * The dimensions of each coding unit depend on the number of components
- * in the compressed plane and whether the buffer is optimised for
- * scanline (SCAN layout) or rotated (ROT layout) access.
- *
- * Number of Components in Plane   Layout      Coding Unit Width   Coding Unit Height
- * -----------------------------   ---------   -----------------   ------------------
- * 1                               SCAN        16 samples          4 samples
- * Example: 16x4 luma samples in a 'Y' plane
- *          16x4 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
- * -----------------------------   ---------   -----------------   ------------------
- * 1                               ROT         8 samples           8 samples
- * Example: 8x8 luma samples in a 'Y' plane
- *          8x8 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
- * -----------------------------   ---------   -----------------   ------------------
- * 2                               DONT CARE   8 samples           4 samples
- * Example: 8x4 chroma pairs in the 'UV' plane of a semi-planar YUV buffer
- * -----------------------------   ---------   -----------------   ------------------
- * 3                               DONT CARE   4 samples           4 samples
- * Example: 4x4 pixels in an RGB buffer without alpha
- * -----------------------------   ---------   -----------------   ------------------
- * 4                               DONT CARE   4 samples           4 samples
- * Example: 4x4 pixels in an RGB buffer with alpha
- */
-
-#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
-
-#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) \
-	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
-
-/*
- * AFRC coding unit size modifier.
- *
- * Indicates the number of bytes used to store each compressed coding unit for
- * one or more planes in an AFRC encoded buffer. The coding unit size for chrominance
- * is the same for both Cb and Cr, which may be stored in separate planes.
- *
- * AFRC_FORMAT_MOD_CU_SIZE_P0 indicates the number of bytes used to store
- * each compressed coding unit in the first plane of the buffer. For RGBA buffers
- * this is the only plane, while for semi-planar and fully-planar YUV buffers,
- * this corresponds to the luma plane.
- *
- * AFRC_FORMAT_MOD_CU_SIZE_P12 indicates the number of bytes used to store
- * each compressed coding unit in the second and third planes in the buffer.
- * For semi-planar and fully-planar YUV buffers, this corresponds to the chroma plane(s).
- *
- * For single-plane buffers, AFRC_FORMAT_MOD_CU_SIZE_P0 must be specified
- * and AFRC_FORMAT_MOD_CU_SIZE_P12 must be zero.
- * For semi-planar and fully-planar buffers, both AFRC_FORMAT_MOD_CU_SIZE_P0 and
- * AFRC_FORMAT_MOD_CU_SIZE_P12 must be specified.
- */
-#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
-#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
-#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
-#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
-
-#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
-#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
-
-/*
- * AFRC scanline memory layout.
- *
- * Indicates if the buffer uses the scanline-optimised layout
- * for an AFRC encoded buffer, otherwise, it uses the rotation-optimised layout.
- * The memory layout is the same for all planes.
- */
-#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
-
-/*
  * Arm 16x16 Block U-Interleaved modifier
  *
  * This is used by Arm Mali Utgard and Midgard GPUs. It divides the image
diff --git a/original/uapi/drm/drm_mode.h b/original/uapi/drm/drm_mode.h
index e1e3516..1c06462 100644
--- a/original/uapi/drm/drm_mode.h
+++ b/original/uapi/drm/drm_mode.h
@@ -312,48 +312,16 @@
 	__u32 src_w;
 };
 
-/**
- * struct drm_mode_get_plane - Get plane metadata.
- *
- * Userspace can perform a GETPLANE ioctl to retrieve information about a
- * plane.
- *
- * To retrieve the number of formats supported, set @count_format_types to zero
- * and call the ioctl. @count_format_types will be updated with the value.
- *
- * To retrieve these formats, allocate an array with the memory needed to store
- * @count_format_types formats. Point @format_type_ptr to this array and call
- * the ioctl again (with @count_format_types still set to the value returned in
- * the first ioctl call).
- */
 struct drm_mode_get_plane {
-	/**
-	 * @plane_id: Object ID of the plane whose information should be
-	 * retrieved. Set by caller.
-	 */
 	__u32 plane_id;
 
-	/** @crtc_id: Object ID of the current CRTC. */
 	__u32 crtc_id;
-	/** @fb_id: Object ID of the current fb. */
 	__u32 fb_id;
 
-	/**
-	 * @possible_crtcs: Bitmask of CRTC's compatible with the plane. CRTC's
-	 * are created and they receive an index, which corresponds to their
-	 * position in the bitmask. Bit N corresponds to
-	 * :ref:`CRTC index<crtc_index>` N.
-	 */
 	__u32 possible_crtcs;
-	/** @gamma_size: Never used. */
 	__u32 gamma_size;
 
-	/** @count_format_types: Number of formats. */
 	__u32 count_format_types;
-	/**
-	 * @format_type_ptr: Pointer to ``__u32`` array of formats that are
-	 * supported by the plane. These formats do not require modifiers.
-	 */
 	__u64 format_type_ptr;
 };
 
@@ -420,7 +388,6 @@
 #define DRM_MODE_CONNECTOR_DPI		17
 #define DRM_MODE_CONNECTOR_WRITEBACK	18
 #define DRM_MODE_CONNECTOR_SPI		19
-#define DRM_MODE_CONNECTOR_USB		20
 
 /**
  * struct drm_mode_get_connector - Get connector metadata.
@@ -445,10 +412,9 @@
  *
  * **Force-probing a connector**
  *
- * If the @count_modes field is set to zero and the DRM client is the current
- * DRM master, the kernel will perform a forced probe on the connector to
- * refresh the connector status, modes and EDID. A forced-probe can be slow,
- * might cause flickering and the ioctl will block.
+ * If the @count_modes field is set to zero, the kernel will perform a forced
+ * probe on the connector to refresh the connector status, modes and EDID.
+ * A forced-probe can be slow, might cause flickering and the ioctl will block.
  *
  * User-space needs to force-probe connectors to ensure their metadata is
  * up-to-date at startup and after receiving a hot-plug event. User-space
@@ -541,74 +507,22 @@
  */
 #define DRM_MODE_PROP_ATOMIC        0x80000000
 
-/**
- * struct drm_mode_property_enum - Description for an enum/bitfield entry.
- * @value: numeric value for this enum entry.
- * @name: symbolic name for this enum entry.
- *
- * See struct drm_property_enum for details.
- */
 struct drm_mode_property_enum {
 	__u64 value;
 	char name[DRM_PROP_NAME_LEN];
 };
 
-/**
- * struct drm_mode_get_property - Get property metadata.
- *
- * User-space can perform a GETPROPERTY ioctl to retrieve information about a
- * property. The same property may be attached to multiple objects, see
- * "Modeset Base Object Abstraction".
- *
- * The meaning of the @values_ptr field changes depending on the property type.
- * See &drm_property.flags for more details.
- *
- * The @enum_blob_ptr and @count_enum_blobs fields are only meaningful when the
- * property has the type &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK. For
- * backwards compatibility, the kernel will always set @count_enum_blobs to
- * zero when the property has the type &DRM_MODE_PROP_BLOB. User-space must
- * ignore these two fields if the property has a different type.
- *
- * User-space is expected to retrieve values and enums by performing this ioctl
- * at least twice: the first time to retrieve the number of elements, the
- * second time to retrieve the elements themselves.
- *
- * To retrieve the number of elements, set @count_values and @count_enum_blobs
- * to zero, then call the ioctl. @count_values will be updated with the number
- * of elements. If the property has the type &DRM_MODE_PROP_ENUM or
- * &DRM_MODE_PROP_BITMASK, @count_enum_blobs will be updated as well.
- *
- * To retrieve the elements themselves, allocate an array for @values_ptr and
- * set @count_values to its capacity. If the property has the type
- * &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK, allocate an array for
- * @enum_blob_ptr and set @count_enum_blobs to its capacity. Calling the ioctl
- * again will fill the arrays.
- */
 struct drm_mode_get_property {
-	/** @values_ptr: Pointer to a ``__u64`` array. */
-	__u64 values_ptr;
-	/** @enum_blob_ptr: Pointer to a struct drm_mode_property_enum array. */
-	__u64 enum_blob_ptr;
+	__u64 values_ptr; /* values and blob lengths */
+	__u64 enum_blob_ptr; /* enum and blob id ptrs */
 
-	/**
-	 * @prop_id: Object ID of the property which should be retrieved. Set
-	 * by the caller.
-	 */
 	__u32 prop_id;
-	/**
-	 * @flags: ``DRM_MODE_PROP_*`` bitfield. See &drm_property.flags for
-	 * a definition of the flags.
-	 */
 	__u32 flags;
-	/**
-	 * @name: Symbolic property name. User-space should use this field to
-	 * recognize properties.
-	 */
 	char name[DRM_PROP_NAME_LEN];
 
-	/** @count_values: Number of elements in @values_ptr. */
 	__u32 count_values;
-	/** @count_enum_blobs: Number of elements in @enum_blob_ptr. */
+	/* This is only used to count enum values, not blobs. The _blobs is
+	 * simply because of a historical reason, i.e. backwards compat. */
 	__u32 count_enum_blobs;
 };
 
@@ -1076,7 +990,7 @@
 };
 
 /**
- * struct drm_mode_create_blob - Create New blob property
+ * struct drm_mode_create_blob - Create New block property
  *
  * Create a new 'blob' data property, copying length bytes from data pointer,
  * and returning new blob ID.
@@ -1110,10 +1024,6 @@
  * struct drm_mode_create_lease - Create lease
  *
  * Lease mode resources, creating another drm_master.
- *
- * The @object_ids array must reference at least one CRTC, one connector and
- * one plane if &DRM_CLIENT_CAP_UNIVERSAL_PLANES is enabled. Alternatively,
- * the lease can be completely empty.
  */
 struct drm_mode_create_lease {
 	/** @object_ids: Pointer to array of object ids (__u32) */
diff --git a/original/uapi/drm/etnaviv_drm.h b/original/uapi/drm/etnaviv_drm.h
index af024d9..09d0df8 100644
--- a/original/uapi/drm/etnaviv_drm.h
+++ b/original/uapi/drm/etnaviv_drm.h
@@ -74,9 +74,6 @@
 #define ETNAVIV_PARAM_GPU_NUM_CONSTANTS             0x19
 #define ETNAVIV_PARAM_GPU_NUM_VARYINGS              0x1a
 #define ETNAVIV_PARAM_SOFTPIN_START_ADDR            0x1b
-#define ETNAVIV_PARAM_GPU_PRODUCT_ID                0x1c
-#define ETNAVIV_PARAM_GPU_CUSTOMER_ID               0x1d
-#define ETNAVIV_PARAM_GPU_ECO_ID                    0x1e
 
 #define ETNA_MAX_PIPES 4
 
diff --git a/original/uapi/drm/i915_drm.h b/original/uapi/drm/i915_drm.h
index 914ebd9..1987e2e 100644
--- a/original/uapi/drm/i915_drm.h
+++ b/original/uapi/drm/i915_drm.h
@@ -62,8 +62,8 @@
 #define I915_ERROR_UEVENT		"ERROR"
 #define I915_RESET_UEVENT		"RESET"
 
-/**
- * struct i915_user_extension - Base class for defining a chain of extensions
+/*
+ * i915_user_extension: Base class for defining a chain of extensions
  *
  * Many interfaces need to grow over time. In most cases we can simply
  * extend the struct and have userspace pass in more data. Another option,
@@ -76,58 +76,12 @@
  * increasing complexity, and for large parts of that interface to be
  * entirely optional. The downside is more pointer chasing; chasing across
  * the __user boundary with pointers encapsulated inside u64.
- *
- * Example chaining:
- *
- * .. code-block:: C
- *
- *	struct i915_user_extension ext3 {
- *		.next_extension = 0, // end
- *		.name = ...,
- *	};
- *	struct i915_user_extension ext2 {
- *		.next_extension = (uintptr_t)&ext3,
- *		.name = ...,
- *	};
- *	struct i915_user_extension ext1 {
- *		.next_extension = (uintptr_t)&ext2,
- *		.name = ...,
- *	};
- *
- * Typically the struct i915_user_extension would be embedded in some uAPI
- * struct, and in this case we would feed it the head of the chain(i.e ext1),
- * which would then apply all of the above extensions.
- *
  */
 struct i915_user_extension {
-	/**
-	 * @next_extension:
-	 *
-	 * Pointer to the next struct i915_user_extension, or zero if the end.
-	 */
 	__u64 next_extension;
-	/**
-	 * @name: Name of the extension.
-	 *
-	 * Note that the name here is just some integer.
-	 *
-	 * Also note that the name space for this is not global for the whole
-	 * driver, but rather its scope/meaning is limited to the specific piece
-	 * of uAPI which has embedded the struct i915_user_extension.
-	 */
 	__u32 name;
-	/**
-	 * @flags: MBZ
-	 *
-	 * All undefined bits must be zero.
-	 */
-	__u32 flags;
-	/**
-	 * @rsvd: MBZ
-	 *
-	 * Reserved for future use; must be zero.
-	 */
-	__u32 rsvd[4];
+	__u32 flags; /* All undefined bits must be zero. */
+	__u32 rsvd[4]; /* Reserved for future use; must be zero. */
 };
 
 /*
@@ -406,7 +360,6 @@
 #define DRM_I915_QUERY			0x39
 #define DRM_I915_GEM_VM_CREATE		0x3a
 #define DRM_I915_GEM_VM_DESTROY		0x3b
-#define DRM_I915_GEM_CREATE_EXT		0x3c
 /* Must be kept compact -- no holes */
 
 #define DRM_IOCTL_I915_INIT		DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
@@ -439,7 +392,6 @@
 #define DRM_IOCTL_I915_GEM_ENTERVT	DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
 #define DRM_IOCTL_I915_GEM_LEAVEVT	DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
 #define DRM_IOCTL_I915_GEM_CREATE	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
-#define DRM_IOCTL_I915_GEM_CREATE_EXT	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext)
 #define DRM_IOCTL_I915_GEM_PREAD	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
 #define DRM_IOCTL_I915_GEM_PWRITE	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
 #define DRM_IOCTL_I915_GEM_MMAP		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
@@ -572,15 +524,6 @@
 #define   I915_SCHEDULER_CAP_PREEMPTION	(1ul << 2)
 #define   I915_SCHEDULER_CAP_SEMAPHORES	(1ul << 3)
 #define   I915_SCHEDULER_CAP_ENGINE_BUSY_STATS	(1ul << 4)
-/*
- * Indicates the 2k user priority levels are statically mapped into 3 buckets as
- * follows:
- *
- * -1k to -1	Low priority
- * 0		Normal priority
- * 1 to 1k	Highest priority
- */
-#define   I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP	(1ul << 5)
 
 #define I915_PARAM_HUC_STATUS		 42
 
@@ -683,9 +626,6 @@
  */
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
 
-/* Query if the kernel supports the I915_USERPTR_PROBE flag. */
-#define I915_PARAM_HAS_USERPTR_PROBE 56
-
 /* Must be kept compact -- no holes and well documented */
 
 typedef struct drm_i915_getparam {
@@ -861,113 +801,45 @@
 	__u64 offset;
 };
 
-/**
- * struct drm_i915_gem_mmap_offset - Retrieve an offset so we can mmap this buffer object.
- *
- * This struct is passed as argument to the `DRM_IOCTL_I915_GEM_MMAP_OFFSET` ioctl,
- * and is used to retrieve the fake offset to mmap an object specified by &handle.
- *
- * The legacy way of using `DRM_IOCTL_I915_GEM_MMAP` is removed on gen12+.
- * `DRM_IOCTL_I915_GEM_MMAP_GTT` is an older supported alias to this struct, but will behave
- * as setting the &extensions to 0, and &flags to `I915_MMAP_OFFSET_GTT`.
- */
 struct drm_i915_gem_mmap_offset {
-	/** @handle: Handle for the object being mapped. */
+	/** Handle for the object being mapped. */
 	__u32 handle;
-	/** @pad: Must be zero */
 	__u32 pad;
 	/**
-	 * @offset: The fake offset to use for subsequent mmap call
+	 * Fake offset to use for subsequent mmap call
 	 *
 	 * This is a fixed-size type for 32/64 compatibility.
 	 */
 	__u64 offset;
 
 	/**
-	 * @flags: Flags for extended behaviour.
+	 * Flags for extended behaviour.
 	 *
-	 * It is mandatory that one of the `MMAP_OFFSET` types
-	 * should be included:
-	 *
-	 * - `I915_MMAP_OFFSET_GTT`: Use mmap with the object bound to GTT. (Write-Combined)
-	 * - `I915_MMAP_OFFSET_WC`: Use Write-Combined caching.
-	 * - `I915_MMAP_OFFSET_WB`: Use Write-Back caching.
-	 * - `I915_MMAP_OFFSET_FIXED`: Use object placement to determine caching.
-	 *
-	 * On devices with local memory `I915_MMAP_OFFSET_FIXED` is the only valid
-	 * type. On devices without local memory, this caching mode is invalid.
-	 *
-	 * As caching mode when specifying `I915_MMAP_OFFSET_FIXED`, WC or WB will
-	 * be used, depending on the object placement on creation. WB will be used
-	 * when the object can only exist in system memory, WC otherwise.
+	 * It is mandatory that one of the MMAP_OFFSET types
+	 * (GTT, WC, WB, UC, etc) should be included.
 	 */
 	__u64 flags;
+#define I915_MMAP_OFFSET_GTT 0
+#define I915_MMAP_OFFSET_WC  1
+#define I915_MMAP_OFFSET_WB  2
+#define I915_MMAP_OFFSET_UC  3
 
-#define I915_MMAP_OFFSET_GTT	0
-#define I915_MMAP_OFFSET_WC	1
-#define I915_MMAP_OFFSET_WB	2
-#define I915_MMAP_OFFSET_UC	3
-#define I915_MMAP_OFFSET_FIXED	4
-
-	/**
-	 * @extensions: Zero-terminated chain of extensions.
+	/*
+	 * Zero-terminated chain of extensions.
 	 *
 	 * No current extensions defined; mbz.
 	 */
 	__u64 extensions;
 };
 
-/**
- * struct drm_i915_gem_set_domain - Adjust the objects write or read domain, in
- * preparation for accessing the pages via some CPU domain.
- *
- * Specifying a new write or read domain will flush the object out of the
- * previous domain(if required), before then updating the objects domain
- * tracking with the new domain.
- *
- * Note this might involve waiting for the object first if it is still active on
- * the GPU.
- *
- * Supported values for @read_domains and @write_domain:
- *
- *	- I915_GEM_DOMAIN_WC: Uncached write-combined domain
- *	- I915_GEM_DOMAIN_CPU: CPU cache domain
- *	- I915_GEM_DOMAIN_GTT: Mappable aperture domain
- *
- * All other domains are rejected.
- *
- * Note that for discrete, starting from DG1, this is no longer supported, and
- * is instead rejected. On such platforms the CPU domain is effectively static,
- * where we also only support a single &drm_i915_gem_mmap_offset cache mode,
- * which can't be set explicitly and instead depends on the object placements,
- * as per the below.
- *
- * Implicit caching rules, starting from DG1:
- *
- *	- If any of the object placements (see &drm_i915_gem_create_ext_memory_regions)
- *	  contain I915_MEMORY_CLASS_DEVICE then the object will be allocated and
- *	  mapped as write-combined only.
- *
- *	- Everything else is always allocated and mapped as write-back, with the
- *	  guarantee that everything is also coherent with the GPU.
- *
- * Note that this is likely to change in the future again, where we might need
- * more flexibility on future devices, so making this all explicit as part of a
- * new &drm_i915_gem_create_ext extension is probable.
- */
 struct drm_i915_gem_set_domain {
-	/** @handle: Handle for the object. */
+	/** Handle for the object */
 	__u32 handle;
 
-	/** @read_domains: New read domains. */
+	/** New read domains */
 	__u32 read_domains;
 
-	/**
-	 * @write_domain: New write domain.
-	 *
-	 * Note that having something in the write domain implies it's in the
-	 * read domain, and only that read domain.
-	 */
+	/** New write domain */
 	__u32 write_domain;
 };
 
@@ -1071,7 +943,6 @@
 	__u64 offset;
 };
 
-/* DRM_IOCTL_I915_GEM_EXECBUFFER was removed in Linux 5.13 */
 struct drm_i915_gem_execbuffer {
 	/**
 	 * List of buffers to be validated with their relocations to be
@@ -1182,12 +1053,12 @@
 	__u32 flags;
 };
 
-/*
+/**
  * See drm_i915_gem_execbuffer_ext_timeline_fences.
  */
 #define DRM_I915_GEM_EXECBUFFER_EXT_TIMELINE_FENCES 0
 
-/*
+/**
  * This structure describes an array of drm_syncobj and associated points for
  * timeline variants of drm_syncobj. It is invalid to append this structure to
  * the execbuf if I915_EXEC_FENCE_ARRAY is set.
@@ -1428,11 +1299,12 @@
 	 * reading from the object simultaneously.
 	 *
 	 * The value of each engine class is the same as specified in the
-	 * I915_CONTEXT_PARAM_ENGINES context parameter and via perf, i.e.
+	 * I915_CONTEXT_SET_ENGINES parameter and via perf, i.e.
 	 * I915_ENGINE_CLASS_RENDER, I915_ENGINE_CLASS_COPY, etc.
-	 * Some hardware may have parallel execution engines, e.g. multiple
-	 * media engines, which are mapped to the same class identifier and so
-	 * are not separately reported for busyness.
+	 * reported as active itself. Some hardware may have parallel
+	 * execution engines, e.g. multiple media engines, which are
+	 * mapped to the same class identifier and so are not separately
+	 * reported for busyness.
 	 *
 	 * Caveat emptor:
 	 * Only the boolean result of this query is reliable; that is whether
@@ -1443,91 +1315,49 @@
 };
 
 /**
- * struct drm_i915_gem_caching - Set or get the caching for given object
- * handle.
+ * I915_CACHING_NONE
  *
- * Allow userspace to control the GTT caching bits for a given object when the
- * object is later mapped through the ppGTT(or GGTT on older platforms lacking
- * ppGTT support, or if the object is used for scanout). Note that this might
- * require unbinding the object from the GTT first, if its current caching value
- * doesn't match.
- *
- * Note that this all changes on discrete platforms, starting from DG1, the
- * set/get caching is no longer supported, and is now rejected.  Instead the CPU
- * caching attributes(WB vs WC) will become an immutable creation time property
- * for the object, along with the GTT caching level. For now we don't expose any
- * new uAPI for this, instead on DG1 this is all implicit, although this largely
- * shouldn't matter since DG1 is coherent by default(without any way of
- * controlling it).
- *
- * Implicit caching rules, starting from DG1:
- *
- *     - If any of the object placements (see &drm_i915_gem_create_ext_memory_regions)
- *       contain I915_MEMORY_CLASS_DEVICE then the object will be allocated and
- *       mapped as write-combined only.
- *
- *     - Everything else is always allocated and mapped as write-back, with the
- *       guarantee that everything is also coherent with the GPU.
- *
- * Note that this is likely to change in the future again, where we might need
- * more flexibility on future devices, so making this all explicit as part of a
- * new &drm_i915_gem_create_ext extension is probable.
- *
- * Side note: Part of the reason for this is that changing the at-allocation-time CPU
- * caching attributes for the pages might be required(and is expensive) if we
- * need to then CPU map the pages later with different caching attributes. This
- * inconsistent caching behaviour, while supported on x86, is not universally
- * supported on other architectures. So for simplicity we opt for setting
- * everything at creation time, whilst also making it immutable, on discrete
- * platforms.
+ * GPU access is not coherent with cpu caches. Default for machines without an
+ * LLC.
  */
+#define I915_CACHING_NONE		0
+/**
+ * I915_CACHING_CACHED
+ *
+ * GPU access is coherent with cpu caches and furthermore the data is cached in
+ * last-level caches shared between cpu cores and the gpu GT. Default on
+ * machines with HAS_LLC.
+ */
+#define I915_CACHING_CACHED		1
+/**
+ * I915_CACHING_DISPLAY
+ *
+ * Special GPU caching mode which is coherent with the scanout engines.
+ * Transparently falls back to I915_CACHING_NONE on platforms where no special
+ * cache mode (like write-through or gfdt flushing) is available. The kernel
+ * automatically sets this mode when using a buffer as a scanout target.
+ * Userspace can manually set this mode to avoid a costly stall and clflush in
+ * the hotpath of drawing the first frame.
+ */
+#define I915_CACHING_DISPLAY		2
+
 struct drm_i915_gem_caching {
 	/**
-	 * @handle: Handle of the buffer to set/get the caching level.
-	 */
+	 * Handle of the buffer to set/get the caching level of. */
 	__u32 handle;
 
 	/**
-	 * @caching: The GTT caching level to apply or possible return value.
+	 * Cacheing level to apply or return value
 	 *
-	 * The supported @caching values:
-	 *
-	 * I915_CACHING_NONE:
-	 *
-	 * GPU access is not coherent with CPU caches.  Default for machines
-	 * without an LLC. This means manual flushing might be needed, if we
-	 * want GPU access to be coherent.
-	 *
-	 * I915_CACHING_CACHED:
-	 *
-	 * GPU access is coherent with CPU caches and furthermore the data is
-	 * cached in last-level caches shared between CPU cores and the GPU GT.
-	 *
-	 * I915_CACHING_DISPLAY:
-	 *
-	 * Special GPU caching mode which is coherent with the scanout engines.
-	 * Transparently falls back to I915_CACHING_NONE on platforms where no
-	 * special cache mode (like write-through or gfdt flushing) is
-	 * available. The kernel automatically sets this mode when using a
-	 * buffer as a scanout target.  Userspace can manually set this mode to
-	 * avoid a costly stall and clflush in the hotpath of drawing the first
-	 * frame.
-	 */
-#define I915_CACHING_NONE		0
-#define I915_CACHING_CACHED		1
-#define I915_CACHING_DISPLAY		2
+	 * bits0-15 are for generic caching control (i.e. the above defined
+	 * values). bits16-31 are reserved for platform-specific variations
+	 * (e.g. l3$ caching on gen7). */
 	__u32 caching;
 };
 
 #define I915_TILING_NONE	0
 #define I915_TILING_X		1
 #define I915_TILING_Y		2
-/*
- * Do not add new tiling types here.  The I915_TILING_* values are for
- * de-tiling fence registers that no longer exist on modern platforms.  Although
- * the hardware may support new types of tiling in general (e.g., Tile4), we
- * do not need to add them to the uapi that is specific to now-defunct ioctls.
- */
 #define I915_TILING_LAST	I915_TILING_Y
 
 #define I915_BIT_6_SWIZZLE_NONE		0
@@ -1760,10 +1590,6 @@
 	__u32 size;
 	__u64 param;
 #define I915_CONTEXT_PARAM_BAN_PERIOD	0x1
-/* I915_CONTEXT_PARAM_NO_ZEROMAP has been removed.  On the off chance
- * someone somewhere has attempted to use it, never re-use this context
- * param number.
- */
 #define I915_CONTEXT_PARAM_NO_ZEROMAP	0x2
 #define I915_CONTEXT_PARAM_GTT_SIZE	0x3
 #define I915_CONTEXT_PARAM_NO_ERROR_CAPTURE	0x4
@@ -1830,7 +1656,6 @@
  * Extensions:
  *   i915_context_engines_load_balance (I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE)
  *   i915_context_engines_bond (I915_CONTEXT_ENGINES_EXT_BOND)
- *   i915_context_engines_parallel_submit (I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT)
  */
 #define I915_CONTEXT_PARAM_ENGINES	0xa
 
@@ -1849,65 +1674,32 @@
  */
 #define I915_CONTEXT_PARAM_PERSISTENCE	0xb
 
-/* This API has been removed.  On the off chance someone somewhere has
- * attempted to use it, never re-use this context param number.
+/*
+ * I915_CONTEXT_PARAM_RINGSIZE:
+ *
+ * Sets the size of the CS ringbuffer to use for logical ring contexts. This
+ * applies a limit of how many batches can be queued to HW before the caller
+ * is blocked due to lack of space for more commands.
+ *
+ * Only reliably possible to be set prior to first use, i.e. during
+ * construction. At any later point, the current execution must be flushed as
+ * the ring can only be changed while the context is idle. Note, the ringsize
+ * can be specified as a constructor property, see
+ * I915_CONTEXT_CREATE_EXT_SETPARAM, but can also be set later if required.
+ *
+ * Only applies to the current set of engine and lost when those engines
+ * are replaced by a new mapping (see I915_CONTEXT_PARAM_ENGINES).
+ *
+ * Must be between 4 - 512 KiB, in intervals of page size [4 KiB].
+ * Default is 16 KiB.
  */
 #define I915_CONTEXT_PARAM_RINGSIZE	0xc
-
-/*
- * I915_CONTEXT_PARAM_PROTECTED_CONTENT:
- *
- * Mark that the context makes use of protected content, which will result
- * in the context being invalidated when the protected content session is.
- * Given that the protected content session is killed on suspend, the device
- * is kept awake for the lifetime of a protected context, so the user should
- * make sure to dispose of them once done.
- * This flag can only be set at context creation time and, when set to true,
- * must be preceded by an explicit setting of I915_CONTEXT_PARAM_RECOVERABLE
- * to false. This flag can't be set to true in conjunction with setting the
- * I915_CONTEXT_PARAM_BANNABLE flag to false. Creation example:
- *
- * .. code-block:: C
- *
- *	struct drm_i915_gem_context_create_ext_setparam p_protected = {
- *		.base = {
- *			.name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- *		},
- *		.param = {
- *			.param = I915_CONTEXT_PARAM_PROTECTED_CONTENT,
- *			.value = 1,
- *		}
- *	};
- *	struct drm_i915_gem_context_create_ext_setparam p_norecover = {
- *		.base = {
- *			.name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- *			.next_extension = to_user_pointer(&p_protected),
- *		},
- *		.param = {
- *			.param = I915_CONTEXT_PARAM_RECOVERABLE,
- *			.value = 0,
- *		}
- *	};
- *	struct drm_i915_gem_context_create_ext create = {
- *		.flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
- *		.extensions = to_user_pointer(&p_norecover);
- *	};
- *
- *	ctx_id = gem_context_create_ext(drm_fd, &create);
- *
- * In addition to the normal failure cases, setting this flag during context
- * creation can result in the following errors:
- *
- * -ENODEV: feature not available
- * -EPERM: trying to mark a recoverable or not bannable context as protected
- */
-#define I915_CONTEXT_PARAM_PROTECTED_CONTENT    0xd
 /* Must be kept compact -- no holes and well documented */
 
 	__u64 value;
 };
 
-/*
+/**
  * Context SSEU programming
  *
  * It may be necessary for either functional or performance reason to configure
@@ -1966,69 +1758,6 @@
 	__u32 rsvd;
 };
 
-/**
- * DOC: Virtual Engine uAPI
- *
- * Virtual engine is a concept where userspace is able to configure a set of
- * physical engines, submit a batch buffer, and let the driver execute it on any
- * engine from the set as it sees fit.
- *
- * This is primarily useful on parts which have multiple instances of a same
- * class engine, like for example GT3+ Skylake parts with their two VCS engines.
- *
- * For instance userspace can enumerate all engines of a certain class using the
- * previously described `Engine Discovery uAPI`_. After that userspace can
- * create a GEM context with a placeholder slot for the virtual engine (using
- * `I915_ENGINE_CLASS_INVALID` and `I915_ENGINE_CLASS_INVALID_NONE` for class
- * and instance respectively) and finally using the
- * `I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE` extension place a virtual engine in
- * the same reserved slot.
- *
- * Example of creating a virtual engine and submitting a batch buffer to it:
- *
- * .. code-block:: C
- *
- * 	I915_DEFINE_CONTEXT_ENGINES_LOAD_BALANCE(virtual, 2) = {
- * 		.base.name = I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE,
- * 		.engine_index = 0, // Place this virtual engine into engine map slot 0
- * 		.num_siblings = 2,
- * 		.engines = { { I915_ENGINE_CLASS_VIDEO, 0 },
- * 			     { I915_ENGINE_CLASS_VIDEO, 1 }, },
- * 	};
- * 	I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 1) = {
- * 		.engines = { { I915_ENGINE_CLASS_INVALID,
- * 			       I915_ENGINE_CLASS_INVALID_NONE } },
- * 		.extensions = to_user_pointer(&virtual), // Chains after load_balance extension
- * 	};
- * 	struct drm_i915_gem_context_create_ext_setparam p_engines = {
- * 		.base = {
- * 			.name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- * 		},
- * 		.param = {
- * 			.param = I915_CONTEXT_PARAM_ENGINES,
- * 			.value = to_user_pointer(&engines),
- * 			.size = sizeof(engines),
- * 		},
- * 	};
- * 	struct drm_i915_gem_context_create_ext create = {
- * 		.flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
- * 		.extensions = to_user_pointer(&p_engines);
- * 	};
- *
- * 	ctx_id = gem_context_create_ext(drm_fd, &create);
- *
- * 	// Now we have created a GEM context with its engine map containing a
- * 	// single virtual engine. Submissions to this slot can go either to
- * 	// vcs0 or vcs1, depending on the load balancing algorithm used inside
- * 	// the driver. The load balancing is dynamic from one batch buffer to
- * 	// another and transparent to userspace.
- *
- * 	...
- * 	execbuf.rsvd1 = ctx_id;
- * 	execbuf.flags = 0; // Submits to index 0 which is the virtual engine
- * 	gem_execbuf(drm_fd, &execbuf);
- */
-
 /*
  * i915_context_engines_load_balance:
  *
@@ -2105,195 +1834,10 @@
 	struct i915_engine_class_instance engines[N__]; \
 } __attribute__((packed)) name__
 
-/**
- * struct i915_context_engines_parallel_submit - Configure engine for
- * parallel submission.
- *
- * Setup a slot in the context engine map to allow multiple BBs to be submitted
- * in a single execbuf IOCTL. Those BBs will then be scheduled to run on the GPU
- * in parallel. Multiple hardware contexts are created internally in the i915 to
- * run these BBs. Once a slot is configured for N BBs only N BBs can be
- * submitted in each execbuf IOCTL and this is implicit behavior e.g. The user
- * doesn't tell the execbuf IOCTL there are N BBs, the execbuf IOCTL knows how
- * many BBs there are based on the slot's configuration. The N BBs are the last
- * N buffer objects or first N if I915_EXEC_BATCH_FIRST is set.
- *
- * The default placement behavior is to create implicit bonds between each
- * context if each context maps to more than 1 physical engine (e.g. context is
- * a virtual engine). Also we only allow contexts of same engine class and these
- * contexts must be in logically contiguous order. Examples of the placement
- * behavior are described below. Lastly, the default is to not allow BBs to be
- * preempted mid-batch. Rather insert coordinated preemption points on all
- * hardware contexts between each set of BBs. Flags could be added in the future
- * to change both of these default behaviors.
- *
- * Returns -EINVAL if hardware context placement configuration is invalid or if
- * the placement configuration isn't supported on the platform / submission
- * interface.
- * Returns -ENODEV if extension isn't supported on the platform / submission
- * interface.
- *
- * .. code-block:: none
- *
- *	Examples syntax:
- *	CS[X] = generic engine of same class, logical instance X
- *	INVALID = I915_ENGINE_CLASS_INVALID, I915_ENGINE_CLASS_INVALID_NONE
- *
- *	Example 1 pseudo code:
- *	set_engines(INVALID)
- *	set_parallel(engine_index=0, width=2, num_siblings=1,
- *		     engines=CS[0],CS[1])
- *
- *	Results in the following valid placement:
- *	CS[0], CS[1]
- *
- *	Example 2 pseudo code:
- *	set_engines(INVALID)
- *	set_parallel(engine_index=0, width=2, num_siblings=2,
- *		     engines=CS[0],CS[2],CS[1],CS[3])
- *
- *	Results in the following valid placements:
- *	CS[0], CS[1]
- *	CS[2], CS[3]
- *
- *	This can be thought of as two virtual engines, each containing two
- *	engines thereby making a 2D array. However, there are bonds tying the
- *	entries together and placing restrictions on how they can be scheduled.
- *	Specifically, the scheduler can choose only vertical columns from the 2D
- *	array. That is, CS[0] is bonded to CS[1] and CS[2] to CS[3]. So if the
- *	scheduler wants to submit to CS[0], it must also choose CS[1] and vice
- *	versa. Same for CS[2] requires also using CS[3].
- *	VE[0] = CS[0], CS[2]
- *	VE[1] = CS[1], CS[3]
- *
- *	Example 3 pseudo code:
- *	set_engines(INVALID)
- *	set_parallel(engine_index=0, width=2, num_siblings=2,
- *		     engines=CS[0],CS[1],CS[1],CS[3])
- *
- *	Results in the following valid and invalid placements:
- *	CS[0], CS[1]
- *	CS[1], CS[3] - Not logically contiguous, return -EINVAL
- */
-struct i915_context_engines_parallel_submit {
-	/**
-	 * @base: base user extension.
-	 */
-	struct i915_user_extension base;
-
-	/**
-	 * @engine_index: slot for parallel engine
-	 */
-	__u16 engine_index;
-
-	/**
-	 * @width: number of contexts per parallel engine or in other words the
-	 * number of batches in each submission
-	 */
-	__u16 width;
-
-	/**
-	 * @num_siblings: number of siblings per context or in other words the
-	 * number of possible placements for each submission
-	 */
-	__u16 num_siblings;
-
-	/**
-	 * @mbz16: reserved for future use; must be zero
-	 */
-	__u16 mbz16;
-
-	/**
-	 * @flags: all undefined flags must be zero, currently not defined flags
-	 */
-	__u64 flags;
-
-	/**
-	 * @mbz64: reserved for future use; must be zero
-	 */
-	__u64 mbz64[3];
-
-	/**
-	 * @engines: 2-d array of engine instances to configure parallel engine
-	 *
-	 * length = width (i) * num_siblings (j)
-	 * index = j + i * num_siblings
-	 */
-	struct i915_engine_class_instance engines[0];
-
-} __packed;
-
-#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__, N__) struct { \
-	struct i915_user_extension base; \
-	__u16 engine_index; \
-	__u16 width; \
-	__u16 num_siblings; \
-	__u16 mbz16; \
-	__u64 flags; \
-	__u64 mbz64[3]; \
-	struct i915_engine_class_instance engines[N__]; \
-} __attribute__((packed)) name__
-
-/**
- * DOC: Context Engine Map uAPI
- *
- * Context engine map is a new way of addressing engines when submitting batch-
- * buffers, replacing the existing way of using identifiers like `I915_EXEC_BLT`
- * inside the flags field of `struct drm_i915_gem_execbuffer2`.
- *
- * To use it created GEM contexts need to be configured with a list of engines
- * the user is intending to submit to. This is accomplished using the
- * `I915_CONTEXT_PARAM_ENGINES` parameter and `struct
- * i915_context_param_engines`.
- *
- * For such contexts the `I915_EXEC_RING_MASK` field becomes an index into the
- * configured map.
- *
- * Example of creating such context and submitting against it:
- *
- * .. code-block:: C
- *
- * 	I915_DEFINE_CONTEXT_PARAM_ENGINES(engines, 2) = {
- * 		.engines = { { I915_ENGINE_CLASS_RENDER, 0 },
- * 			     { I915_ENGINE_CLASS_COPY, 0 } }
- * 	};
- * 	struct drm_i915_gem_context_create_ext_setparam p_engines = {
- * 		.base = {
- * 			.name = I915_CONTEXT_CREATE_EXT_SETPARAM,
- * 		},
- * 		.param = {
- * 			.param = I915_CONTEXT_PARAM_ENGINES,
- * 			.value = to_user_pointer(&engines),
- * 			.size = sizeof(engines),
- * 		},
- * 	};
- * 	struct drm_i915_gem_context_create_ext create = {
- * 		.flags = I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS,
- * 		.extensions = to_user_pointer(&p_engines);
- * 	};
- *
- * 	ctx_id = gem_context_create_ext(drm_fd, &create);
- *
- * 	// We have now created a GEM context with two engines in the map:
- * 	// Index 0 points to rcs0 while index 1 points to bcs0. Other engines
- * 	// will not be accessible from this context.
- *
- * 	...
- * 	execbuf.rsvd1 = ctx_id;
- * 	execbuf.flags = 0; // Submits to index 0, which is rcs0 for this context
- * 	gem_execbuf(drm_fd, &execbuf);
- *
- * 	...
- * 	execbuf.rsvd1 = ctx_id;
- * 	execbuf.flags = 1; // Submits to index 0, which is bcs0 for this context
- * 	gem_execbuf(drm_fd, &execbuf);
- */
-
 struct i915_context_param_engines {
 	__u64 extensions; /* linked chain of extension blocks, 0 terminates */
 #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0 /* see i915_context_engines_load_balance */
 #define I915_CONTEXT_ENGINES_EXT_BOND 1 /* see i915_context_engines_bond */
-#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2 /* see i915_context_engines_parallel_submit */
 	struct i915_engine_class_instance engines[0];
 } __attribute__((packed));
 
@@ -2308,10 +1852,20 @@
 	struct drm_i915_gem_context_param param;
 };
 
-/* This API has been removed.  On the off chance someone somewhere has
- * attempted to use it, never re-use this extension number.
- */
+struct drm_i915_gem_context_create_ext_clone {
 #define I915_CONTEXT_CREATE_EXT_CLONE 1
+	struct i915_user_extension base;
+	__u32 clone_id;
+	__u32 flags;
+#define I915_CONTEXT_CLONE_ENGINES	(1u << 0)
+#define I915_CONTEXT_CLONE_FLAGS	(1u << 1)
+#define I915_CONTEXT_CLONE_SCHEDATTR	(1u << 2)
+#define I915_CONTEXT_CLONE_SSEU		(1u << 3)
+#define I915_CONTEXT_CLONE_TIMELINE	(1u << 4)
+#define I915_CONTEXT_CLONE_VM		(1u << 5)
+#define I915_CONTEXT_CLONE_UNKNOWN -(I915_CONTEXT_CLONE_VM << 1)
+	__u64 rsvd;
+};
 
 struct drm_i915_gem_context_destroy {
 	__u32 ctx_id;
@@ -2383,69 +1937,14 @@
 	__u32 pad;
 };
 
-/**
- * struct drm_i915_gem_userptr - Create GEM object from user allocated memory.
- *
- * Userptr objects have several restrictions on what ioctls can be used with the
- * object handle.
- */
 struct drm_i915_gem_userptr {
-	/**
-	 * @user_ptr: The pointer to the allocated memory.
-	 *
-	 * Needs to be aligned to PAGE_SIZE.
-	 */
 	__u64 user_ptr;
-
-	/**
-	 * @user_size:
-	 *
-	 * The size in bytes for the allocated memory. This will also become the
-	 * object size.
-	 *
-	 * Needs to be aligned to PAGE_SIZE, and should be at least PAGE_SIZE,
-	 * or larger.
-	 */
 	__u64 user_size;
-
-	/**
-	 * @flags:
-	 *
-	 * Supported flags:
-	 *
-	 * I915_USERPTR_READ_ONLY:
-	 *
-	 * Mark the object as readonly, this also means GPU access can only be
-	 * readonly. This is only supported on HW which supports readonly access
-	 * through the GTT. If the HW can't support readonly access, an error is
-	 * returned.
-	 *
-	 * I915_USERPTR_PROBE:
-	 *
-	 * Probe the provided @user_ptr range and validate that the @user_ptr is
-	 * indeed pointing to normal memory and that the range is also valid.
-	 * For example if some garbage address is given to the kernel, then this
-	 * should complain.
-	 *
-	 * Returns -EFAULT if the probe failed.
-	 *
-	 * Note that this doesn't populate the backing pages, and also doesn't
-	 * guarantee that the object will remain valid when the object is
-	 * eventually used.
-	 *
-	 * The kernel supports this feature if I915_PARAM_HAS_USERPTR_PROBE
-	 * returns a non-zero value.
-	 *
-	 * I915_USERPTR_UNSYNCHRONIZED:
-	 *
-	 * NOT USED. Setting this flag will result in an error.
-	 */
 	__u32 flags;
 #define I915_USERPTR_READ_ONLY 0x1
-#define I915_USERPTR_PROBE 0x2
 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000
 	/**
-	 * @handle: Returned handle for the object.
+	 * Returned handle for the object.
 	 *
 	 * Object handles are nonzero.
 	 */
@@ -2567,7 +2066,7 @@
 	__u64 properties_ptr;
 };
 
-/*
+/**
  * Enable data capture for a stream that was either opened in a disabled state
  * via I915_PERF_FLAG_DISABLED or was later disabled via
  * I915_PERF_IOCTL_DISABLE.
@@ -2581,7 +2080,7 @@
  */
 #define I915_PERF_IOCTL_ENABLE	_IO('i', 0x0)
 
-/*
+/**
  * Disable data capture for a stream.
  *
  * It is an error to try and read a stream that is disabled.
@@ -2590,7 +2089,7 @@
  */
 #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
@@ -2603,7 +2102,7 @@
  */
 #define I915_PERF_IOCTL_CONFIG	_IO('i', 0x2)
 
-/*
+/**
  * Common to all i915 perf records
  */
 struct drm_i915_perf_record_header {
@@ -2651,7 +2150,7 @@
 	DRM_I915_PERF_RECORD_MAX /* non-ABI */
 };
 
-/*
+/**
  * Structure to upload perf dynamic configuration into the kernel.
  */
 struct drm_i915_perf_oa_config {
@@ -2672,95 +2171,53 @@
 	__u64 flex_regs_ptr;
 };
 
-/**
- * struct drm_i915_query_item - An individual query for the kernel to process.
- *
- * The behaviour is determined by the @query_id. Note that exactly what
- * @data_ptr is also depends on the specific @query_id.
- */
 struct drm_i915_query_item {
-	/** @query_id: The id for this query */
 	__u64 query_id;
 #define DRM_I915_QUERY_TOPOLOGY_INFO    1
 #define DRM_I915_QUERY_ENGINE_INFO	2
 #define DRM_I915_QUERY_PERF_CONFIG      3
-#define DRM_I915_QUERY_MEMORY_REGIONS   4
 /* Must be kept compact -- no holes and well documented */
 
-	/**
-	 * @length:
-	 *
+	/*
 	 * When set to zero by userspace, this is filled with the size of the
-	 * data to be written at the @data_ptr pointer. The kernel sets this
+	 * data to be written at the data_ptr pointer. The kernel sets this
 	 * value to a negative value to signal an error on a particular query
 	 * item.
 	 */
 	__s32 length;
 
-	/**
-	 * @flags:
-	 *
+	/*
 	 * 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
+	 * 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_ptr:
-	 *
-	 * Data will be written at the location pointed by @data_ptr when the
-	 * value of @length matches the length of the data to be written by the
+	/*
+	 * Data will be written at the location pointed by data_ptr when the
+	 * value of length matches the length of the data to be written by the
 	 * kernel.
 	 */
 	__u64 data_ptr;
 };
 
-/**
- * struct drm_i915_query - Supply an array of struct drm_i915_query_item for the
- * kernel to fill out.
- *
- * Note that this is generally a two step process for each struct
- * drm_i915_query_item in the array:
- *
- * 1. Call the DRM_IOCTL_I915_QUERY, giving it our array of struct
- *    drm_i915_query_item, with &drm_i915_query_item.length set to zero. The
- *    kernel will then fill in the size, in bytes, which tells userspace how
- *    memory it needs to allocate for the blob(say for an array of properties).
- *
- * 2. Next we call DRM_IOCTL_I915_QUERY again, this time with the
- *    &drm_i915_query_item.data_ptr equal to our newly allocated blob. Note that
- *    the &drm_i915_query_item.length should still be the same as what the
- *    kernel previously set. At this point the kernel can fill in the blob.
- *
- * Note that for some query items it can make sense for userspace to just pass
- * in a buffer/blob equal to or larger than the required size. In this case only
- * a single ioctl call is needed. For some smaller query items this can work
- * quite well.
- *
- */
 struct drm_i915_query {
-	/** @num_items: The number of elements in the @items_ptr array */
 	__u32 num_items;
 
-	/**
-	 * @flags: Unused for now. Must be cleared to zero.
+	/*
+	 * Unused for now. Must be cleared to zero.
 	 */
 	__u32 flags;
 
-	/**
-	 * @items_ptr:
-	 *
-	 * Pointer to an array of struct drm_i915_query_item. The number of
-	 * array elements is @num_items.
+	/*
+	 * This points to an array of num_items drm_i915_query_item structures.
 	 */
 	__u64 items_ptr;
 };
@@ -2829,103 +2286,27 @@
 };
 
 /**
- * DOC: Engine Discovery uAPI
- *
- * Engine discovery uAPI is a way of enumerating physical engines present in a
- * GPU associated with an open i915 DRM file descriptor. This supersedes the old
- * way of using `DRM_IOCTL_I915_GETPARAM` and engine identifiers like
- * `I915_PARAM_HAS_BLT`.
- *
- * The need for this interface came starting with Icelake and newer GPUs, which
- * started to establish a pattern of having multiple engines of a same class,
- * where not all instances were always completely functionally equivalent.
- *
- * Entry point for this uapi is `DRM_IOCTL_I915_QUERY` with the
- * `DRM_I915_QUERY_ENGINE_INFO` as the queried item id.
- *
- * Example for getting the list of engines:
- *
- * .. code-block:: C
- *
- * 	struct drm_i915_query_engine_info *info;
- * 	struct drm_i915_query_item item = {
- * 		.query_id = DRM_I915_QUERY_ENGINE_INFO;
- * 	};
- * 	struct drm_i915_query query = {
- * 		.num_items = 1,
- * 		.items_ptr = (uintptr_t)&item,
- * 	};
- * 	int err, i;
- *
- * 	// First query the size of the blob we need, this needs to be large
- * 	// enough to hold our array of engines. The kernel will fill out the
- * 	// item.length for us, which is the number of bytes we need.
- * 	//
- * 	// Alternatively a large buffer can be allocated straight away enabling
- * 	// querying in one pass, in which case item.length should contain the
- * 	// length of the provided buffer.
- * 	err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- * 	if (err) ...
- *
- * 	info = calloc(1, item.length);
- * 	// Now that we allocated the required number of bytes, we call the ioctl
- * 	// again, this time with the data_ptr pointing to our newly allocated
- * 	// blob, which the kernel can then populate with info on all engines.
- * 	item.data_ptr = (uintptr_t)&info,
- *
- * 	err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- * 	if (err) ...
- *
- * 	// We can now access each engine in the array
- * 	for (i = 0; i < info->num_engines; i++) {
- * 		struct drm_i915_engine_info einfo = info->engines[i];
- * 		u16 class = einfo.engine.class;
- * 		u16 instance = einfo.engine.instance;
- * 		....
- * 	}
- *
- * 	free(info);
- *
- * Each of the enumerated engines, apart from being defined by its class and
- * instance (see `struct i915_engine_class_instance`), also can have flags and
- * capabilities defined as documented in i915_drm.h.
- *
- * For instance video engines which support HEVC encoding will have the
- * `I915_VIDEO_CLASS_CAPABILITY_HEVC` capability bit set.
- *
- * Engine discovery only fully comes to its own when combined with the new way
- * of addressing engines when submitting batch buffers using contexts with
- * engine maps configured.
- */
-
-/**
  * struct drm_i915_engine_info
  *
  * Describes one engine and it's capabilities as known to the driver.
  */
 struct drm_i915_engine_info {
-	/** @engine: Engine class and instance. */
+	/** Engine class and instance. */
 	struct i915_engine_class_instance engine;
 
-	/** @rsvd0: Reserved field. */
+	/** Reserved field. */
 	__u32 rsvd0;
 
-	/** @flags: Engine flags. */
+	/** Engine flags. */
 	__u64 flags;
-#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE		(1 << 0)
 
-	/** @capabilities: Capabilities of this engine. */
+	/** Capabilities of this engine. */
 	__u64 capabilities;
 #define I915_VIDEO_CLASS_CAPABILITY_HEVC		(1 << 0)
 #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC	(1 << 1)
 
-	/** @logical_instance: Logical instance of engine */
-	__u16 logical_instance;
-
-	/** @rsvd1: Reserved fields. */
-	__u16 rsvd1[3];
-	/** @rsvd2: Reserved fields. */
-	__u64 rsvd2[3];
+	/** Reserved fields. */
+	__u64 rsvd1[4];
 };
 
 /**
@@ -2935,13 +2316,13 @@
  * an array of struct drm_i915_engine_info structures.
  */
 struct drm_i915_query_engine_info {
-	/** @num_engines: Number of struct drm_i915_engine_info structs following. */
+	/** Number of struct drm_i915_engine_info structs following. */
 	__u32 num_engines;
 
-	/** @rsvd: MBZ */
+	/** MBZ */
 	__u32 rsvd[3];
 
-	/** @engines: Marker for drm_i915_engine_info structures. */
+	/** Marker for drm_i915_engine_info structures. */
 	struct drm_i915_engine_info engines[];
 };
 
@@ -2995,289 +2376,6 @@
 	__u8 data[];
 };
 
-/**
- * enum drm_i915_gem_memory_class - Supported memory classes
- */
-enum drm_i915_gem_memory_class {
-	/** @I915_MEMORY_CLASS_SYSTEM: System memory */
-	I915_MEMORY_CLASS_SYSTEM = 0,
-	/** @I915_MEMORY_CLASS_DEVICE: Device local-memory */
-	I915_MEMORY_CLASS_DEVICE,
-};
-
-/**
- * struct drm_i915_gem_memory_class_instance - Identify particular memory region
- */
-struct drm_i915_gem_memory_class_instance {
-	/** @memory_class: See enum drm_i915_gem_memory_class */
-	__u16 memory_class;
-
-	/** @memory_instance: Which instance */
-	__u16 memory_instance;
-};
-
-/**
- * struct drm_i915_memory_region_info - Describes one region as known to the
- * driver.
- *
- * Note that we reserve some stuff here for potential future work. As an example
- * we might want expose the capabilities for a given region, which could include
- * things like if the region is CPU mappable/accessible, what are the supported
- * mapping types etc.
- *
- * Note that to extend struct drm_i915_memory_region_info and struct
- * drm_i915_query_memory_regions in the future the plan is to do the following:
- *
- * .. code-block:: C
- *
- *	struct drm_i915_memory_region_info {
- *		struct drm_i915_gem_memory_class_instance region;
- *		union {
- *			__u32 rsvd0;
- *			__u32 new_thing1;
- *		};
- *		...
- *		union {
- *			__u64 rsvd1[8];
- *			struct {
- *				__u64 new_thing2;
- *				__u64 new_thing3;
- *				...
- *			};
- *		};
- *	};
- *
- * With this things should remain source compatible between versions for
- * userspace, even as we add new fields.
- *
- * Note this is using both struct drm_i915_query_item and struct drm_i915_query.
- * For this new query we are adding the new query id DRM_I915_QUERY_MEMORY_REGIONS
- * at &drm_i915_query_item.query_id.
- */
-struct drm_i915_memory_region_info {
-	/** @region: The class:instance pair encoding */
-	struct drm_i915_gem_memory_class_instance region;
-
-	/** @rsvd0: MBZ */
-	__u32 rsvd0;
-
-	/** @probed_size: Memory probed by the driver (-1 = unknown) */
-	__u64 probed_size;
-
-	/** @unallocated_size: Estimate of memory remaining (-1 = unknown) */
-	__u64 unallocated_size;
-
-	/** @rsvd1: MBZ */
-	__u64 rsvd1[8];
-};
-
-/**
- * struct drm_i915_query_memory_regions
- *
- * The region info query enumerates all regions known to the driver by filling
- * in an array of struct drm_i915_memory_region_info structures.
- *
- * Example for getting the list of supported regions:
- *
- * .. code-block:: C
- *
- *	struct drm_i915_query_memory_regions *info;
- *	struct drm_i915_query_item item = {
- *		.query_id = DRM_I915_QUERY_MEMORY_REGIONS;
- *	};
- *	struct drm_i915_query query = {
- *		.num_items = 1,
- *		.items_ptr = (uintptr_t)&item,
- *	};
- *	int err, i;
- *
- *	// First query the size of the blob we need, this needs to be large
- *	// enough to hold our array of regions. The kernel will fill out the
- *	// item.length for us, which is the number of bytes we need.
- *	err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- *	if (err) ...
- *
- *	info = calloc(1, item.length);
- *	// Now that we allocated the required number of bytes, we call the ioctl
- *	// again, this time with the data_ptr pointing to our newly allocated
- *	// blob, which the kernel can then populate with the all the region info.
- *	item.data_ptr = (uintptr_t)&info,
- *
- *	err = ioctl(fd, DRM_IOCTL_I915_QUERY, &query);
- *	if (err) ...
- *
- *	// We can now access each region in the array
- *	for (i = 0; i < info->num_regions; i++) {
- *		struct drm_i915_memory_region_info mr = info->regions[i];
- *		u16 class = mr.region.class;
- *		u16 instance = mr.region.instance;
- *
- *		....
- *	}
- *
- *	free(info);
- */
-struct drm_i915_query_memory_regions {
-	/** @num_regions: Number of supported regions */
-	__u32 num_regions;
-
-	/** @rsvd: MBZ */
-	__u32 rsvd[3];
-
-	/** @regions: Info about each supported region */
-	struct drm_i915_memory_region_info regions[];
-};
-
-/**
- * struct drm_i915_gem_create_ext - Existing gem_create behaviour, with added
- * extension support using struct i915_user_extension.
- *
- * Note that in the future we want to have our buffer flags here, at least for
- * the stuff that is immutable. Previously we would have two ioctls, one to
- * create the object with gem_create, and another to apply various parameters,
- * however this creates some ambiguity for the params which are considered
- * immutable. Also in general we're phasing out the various SET/GET ioctls.
- */
-struct drm_i915_gem_create_ext {
-	/**
-	 * @size: Requested size for the object.
-	 *
-	 * The (page-aligned) allocated size for the object will be returned.
-	 *
-	 * Note that for some devices we have might have further minimum
-	 * page-size restrictions(larger than 4K), like for device local-memory.
-	 * However in general the final size here should always reflect any
-	 * rounding up, if for example using the I915_GEM_CREATE_EXT_MEMORY_REGIONS
-	 * extension to place the object in device local-memory.
-	 */
-	__u64 size;
-	/**
-	 * @handle: Returned handle for the object.
-	 *
-	 * Object handles are nonzero.
-	 */
-	__u32 handle;
-	/** @flags: MBZ */
-	__u32 flags;
-	/**
-	 * @extensions: The chain of extensions to apply to this object.
-	 *
-	 * This will be useful in the future when we need to support several
-	 * different extensions, and we need to apply more than one when
-	 * creating the object. See struct i915_user_extension.
-	 *
-	 * If we don't supply any extensions then we get the same old gem_create
-	 * behaviour.
-	 *
-	 * For I915_GEM_CREATE_EXT_MEMORY_REGIONS usage see
-	 * struct drm_i915_gem_create_ext_memory_regions.
-	 *
-	 * For I915_GEM_CREATE_EXT_PROTECTED_CONTENT usage see
-	 * struct drm_i915_gem_create_ext_protected_content.
-	 */
-#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
-#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
-	__u64 extensions;
-};
-
-/**
- * struct drm_i915_gem_create_ext_memory_regions - The
- * I915_GEM_CREATE_EXT_MEMORY_REGIONS extension.
- *
- * Set the object with the desired set of placements/regions in priority
- * order. Each entry must be unique and supported by the device.
- *
- * This is provided as an array of struct drm_i915_gem_memory_class_instance, or
- * an equivalent layout of class:instance pair encodings. See struct
- * drm_i915_query_memory_regions and DRM_I915_QUERY_MEMORY_REGIONS for how to
- * query the supported regions for a device.
- *
- * As an example, on discrete devices, if we wish to set the placement as
- * device local-memory we can do something like:
- *
- * .. code-block:: C
- *
- *	struct drm_i915_gem_memory_class_instance region_lmem = {
- *              .memory_class = I915_MEMORY_CLASS_DEVICE,
- *              .memory_instance = 0,
- *      };
- *      struct drm_i915_gem_create_ext_memory_regions regions = {
- *              .base = { .name = I915_GEM_CREATE_EXT_MEMORY_REGIONS },
- *              .regions = (uintptr_t)&region_lmem,
- *              .num_regions = 1,
- *      };
- *      struct drm_i915_gem_create_ext create_ext = {
- *              .size = 16 * PAGE_SIZE,
- *              .extensions = (uintptr_t)&regions,
- *      };
- *
- *      int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext);
- *      if (err) ...
- *
- * At which point we get the object handle in &drm_i915_gem_create_ext.handle,
- * along with the final object size in &drm_i915_gem_create_ext.size, which
- * should account for any rounding up, if required.
- */
-struct drm_i915_gem_create_ext_memory_regions {
-	/** @base: Extension link. See struct i915_user_extension. */
-	struct i915_user_extension base;
-
-	/** @pad: MBZ */
-	__u32 pad;
-	/** @num_regions: Number of elements in the @regions array. */
-	__u32 num_regions;
-	/**
-	 * @regions: The regions/placements array.
-	 *
-	 * An array of struct drm_i915_gem_memory_class_instance.
-	 */
-	__u64 regions;
-};
-
-/**
- * struct drm_i915_gem_create_ext_protected_content - The
- * I915_OBJECT_PARAM_PROTECTED_CONTENT extension.
- *
- * If this extension is provided, buffer contents are expected to be protected
- * by PXP encryption and require decryption for scan out and processing. This
- * is only possible on platforms that have PXP enabled, on all other scenarios
- * using this extension will cause the ioctl to fail and return -ENODEV. The
- * flags parameter is reserved for future expansion and must currently be set
- * to zero.
- *
- * The buffer contents are considered invalid after a PXP session teardown.
- *
- * The encryption is guaranteed to be processed correctly only if the object
- * is submitted with a context created using the
- * I915_CONTEXT_PARAM_PROTECTED_CONTENT flag. This will also enable extra checks
- * at submission time on the validity of the objects involved.
- *
- * Below is an example on how to create a protected object:
- *
- * .. code-block:: C
- *
- *      struct drm_i915_gem_create_ext_protected_content protected_ext = {
- *              .base = { .name = I915_GEM_CREATE_EXT_PROTECTED_CONTENT },
- *              .flags = 0,
- *      };
- *      struct drm_i915_gem_create_ext create_ext = {
- *              .size = PAGE_SIZE,
- *              .extensions = (uintptr_t)&protected_ext,
- *      };
- *
- *      int err = ioctl(fd, DRM_IOCTL_I915_GEM_CREATE_EXT, &create_ext);
- *      if (err) ...
- */
-struct drm_i915_gem_create_ext_protected_content {
-	/** @base: Extension link. See struct i915_user_extension. */
-	struct i915_user_extension base;
-	/** @flags: reserved for future usage, currently MBZ */
-	__u32 flags;
-};
-
-/* ID of the protected content session managed by i915 when PXP is active */
-#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
-
 #if defined(__cplusplus)
 }
 #endif
diff --git a/original/uapi/drm/mga_drm.h b/original/uapi/drm/mga_drm.h
index bb31567..8c43375 100644
--- a/original/uapi/drm/mga_drm.h
+++ b/original/uapi/drm/mga_drm.h
@@ -279,22 +279,20 @@
 
 	unsigned long sarea_priv_offset;
 
-	__struct_group(/* no tag */, always32bit, /* no attrs */,
-		int chipset;
-		int sgram;
+	int chipset;
+	int sgram;
 
-		unsigned int maccess;
+	unsigned int maccess;
 
-		unsigned int fb_cpp;
-		unsigned int front_offset, front_pitch;
-		unsigned int back_offset, back_pitch;
+	unsigned int fb_cpp;
+	unsigned int front_offset, front_pitch;
+	unsigned int back_offset, back_pitch;
 
-		unsigned int depth_cpp;
-		unsigned int depth_offset, depth_pitch;
+	unsigned int depth_cpp;
+	unsigned int depth_offset, depth_pitch;
 
-		unsigned int texture_offset[MGA_NR_TEX_HEAPS];
-		unsigned int texture_size[MGA_NR_TEX_HEAPS];
-	);
+	unsigned int texture_offset[MGA_NR_TEX_HEAPS];
+	unsigned int texture_size[MGA_NR_TEX_HEAPS];
 
 	unsigned long fb_offset;
 	unsigned long mmio_offset;
diff --git a/original/uapi/drm/msm_drm.h b/original/uapi/drm/msm_drm.h
index 6b8fffc..a6c1f3e 100644
--- a/original/uapi/drm/msm_drm.h
+++ b/original/uapi/drm/msm_drm.h
@@ -73,18 +73,9 @@
 #define MSM_PARAM_MAX_FREQ   0x04
 #define MSM_PARAM_TIMESTAMP  0x05
 #define MSM_PARAM_GMEM_BASE  0x06
-#define MSM_PARAM_PRIORITIES 0x07  /* The # of priority levels */
+#define MSM_PARAM_NR_RINGS   0x07
 #define MSM_PARAM_PP_PGTABLE 0x08  /* => 1 for per-process pagetables, else 0 */
 #define MSM_PARAM_FAULTS     0x09
-#define MSM_PARAM_SUSPENDS   0x0a
-
-/* For backwards compat.  The original support for preemption was based on
- * a single ring per priority level so # of priority levels equals the #
- * of rings.  With drm/scheduler providing additional levels of priority,
- * the number of priorities is greater than the # of rings.  The param is
- * renamed to better reflect this.
- */
-#define MSM_PARAM_NR_RINGS   MSM_PARAM_PRIORITIES
 
 struct drm_msm_param {
 	__u32 pipe;           /* in, MSM_PIPE_x */
@@ -102,12 +93,13 @@
 /* cache modes */
 #define MSM_BO_CACHED        0x00010000
 #define MSM_BO_WC            0x00020000
-#define MSM_BO_UNCACHED      0x00040000 /* deprecated, use MSM_BO_WC */
-#define MSM_BO_CACHED_COHERENT 0x080000
+#define MSM_BO_UNCACHED      0x00040000
 
 #define MSM_BO_FLAGS         (MSM_BO_SCANOUT | \
                               MSM_BO_GPU_READONLY | \
-                              MSM_BO_CACHE_MASK)
+                              MSM_BO_CACHED | \
+                              MSM_BO_WC | \
+                              MSM_BO_UNCACHED)
 
 struct drm_msm_gem_new {
 	__u64 size;           /* in */
@@ -312,10 +304,6 @@
 
 #define MSM_SUBMITQUEUE_FLAGS (0)
 
-/*
- * The submitqueue priority should be between 0 and MSM_PARAM_PRIORITIES-1,
- * a lower numeric value is higher priority.
- */
 struct drm_msm_submitqueue {
 	__u32 flags;   /* in, MSM_SUBMITQUEUE_x */
 	__u32 prio;    /* in, Priority level */
diff --git a/original/uapi/drm/panfrost_drm.h b/original/uapi/drm/panfrost_drm.h
index 061e700..ec19db1 100644
--- a/original/uapi/drm/panfrost_drm.h
+++ b/original/uapi/drm/panfrost_drm.h
@@ -171,7 +171,6 @@
 	DRM_PANFROST_PARAM_JS_FEATURES15,
 	DRM_PANFROST_PARAM_NR_CORE_GROUPS,
 	DRM_PANFROST_PARAM_THREAD_TLS_ALLOC,
-	DRM_PANFROST_PARAM_AFBC_FEATURES,
 };
 
 struct drm_panfrost_get_param {
diff --git a/original/uapi/drm/tegra_drm.h b/original/uapi/drm/tegra_drm.h
index 94cfc30..c4df3c3 100644
--- a/original/uapi/drm/tegra_drm.h
+++ b/original/uapi/drm/tegra_drm.h
@@ -1,5 +1,24 @@
-/* SPDX-License-Identifier: MIT */
-/* Copyright (c) 2012-2020 NVIDIA Corporation */
+/*
+ * Copyright (c) 2012-2013, NVIDIA CORPORATION.  All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 _UAPI_TEGRA_DRM_H_
 #define _UAPI_TEGRA_DRM_H_
@@ -10,8 +29,6 @@
 extern "C" {
 #endif
 
-/* Tegra DRM legacy UAPI. Only enabled with STAGING */
-
 #define DRM_TEGRA_GEM_CREATE_TILED     (1 << 0)
 #define DRM_TEGRA_GEM_CREATE_BOTTOM_UP (1 << 1)
 
@@ -632,8 +649,8 @@
 #define DRM_TEGRA_SYNCPT_READ		0x02
 #define DRM_TEGRA_SYNCPT_INCR		0x03
 #define DRM_TEGRA_SYNCPT_WAIT		0x04
-#define DRM_TEGRA_OPEN_CHANNEL	        0x05
-#define DRM_TEGRA_CLOSE_CHANNEL	        0x06
+#define DRM_TEGRA_OPEN_CHANNEL		0x05
+#define DRM_TEGRA_CLOSE_CHANNEL		0x06
 #define DRM_TEGRA_GET_SYNCPT		0x07
 #define DRM_TEGRA_SUBMIT		0x08
 #define DRM_TEGRA_GET_SYNCPT_BASE	0x09
@@ -657,402 +674,6 @@
 #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
 #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
 
-/* New Tegra DRM UAPI */
-
-/*
- * Reported by the driver in the `capabilities` field.
- *
- * DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT: If set, the engine is cache coherent
- * with regard to the system memory.
- */
-#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0)
-
-struct drm_tegra_channel_open {
-	/**
-	 * @host1x_class: [in]
-	 *
-	 * Host1x class of the engine that will be programmed using this
-	 * channel.
-	 */
-	__u32 host1x_class;
-
-	/**
-	 * @flags: [in]
-	 *
-	 * Flags.
-	 */
-	__u32 flags;
-
-	/**
-	 * @context: [out]
-	 *
-	 * Opaque identifier corresponding to the opened channel.
-	 */
-	__u32 context;
-
-	/**
-	 * @version: [out]
-	 *
-	 * Version of the engine hardware. This can be used by userspace
-	 * to determine how the engine needs to be programmed.
-	 */
-	__u32 version;
-
-	/**
-	 * @capabilities: [out]
-	 *
-	 * Flags describing the hardware capabilities.
-	 */
-	__u32 capabilities;
-	__u32 padding;
-};
-
-struct drm_tegra_channel_close {
-	/**
-	 * @context: [in]
-	 *
-	 * Identifier of the channel to close.
-	 */
-	__u32 context;
-	__u32 padding;
-};
-
-/*
- * Mapping flags that can be used to influence how the mapping is created.
- *
- * DRM_TEGRA_CHANNEL_MAP_READ: create mapping that allows HW read access
- * DRM_TEGRA_CHANNEL_MAP_WRITE: create mapping that allows HW write access
- */
-#define DRM_TEGRA_CHANNEL_MAP_READ  (1 << 0)
-#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1)
-#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | \
-					  DRM_TEGRA_CHANNEL_MAP_WRITE)
-
-struct drm_tegra_channel_map {
-	/**
-	 * @context: [in]
-	 *
-	 * Identifier of the channel to which make memory available for.
-	 */
-	__u32 context;
-
-	/**
-	 * @handle: [in]
-	 *
-	 * GEM handle of the memory to map.
-	 */
-	__u32 handle;
-
-	/**
-	 * @flags: [in]
-	 *
-	 * Flags.
-	 */
-	__u32 flags;
-
-	/**
-	 * @mapping: [out]
-	 *
-	 * Identifier corresponding to the mapping, to be used for
-	 * relocations or unmapping later.
-	 */
-	__u32 mapping;
-};
-
-struct drm_tegra_channel_unmap {
-	/**
-	 * @context: [in]
-	 *
-	 * Channel identifier of the channel to unmap memory from.
-	 */
-	__u32 context;
-
-	/**
-	 * @mapping: [in]
-	 *
-	 * Mapping identifier of the memory mapping to unmap.
-	 */
-	__u32 mapping;
-};
-
-/* Submission */
-
-/**
- * Specify that bit 39 of the patched-in address should be set to switch
- * swizzling between Tegra and non-Tegra sector layout on systems that store
- * surfaces in system memory in non-Tegra sector layout.
- */
-#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0)
-
-struct drm_tegra_submit_buf {
-	/**
-	 * @mapping: [in]
-	 *
-	 * Identifier of the mapping to use in the submission.
-	 */
-	__u32 mapping;
-
-	/**
-	 * @flags: [in]
-	 *
-	 * Flags.
-	 */
-	__u32 flags;
-
-	/**
-	 * Information for relocation patching.
-	 */
-	struct {
-		/**
-		 * @target_offset: [in]
-		 *
-		 * Offset from the start of the mapping of the data whose
-		 * address is to be patched into the gather.
-		 */
-		__u64 target_offset;
-
-		/**
-		 * @gather_offset_words: [in]
-		 *
-		 * Offset in words from the start of the gather data to
-		 * where the address should be patched into.
-		 */
-		__u32 gather_offset_words;
-
-		/**
-		 * @shift: [in]
-		 *
-		 * Number of bits the address should be shifted right before
-		 * patching in.
-		 */
-		__u32 shift;
-	} reloc;
-};
-
-/**
- * Execute `words` words of Host1x opcodes specified in the `gather_data_ptr`
- * buffer. Each GATHER_UPTR command uses successive words from the buffer.
- */
-#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR		0
-/**
- * Wait for a syncpoint to reach a value before continuing with further
- * commands.
- */
-#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT		1
-/**
- * Wait for a syncpoint to reach a value before continuing with further
- * commands. The threshold is calculated relative to the start of the job.
- */
-#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE	2
-
-struct drm_tegra_submit_cmd_gather_uptr {
-	__u32 words;
-	__u32 reserved[3];
-};
-
-struct drm_tegra_submit_cmd_wait_syncpt {
-	__u32 id;
-	__u32 value;
-	__u32 reserved[2];
-};
-
-struct drm_tegra_submit_cmd {
-	/**
-	 * @type: [in]
-	 *
-	 * Command type to execute. One of the DRM_TEGRA_SUBMIT_CMD*
-	 * defines.
-	 */
-	__u32 type;
-
-	/**
-	 * @flags: [in]
-	 *
-	 * Flags.
-	 */
-	__u32 flags;
-
-	union {
-		struct drm_tegra_submit_cmd_gather_uptr gather_uptr;
-		struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt;
-		__u32 reserved[4];
-	};
-};
-
-struct drm_tegra_submit_syncpt {
-	/**
-	 * @id: [in]
-	 *
-	 * ID of the syncpoint that the job will increment.
-	 */
-	__u32 id;
-
-	/**
-	 * @flags: [in]
-	 *
-	 * Flags.
-	 */
-	__u32 flags;
-
-	/**
-	 * @increments: [in]
-	 *
-	 * Number of times the job will increment this syncpoint.
-	 */
-	__u32 increments;
-
-	/**
-	 * @value: [out]
-	 *
-	 * Value the syncpoint will have once the job has completed all
-	 * its specified syncpoint increments.
-	 *
-	 * Note that the kernel may increment the syncpoint before or after
-	 * the job. These increments are not reflected in this field.
-	 *
-	 * If the job hangs or times out, not all of the increments may
-	 * get executed.
-	 */
-	__u32 value;
-};
-
-struct drm_tegra_channel_submit {
-	/**
-	 * @context: [in]
-	 *
-	 * Identifier of the channel to submit this job to.
-	 */
-	__u32 context;
-
-	/**
-	 * @num_bufs: [in]
-	 *
-	 * Number of elements in the `bufs_ptr` array.
-	 */
-	__u32 num_bufs;
-
-	/**
-	 * @num_cmds: [in]
-	 *
-	 * Number of elements in the `cmds_ptr` array.
-	 */
-	__u32 num_cmds;
-
-	/**
-	 * @gather_data_words: [in]
-	 *
-	 * Number of 32-bit words in the `gather_data_ptr` array.
-	 */
-	__u32 gather_data_words;
-
-	/**
-	 * @bufs_ptr: [in]
-	 *
-	 * Pointer to an array of drm_tegra_submit_buf structures.
-	 */
-	__u64 bufs_ptr;
-
-	/**
-	 * @cmds_ptr: [in]
-	 *
-	 * Pointer to an array of drm_tegra_submit_cmd structures.
-	 */
-	__u64 cmds_ptr;
-
-	/**
-	 * @gather_data_ptr: [in]
-	 *
-	 * Pointer to an array of Host1x opcodes to be used by GATHER_UPTR
-	 * commands.
-	 */
-	__u64 gather_data_ptr;
-
-	/**
-	 * @syncobj_in: [in]
-	 *
-	 * Handle for DRM syncobj that will be waited before submission.
-	 * Ignored if zero.
-	 */
-	__u32 syncobj_in;
-
-	/**
-	 * @syncobj_out: [in]
-	 *
-	 * Handle for DRM syncobj that will have its fence replaced with
-	 * the job's completion fence. Ignored if zero.
-	 */
-	__u32 syncobj_out;
-
-	/**
-	 * @syncpt_incr: [in,out]
-	 *
-	 * Information about the syncpoint the job will increment.
-	 */
-	struct drm_tegra_submit_syncpt syncpt;
-};
-
-struct drm_tegra_syncpoint_allocate {
-	/**
-	 * @id: [out]
-	 *
-	 * ID of allocated syncpoint.
-	 */
-	__u32 id;
-	__u32 padding;
-};
-
-struct drm_tegra_syncpoint_free {
-	/**
-	 * @id: [in]
-	 *
-	 * ID of syncpoint to free.
-	 */
-	__u32 id;
-	__u32 padding;
-};
-
-struct drm_tegra_syncpoint_wait {
-	/**
-	 * @timeout: [in]
-	 *
-	 * Absolute timestamp at which the wait will time out.
-	 */
-	__s64 timeout_ns;
-
-	/**
-	 * @id: [in]
-	 *
-	 * ID of syncpoint to wait on.
-	 */
-	__u32 id;
-
-	/**
-	 * @threshold: [in]
-	 *
-	 * Threshold to wait for.
-	 */
-	__u32 threshold;
-
-	/**
-	 * @value: [out]
-	 *
-	 * Value of the syncpoint upon wait completion.
-	 */
-	__u32 value;
-
-	__u32 padding;
-};
-
-#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open)
-#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close)
-#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map)
-#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap)
-#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit)
-
-#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate)
-#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free)
-#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait)
-
 #if defined(__cplusplus)
 }
 #endif
diff --git a/original/uapi/drm/v3d_drm.h b/original/uapi/drm/v3d_drm.h
index 3dfc0af..1ce746e 100644
--- a/original/uapi/drm/v3d_drm.h
+++ b/original/uapi/drm/v3d_drm.h
@@ -38,9 +38,6 @@
 #define DRM_V3D_GET_BO_OFFSET                     0x05
 #define DRM_V3D_SUBMIT_TFU                        0x06
 #define DRM_V3D_SUBMIT_CSD                        0x07
-#define DRM_V3D_PERFMON_CREATE                    0x08
-#define DRM_V3D_PERFMON_DESTROY                   0x09
-#define DRM_V3D_PERFMON_GET_VALUES                0x0a
 
 #define DRM_IOCTL_V3D_SUBMIT_CL           DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
 #define DRM_IOCTL_V3D_WAIT_BO             DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
@@ -50,75 +47,8 @@
 #define DRM_IOCTL_V3D_GET_BO_OFFSET       DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
 #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_IOCTL_V3D_PERFMON_CREATE      DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, \
-						   struct drm_v3d_perfmon_create)
-#define DRM_IOCTL_V3D_PERFMON_DESTROY     DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, \
-						   struct drm_v3d_perfmon_destroy)
-#define DRM_IOCTL_V3D_PERFMON_GET_VALUES  DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, \
-						   struct drm_v3d_perfmon_get_values)
 
 #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE             0x01
-#define DRM_V3D_SUBMIT_EXTENSION		  0x02
-
-/* struct drm_v3d_extension - ioctl extensions
- *
- * Linked-list of generic extensions where the id identify which struct is
- * pointed by ext_data. Therefore, DRM_V3D_EXT_ID_* is used on id to identify
- * the extension type.
- */
-struct drm_v3d_extension {
-	__u64 next;
-	__u32 id;
-#define DRM_V3D_EXT_ID_MULTI_SYNC		0x01
-	__u32 flags; /* mbz */
-};
-
-/* struct drm_v3d_sem - wait/signal semaphore
- *
- * If binary semaphore, it only takes syncobj handle and ignores flags and
- * point fields. Point is defined for timeline syncobj feature.
- */
-struct drm_v3d_sem {
-	__u32 handle; /* syncobj */
-	/* rsv below, for future uses */
-	__u32 flags;
-	__u64 point;  /* for timeline sem support */
-	__u64 mbz[2]; /* must be zero, rsv */
-};
-
-/* Enum for each of the V3D queues. */
-enum v3d_queue {
-	V3D_BIN,
-	V3D_RENDER,
-	V3D_TFU,
-	V3D_CSD,
-	V3D_CACHE_CLEAN,
-};
-
-/**
- * struct drm_v3d_multi_sync - ioctl extension to add support multiples
- * syncobjs for commands submission.
- *
- * When an extension of DRM_V3D_EXT_ID_MULTI_SYNC id is defined, it points to
- * this extension to define wait and signal dependencies, instead of single
- * in/out sync entries on submitting commands. The field flags is used to
- * determine the stage to set wait dependencies.
- */
-struct drm_v3d_multi_sync {
-	struct drm_v3d_extension base;
-	/* Array of wait and signal semaphores */
-	__u64 in_syncs;
-	__u64 out_syncs;
-
-	/* Number of entries */
-	__u32 in_sync_count;
-	__u32 out_sync_count;
-
-	/* set the stage (v3d_queue) to sync */
-	__u32 wait_stage;
-
-	__u32 pad; /* mbz */
-};
 
 /**
  * struct drm_v3d_submit_cl - ioctl argument for submitting commands to the 3D
@@ -196,16 +126,7 @@
 	/* Number of BO handles passed in (size is that times 4). */
 	__u32 bo_handle_count;
 
-	/* DRM_V3D_SUBMIT_* properties */
 	__u32 flags;
-
-	/* ID of the perfmon to attach to this job. 0 means no perfmon. */
-	__u32 perfmon_id;
-
-	__u32 pad;
-
-	/* Pointer to an array of ioctl extensions*/
-	__u64 extensions;
 };
 
 /**
@@ -274,8 +195,6 @@
 	DRM_V3D_PARAM_SUPPORTS_TFU,
 	DRM_V3D_PARAM_SUPPORTS_CSD,
 	DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
-	DRM_V3D_PARAM_SUPPORTS_PERFMON,
-	DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
 };
 
 struct drm_v3d_get_param {
@@ -314,11 +233,6 @@
 	__u32 in_sync;
 	/* Sync object to signal when the TFU job is done. */
 	__u32 out_sync;
-
-	__u32 flags;
-
-	/* Pointer to an array of ioctl extensions*/
-	__u64 extensions;
 };
 
 /* Submits a compute shader for dispatch.  This job will block on any
@@ -344,134 +258,6 @@
 	__u32 in_sync;
 	/* Sync object to signal when the CSD job is done. */
 	__u32 out_sync;
-
-	/* ID of the perfmon to attach to this job. 0 means no perfmon. */
-	__u32 perfmon_id;
-
-	/* Pointer to an array of ioctl extensions*/
-	__u64 extensions;
-
-	__u32 flags;
-
-	__u32 pad;
-};
-
-enum {
-	V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
-	V3D_PERFCNT_FEP_VALID_PRIMS,
-	V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS,
-	V3D_PERFCNT_FEP_VALID_QUADS,
-	V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL,
-	V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL,
-	V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS,
-	V3D_PERFCNT_TLB_QUADS_ZERO_COV,
-	V3D_PERFCNT_TLB_QUADS_NONZERO_COV,
-	V3D_PERFCNT_TLB_QUADS_WRITTEN,
-	V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD,
-	V3D_PERFCNT_PTB_PRIM_CLIP,
-	V3D_PERFCNT_PTB_PRIM_REV,
-	V3D_PERFCNT_QPU_IDLE_CYCLES,
-	V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER,
-	V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG,
-	V3D_PERFCNT_QPU_CYCLES_VALID_INSTR,
-	V3D_PERFCNT_QPU_CYCLES_TMU_STALL,
-	V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL,
-	V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL,
-	V3D_PERFCNT_QPU_IC_HIT,
-	V3D_PERFCNT_QPU_IC_MISS,
-	V3D_PERFCNT_QPU_UC_HIT,
-	V3D_PERFCNT_QPU_UC_MISS,
-	V3D_PERFCNT_TMU_TCACHE_ACCESS,
-	V3D_PERFCNT_TMU_TCACHE_MISS,
-	V3D_PERFCNT_VPM_VDW_STALL,
-	V3D_PERFCNT_VPM_VCD_STALL,
-	V3D_PERFCNT_BIN_ACTIVE,
-	V3D_PERFCNT_RDR_ACTIVE,
-	V3D_PERFCNT_L2T_HITS,
-	V3D_PERFCNT_L2T_MISSES,
-	V3D_PERFCNT_CYCLE_COUNT,
-	V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER,
-	V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT,
-	V3D_PERFCNT_PTB_PRIMS_BINNED,
-	V3D_PERFCNT_AXI_WRITES_WATCH_0,
-	V3D_PERFCNT_AXI_READS_WATCH_0,
-	V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0,
-	V3D_PERFCNT_AXI_READ_STALLS_WATCH_0,
-	V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0,
-	V3D_PERFCNT_AXI_READ_BYTES_WATCH_0,
-	V3D_PERFCNT_AXI_WRITES_WATCH_1,
-	V3D_PERFCNT_AXI_READS_WATCH_1,
-	V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1,
-	V3D_PERFCNT_AXI_READ_STALLS_WATCH_1,
-	V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1,
-	V3D_PERFCNT_AXI_READ_BYTES_WATCH_1,
-	V3D_PERFCNT_TLB_PARTIAL_QUADS,
-	V3D_PERFCNT_TMU_CONFIG_ACCESSES,
-	V3D_PERFCNT_L2T_NO_ID_STALL,
-	V3D_PERFCNT_L2T_COM_QUE_STALL,
-	V3D_PERFCNT_L2T_TMU_WRITES,
-	V3D_PERFCNT_TMU_ACTIVE_CYCLES,
-	V3D_PERFCNT_TMU_STALLED_CYCLES,
-	V3D_PERFCNT_CLE_ACTIVE,
-	V3D_PERFCNT_L2T_TMU_READS,
-	V3D_PERFCNT_L2T_CLE_READS,
-	V3D_PERFCNT_L2T_VCD_READS,
-	V3D_PERFCNT_L2T_TMUCFG_READS,
-	V3D_PERFCNT_L2T_SLC0_READS,
-	V3D_PERFCNT_L2T_SLC1_READS,
-	V3D_PERFCNT_L2T_SLC2_READS,
-	V3D_PERFCNT_L2T_TMU_W_MISSES,
-	V3D_PERFCNT_L2T_TMU_R_MISSES,
-	V3D_PERFCNT_L2T_CLE_MISSES,
-	V3D_PERFCNT_L2T_VCD_MISSES,
-	V3D_PERFCNT_L2T_TMUCFG_MISSES,
-	V3D_PERFCNT_L2T_SLC0_MISSES,
-	V3D_PERFCNT_L2T_SLC1_MISSES,
-	V3D_PERFCNT_L2T_SLC2_MISSES,
-	V3D_PERFCNT_CORE_MEM_WRITES,
-	V3D_PERFCNT_L2T_MEM_WRITES,
-	V3D_PERFCNT_PTB_MEM_WRITES,
-	V3D_PERFCNT_TLB_MEM_WRITES,
-	V3D_PERFCNT_CORE_MEM_READS,
-	V3D_PERFCNT_L2T_MEM_READS,
-	V3D_PERFCNT_PTB_MEM_READS,
-	V3D_PERFCNT_PSE_MEM_READS,
-	V3D_PERFCNT_TLB_MEM_READS,
-	V3D_PERFCNT_GMP_MEM_READS,
-	V3D_PERFCNT_PTB_W_MEM_WORDS,
-	V3D_PERFCNT_TLB_W_MEM_WORDS,
-	V3D_PERFCNT_PSE_R_MEM_WORDS,
-	V3D_PERFCNT_TLB_R_MEM_WORDS,
-	V3D_PERFCNT_TMU_MRU_HITS,
-	V3D_PERFCNT_COMPUTE_ACTIVE,
-	V3D_PERFCNT_NUM,
-};
-
-#define DRM_V3D_MAX_PERF_COUNTERS                 32
-
-struct drm_v3d_perfmon_create {
-	__u32 id;
-	__u32 ncounters;
-	__u8 counters[DRM_V3D_MAX_PERF_COUNTERS];
-};
-
-struct drm_v3d_perfmon_destroy {
-	__u32 id;
-};
-
-/*
- * Returns the values of the performance counters tracked by this
- * perfmon (as an array of ncounters u64 values).
- *
- * No implicit synchronization is performed, so the user has to
- * guarantee that any jobs using this perfmon have already been
- * completed  (probably by blocking on the seqno returned by the
- * last exec that used the perfmon).
- */
-struct drm_v3d_perfmon_get_values {
-	__u32 id;
-	__u32 pad;
-	__u64 values_ptr;
 };
 
 #if defined(__cplusplus)
diff --git a/original/uapi/drm/virtgpu_drm.h b/original/uapi/drm/virtgpu_drm.h
index 0512fde..b9ec26e 100644
--- a/original/uapi/drm/virtgpu_drm.h
+++ b/original/uapi/drm/virtgpu_drm.h
@@ -47,15 +47,12 @@
 #define DRM_VIRTGPU_WAIT     0x08
 #define DRM_VIRTGPU_GET_CAPS  0x09
 #define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
-#define DRM_VIRTGPU_CONTEXT_INIT 0x0b
 
 #define VIRTGPU_EXECBUF_FENCE_FD_IN	0x01
 #define VIRTGPU_EXECBUF_FENCE_FD_OUT	0x02
-#define VIRTGPU_EXECBUF_RING_IDX	0x04
 #define VIRTGPU_EXECBUF_FLAGS  (\
 		VIRTGPU_EXECBUF_FENCE_FD_IN |\
 		VIRTGPU_EXECBUF_FENCE_FD_OUT |\
-		VIRTGPU_EXECBUF_RING_IDX |\
 		0)
 
 struct drm_virtgpu_map {
@@ -71,8 +68,6 @@
 	__u64 bo_handles;
 	__u32 num_bo_handles;
 	__s32 fence_fd; /* in/out fence fd (see VIRTGPU_EXECBUF_FENCE_FD_IN/OUT) */
-	__u32 ring_idx; /* command ring index (see VIRTGPU_EXECBUF_RING_IDX) */
-	__u32 pad;
 };
 
 #define VIRTGPU_PARAM_3D_FEATURES 1 /* do we have 3D features in the hw */
@@ -80,8 +75,6 @@
 #define VIRTGPU_PARAM_RESOURCE_BLOB 3 /* DRM_VIRTGPU_RESOURCE_CREATE_BLOB */
 #define VIRTGPU_PARAM_HOST_VISIBLE 4 /* Host blob resources are mappable */
 #define VIRTGPU_PARAM_CROSS_DEVICE 5 /* Cross virtio-device resource sharing  */
-#define VIRTGPU_PARAM_CONTEXT_INIT 6 /* DRM_VIRTGPU_CONTEXT_INIT */
-#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7 /* Bitmask of supported capability set ids */
 
 struct drm_virtgpu_getparam {
 	__u64 param;
@@ -180,29 +173,6 @@
 	__u64 blob_id;
 };
 
-#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID       0x0001
-#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS       0x0002
-#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
-struct drm_virtgpu_context_set_param {
-	__u64 param;
-	__u64 value;
-};
-
-struct drm_virtgpu_context_init {
-	__u32 num_params;
-	__u32 pad;
-
-	/* pointer to drm_virtgpu_context_set_param array */
-	__u64 ctx_set_params;
-};
-
-/*
- * Event code that's given when VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK is in
- * effect.  The event size is sizeof(drm_event), since there is no additional
- * payload.
- */
-#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000
-
 #define DRM_IOCTL_VIRTGPU_MAP \
 	DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
 
@@ -242,10 +212,6 @@
 	DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB,	\
 		struct drm_virtgpu_resource_create_blob)
 
-#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT					\
-	DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT,		\
-		struct drm_virtgpu_context_init)
-
 #if defined(__cplusplus)
 }
 #endif
diff --git a/original/uapi/drm/vmwgfx_drm.h b/original/uapi/drm/vmwgfx_drm.h
index 8277644..02e9175 100644
--- a/original/uapi/drm/vmwgfx_drm.h
+++ b/original/uapi/drm/vmwgfx_drm.h
@@ -72,9 +72,6 @@
 #define DRM_VMW_GB_SURFACE_CREATE_EXT   27
 #define DRM_VMW_GB_SURFACE_REF_EXT      28
 #define DRM_VMW_MSG                     29
-#define DRM_VMW_MKSSTAT_RESET           30
-#define DRM_VMW_MKSSTAT_ADD             31
-#define DRM_VMW_MKSSTAT_REMOVE          32
 
 /*************************************************************************/
 /**
@@ -110,7 +107,6 @@
 #define DRM_VMW_PARAM_HW_CAPS2         13
 #define DRM_VMW_PARAM_SM4_1            14
 #define DRM_VMW_PARAM_SM5              15
-#define DRM_VMW_PARAM_GL43             16
 
 /**
  * enum drm_vmw_handle_type - handle type for ref ioctls
@@ -1240,44 +1236,6 @@
 	__u32 receive_len;
 };
 
-/**
- * struct drm_vmw_mksstat_add_arg
- *
- * @stat: Pointer to user-space stat-counters array, page-aligned.
- * @info: Pointer to user-space counter-infos array, page-aligned.
- * @strs: Pointer to user-space stat strings, page-aligned.
- * @stat_len: Length in bytes of stat-counters array.
- * @info_len: Length in bytes of counter-infos array.
- * @strs_len: Length in bytes of the stat strings, terminators included.
- * @description: Pointer to instance descriptor string; will be truncated
- *               to MKS_GUEST_STAT_INSTANCE_DESC_LENGTH chars.
- * @id: Output identifier of the produced record; -1 if error.
- *
- * Argument to the DRM_VMW_MKSSTAT_ADD ioctl.
- */
-struct drm_vmw_mksstat_add_arg {
-	__u64 stat;
-	__u64 info;
-	__u64 strs;
-	__u64 stat_len;
-	__u64 info_len;
-	__u64 strs_len;
-	__u64 description;
-	__u64 id;
-};
-
-/**
- * struct drm_vmw_mksstat_remove_arg
- *
- * @id: Identifier of the record being disposed, originally obtained through
- *      DRM_VMW_MKSSTAT_ADD ioctl.
- *
- * Argument to the DRM_VMW_MKSSTAT_REMOVE ioctl.
- */
-struct drm_vmw_mksstat_remove_arg {
-	__u64 id;
-};
-
 #if defined(__cplusplus)
 }
 #endif
diff --git a/original/uapi/linux/acrn.h b/original/uapi/linux/acrn.h
index ccf47ed..353b2a2 100644
--- a/original/uapi/linux/acrn.h
+++ b/original/uapi/linux/acrn.h
@@ -396,7 +396,6 @@
 /* Type of PCI device assignment */
 #define ACRN_PTDEV_QUIRK_ASSIGN	(1U << 0)
 
-#define ACRN_MMIODEV_RES_NUM	3
 #define ACRN_PCI_NUM_BARS	6
 /**
  * struct acrn_pcidev - Info for assigning or de-assigning a PCI device
@@ -419,67 +418,6 @@
 };
 
 /**
- * struct acrn_mmiodev - Info for assigning or de-assigning a MMIO device
- * @name:			Name of the MMIO device.
- * @res[].user_vm_pa:		Physical address of User VM of the MMIO region
- *				for the MMIO device.
- * @res[].service_vm_pa:	Physical address of Service VM of the MMIO
- *				region for the MMIO device.
- * @res[].size:			Size of the MMIO region for the MMIO device.
- * @res[].mem_type:		Memory type of the MMIO region for the MMIO
- *				device.
- *
- * This structure will be passed to hypervisor directly.
- */
-struct acrn_mmiodev {
-	__u8	name[8];
-	struct {
-		__u64	user_vm_pa;
-		__u64	service_vm_pa;
-		__u64	size;
-		__u64	mem_type;
-	} res[ACRN_MMIODEV_RES_NUM];
-};
-
-/**
- * struct acrn_vdev - Info for creating or destroying a virtual device
- * @id:				Union of identifier of the virtual device
- * @id.value:			Raw data of the identifier
- * @id.fields.vendor:		Vendor id of the virtual PCI device
- * @id.fields.device:		Device id of the virtual PCI device
- * @id.fields.legacy_id:	ID of the virtual device if not a PCI device
- * @slot:			Virtual Bus/Device/Function of the virtual
- *				device
- * @io_base:			IO resource base address of the virtual device
- * @io_size:			IO resource size of the virtual device
- * @args:			Arguments for the virtual device creation
- *
- * The created virtual device can be a PCI device or a legacy device (e.g.
- * a virtual UART controller) and it is emulated by the hypervisor. This
- * structure will be passed to hypervisor directly.
- */
-struct acrn_vdev {
-	/*
-	 * the identifier of the device, the low 32 bits represent the vendor
-	 * id and device id of PCI device and the high 32 bits represent the
-	 * device number of the legacy device
-	 */
-	union {
-		__u64 value;
-		struct {
-			__le16 vendor;
-			__le16 device;
-			__le32 legacy_id;
-		} fields;
-	} id;
-
-	__u64	slot;
-	__u32	io_addr[ACRN_PCI_NUM_BARS];
-	__u32	io_size[ACRN_PCI_NUM_BARS];
-	__u8	args[128];
-};
-
-/**
  * struct acrn_msi_entry - Info for injecting a MSI interrupt to a VM
  * @msi_addr:	MSI addr[19:12] with dest vCPU ID
  * @msi_data:	MSI data[7:0] with vector
@@ -630,14 +568,6 @@
 	_IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev)
 #define ACRN_IOCTL_DEASSIGN_PCIDEV	\
 	_IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev)
-#define ACRN_IOCTL_ASSIGN_MMIODEV	\
-	_IOW(ACRN_IOCTL_TYPE, 0x57, struct acrn_mmiodev)
-#define ACRN_IOCTL_DEASSIGN_MMIODEV	\
-	_IOW(ACRN_IOCTL_TYPE, 0x58, struct acrn_mmiodev)
-#define ACRN_IOCTL_CREATE_VDEV	\
-	_IOW(ACRN_IOCTL_TYPE, 0x59, struct acrn_vdev)
-#define ACRN_IOCTL_DESTROY_VDEV	\
-	_IOW(ACRN_IOCTL_TYPE, 0x5A, struct acrn_vdev)
 
 #define ACRN_IOCTL_PM_GET_CPU_STATE	\
 	_IOWR(ACRN_IOCTL_TYPE, 0x60, __u64)
diff --git a/original/uapi/linux/amt.h b/original/uapi/linux/amt.h
deleted file mode 100644
index 2dccff4..0000000
--- a/original/uapi/linux/amt.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
-/*
- * Copyright (c) 2021 Taehee Yoo <ap420073@gmail.com>
- */
-#ifndef _UAPI_AMT_H_
-#define _UAPI_AMT_H_
-
-enum ifla_amt_mode {
-	/* AMT interface works as Gateway mode.
-	 * The Gateway mode encapsulates IGMP/MLD traffic and decapsulates
-	 * multicast traffic.
-	 */
-	AMT_MODE_GATEWAY = 0,
-	/* AMT interface works as Relay mode.
-	 * The Relay mode encapsulates multicast traffic and decapsulates
-	 * IGMP/MLD traffic.
-	 */
-	AMT_MODE_RELAY,
-	__AMT_MODE_MAX,
-};
-
-#define AMT_MODE_MAX (__AMT_MODE_MAX - 1)
-
-enum {
-	IFLA_AMT_UNSPEC,
-	/* This attribute specify mode etier Gateway or Relay. */
-	IFLA_AMT_MODE,
-	/* This attribute specify Relay port.
-	 * AMT interface is created as Gateway mode, this attribute is used
-	 * to specify relay(remote) port.
-	 * AMT interface is created as Relay mode, this attribute is used
-	 * as local port.
-	 */
-	IFLA_AMT_RELAY_PORT,
-	/* This attribute specify Gateway port.
-	 * AMT interface is created as Gateway mode, this attribute is used
-	 * as local port.
-	 * AMT interface is created as Relay mode, this attribute is not used.
-	 */
-	IFLA_AMT_GATEWAY_PORT,
-	/* This attribute specify physical device */
-	IFLA_AMT_LINK,
-	/* This attribute specify local ip address */
-	IFLA_AMT_LOCAL_IP,
-	/* This attribute specify Relay ip address.
-	 * So, this is not used by Relay.
-	 */
-	IFLA_AMT_REMOTE_IP,
-	/* This attribute specify Discovery ip address.
-	 * When Gateway get started, it send discovery message to find the
-	 * Relay's ip address.
-	 * So, this is not used by Relay.
-	 */
-	IFLA_AMT_DISCOVERY_IP,
-	/* This attribute specify number of maximum tunnel. */
-	IFLA_AMT_MAX_TUNNELS,
-	__IFLA_AMT_MAX,
-};
-
-#define IFLA_AMT_MAX (__IFLA_AMT_MAX - 1)
-
-#endif /* _UAPI_AMT_H_ */
diff --git a/original/uapi/linux/android/binder.h b/original/uapi/linux/android/binder.h
index 2d3f015..8e5b929 100644
--- a/original/uapi/linux/android/binder.h
+++ b/original/uapi/linux/android/binder.h
@@ -265,25 +265,6 @@
 	__u32            reserved3;
 };
 
-struct binder_freeze_info {
-	__u32            pid;
-	__u32            enable;
-	__u32            timeout_ms;
-};
-
-struct binder_frozen_status_info {
-	__u32            pid;
-
-	/* process received sync transactions since last frozen
-	 * bit 0: received sync transaction after being frozen
-	 * bit 1: new pending sync transaction during freezing
-	 */
-	__u32            sync_recv;
-
-	/* process received async transactions since last frozen */
-	__u32            async_recv;
-};
-
 #define BINDER_WRITE_READ		_IOWR('b', 1, struct binder_write_read)
 #define BINDER_SET_IDLE_TIMEOUT		_IOW('b', 3, __s64)
 #define BINDER_SET_MAX_THREADS		_IOW('b', 5, __u32)
@@ -294,9 +275,6 @@
 #define BINDER_GET_NODE_DEBUG_INFO	_IOWR('b', 11, struct binder_node_debug_info)
 #define BINDER_GET_NODE_INFO_FOR_REF	_IOWR('b', 12, struct binder_node_info_for_ref)
 #define BINDER_SET_CONTEXT_MGR_EXT	_IOW('b', 13, struct flat_binder_object)
-#define BINDER_FREEZE			_IOW('b', 14, struct binder_freeze_info)
-#define BINDER_GET_FROZEN_INFO		_IOWR('b', 15, struct binder_frozen_status_info)
-#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION	_IOW('b', 16, __u32)
 
 /*
  * NOTE: Two special error codes you should check for when calling
@@ -478,19 +456,6 @@
 	 * The last transaction (either a bcTRANSACTION or
 	 * a bcATTEMPT_ACQUIRE) failed (e.g. out of memory).  No parameters.
 	 */
-
-	BR_FROZEN_REPLY = _IO('r', 18),
-	/*
-	 * The target of the last transaction (either a bcTRANSACTION or
-	 * a bcATTEMPT_ACQUIRE) is frozen.  No parameters.
-	 */
-
-	BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19),
-	/*
-	 * Current process sent too many oneway calls to target, and the last
-	 * asynchronous transaction makes the allocated async buffer size exceed
-	 * detection threshold.  No parameters.
-	 */
 };
 
 enum binder_driver_command_protocol {
diff --git a/original/uapi/linux/ashmem.h b/original/uapi/linux/ashmem.h
index 134efac..5442e00 100644
--- a/original/uapi/linux/ashmem.h
+++ b/original/uapi/linux/ashmem.h
@@ -1,5 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 */
 /*
+ * drivers/staging/android/uapi/ashmem.h
+ *
  * Copyright 2008 Google Inc.
  * Author: Robert Love
  */
diff --git a/original/uapi/linux/audit.h b/original/uapi/linux/audit.h
index 8eda133..cd2d827 100644
--- a/original/uapi/linux/audit.h
+++ b/original/uapi/linux/audit.h
@@ -48,7 +48,7 @@
  * 2500 - 2999 future user space (maybe integrity labels and related events)
  *
  * Messages from 1000-1199 are bi-directional. 1200-1299 & 2100 - 2999 are
- * exclusively user space. 1300-2099 is kernel --> user space
+ * exclusively user space. 1300-2099 is kernel --> user space 
  * communication.
  */
 #define AUDIT_GET		1000	/* Get status */
@@ -78,7 +78,7 @@
 #define AUDIT_LAST_USER_MSG	1199
 #define AUDIT_FIRST_USER_MSG2	2100	/* More user space messages */
 #define AUDIT_LAST_USER_MSG2	2999
-
+ 
 #define AUDIT_DAEMON_START      1200    /* Daemon startup record */
 #define AUDIT_DAEMON_END        1201    /* Daemon normal stop record */
 #define AUDIT_DAEMON_ABORT      1202    /* Daemon error stop record */
@@ -118,10 +118,6 @@
 #define AUDIT_TIME_ADJNTPVAL	1333	/* NTP value adjustment */
 #define AUDIT_BPF		1334	/* BPF subsystem */
 #define AUDIT_EVENT_LISTENER	1335	/* Task joined multicast read socket */
-#define AUDIT_URINGOP		1336	/* io_uring operation */
-#define AUDIT_OPENAT2		1337	/* Record showing openat2 how args */
-#define AUDIT_DM_CTRL		1338	/* Device Mapper target control */
-#define AUDIT_DM_EVENT		1339	/* Device Mapper events */
 
 #define AUDIT_AVC		1400	/* SE Linux avc denial or grant */
 #define AUDIT_SELINUX_ERR	1401	/* Internal SE Linux Errors */
@@ -170,9 +166,8 @@
 #define AUDIT_FILTER_EXCLUDE	0x05	/* Apply rule before record creation */
 #define AUDIT_FILTER_TYPE	AUDIT_FILTER_EXCLUDE /* obsolete misleading naming */
 #define AUDIT_FILTER_FS		0x06	/* Apply rule at __audit_inode_child */
-#define AUDIT_FILTER_URING_EXIT	0x07	/* Apply rule at io_uring op exit */
 
-#define AUDIT_NR_FILTERS	8
+#define AUDIT_NR_FILTERS	7
 
 #define AUDIT_FILTER_PREPEND	0x10	/* Prepend to front of list */
 
@@ -514,7 +509,7 @@
 	__u32		values[AUDIT_MAX_FIELDS];
 	__u32		fieldflags[AUDIT_MAX_FIELDS];
 	__u32		buflen;	/* total length of string fields */
-	char		buf[];	/* string fields buffer */
+	char		buf[0];	/* string fields buffer */
 };
 
 #endif /* _UAPI_LINUX_AUDIT_H_ */
diff --git a/original/uapi/linux/auxvec.h b/original/uapi/linux/auxvec.h
index c7e502b..abe5f2b 100644
--- a/original/uapi/linux/auxvec.h
+++ b/original/uapi/linux/auxvec.h
@@ -33,8 +33,5 @@
 
 #define AT_EXECFN  31	/* filename of program */
 
-#ifndef AT_MINSIGSTKSZ
-#define AT_MINSIGSTKSZ	51	/* minimal stack size for signal delivery */
-#endif
 
 #endif /* _UAPI_LINUX_AUXVEC_H */
diff --git a/original/uapi/linux/bcache.h b/original/uapi/linux/bcache.h
new file mode 100644
index 0000000..cf7399f
--- /dev/null
+++ b/original/uapi/linux/bcache.h
@@ -0,0 +1,445 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _LINUX_BCACHE_H
+#define _LINUX_BCACHE_H
+
+/*
+ * Bcache on disk data structures
+ */
+
+#include <linux/types.h>
+
+#define BITMASK(name, type, field, offset, size)		\
+static inline __u64 name(const type *k)				\
+{ return (k->field >> offset) & ~(~0ULL << size); }		\
+								\
+static inline void SET_##name(type *k, __u64 v)			\
+{								\
+	k->field &= ~(~(~0ULL << size) << offset);		\
+	k->field |= (v & ~(~0ULL << size)) << offset;		\
+}
+
+/* Btree keys - all units are in sectors */
+
+struct bkey {
+	__u64	high;
+	__u64	low;
+	__u64	ptr[];
+};
+
+#define KEY_FIELD(name, field, offset, size)				\
+	BITMASK(name, struct bkey, field, offset, size)
+
+#define PTR_FIELD(name, offset, size)					\
+static inline __u64 name(const struct bkey *k, unsigned int i)		\
+{ return (k->ptr[i] >> offset) & ~(~0ULL << size); }			\
+									\
+static inline void SET_##name(struct bkey *k, unsigned int i, __u64 v)	\
+{									\
+	k->ptr[i] &= ~(~(~0ULL << size) << offset);			\
+	k->ptr[i] |= (v & ~(~0ULL << size)) << offset;			\
+}
+
+#define KEY_SIZE_BITS		16
+#define KEY_MAX_U64S		8
+
+KEY_FIELD(KEY_PTRS,	high, 60, 3)
+KEY_FIELD(HEADER_SIZE,	high, 58, 2)
+KEY_FIELD(KEY_CSUM,	high, 56, 2)
+KEY_FIELD(KEY_PINNED,	high, 55, 1)
+KEY_FIELD(KEY_DIRTY,	high, 36, 1)
+
+KEY_FIELD(KEY_SIZE,	high, 20, KEY_SIZE_BITS)
+KEY_FIELD(KEY_INODE,	high, 0,  20)
+
+/* Next time I change the on disk format, KEY_OFFSET() won't be 64 bits */
+
+static inline __u64 KEY_OFFSET(const struct bkey *k)
+{
+	return k->low;
+}
+
+static inline void SET_KEY_OFFSET(struct bkey *k, __u64 v)
+{
+	k->low = v;
+}
+
+/*
+ * The high bit being set is a relic from when we used it to do binary
+ * searches - it told you where a key started. It's not used anymore,
+ * and can probably be safely dropped.
+ */
+#define KEY(inode, offset, size)					\
+((struct bkey) {							\
+	.high = (1ULL << 63) | ((__u64) (size) << 20) | (inode),	\
+	.low = (offset)							\
+})
+
+#define ZERO_KEY			KEY(0, 0, 0)
+
+#define MAX_KEY_INODE			(~(~0 << 20))
+#define MAX_KEY_OFFSET			(~0ULL >> 1)
+#define MAX_KEY				KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0)
+
+#define KEY_START(k)			(KEY_OFFSET(k) - KEY_SIZE(k))
+#define START_KEY(k)			KEY(KEY_INODE(k), KEY_START(k), 0)
+
+#define PTR_DEV_BITS			12
+
+PTR_FIELD(PTR_DEV,			51, PTR_DEV_BITS)
+PTR_FIELD(PTR_OFFSET,			8,  43)
+PTR_FIELD(PTR_GEN,			0,  8)
+
+#define PTR_CHECK_DEV			((1 << PTR_DEV_BITS) - 1)
+
+#define MAKE_PTR(gen, offset, dev)					\
+	((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen)
+
+/* Bkey utility code */
+
+static inline unsigned long bkey_u64s(const struct bkey *k)
+{
+	return (sizeof(struct bkey) / sizeof(__u64)) + KEY_PTRS(k);
+}
+
+static inline unsigned long bkey_bytes(const struct bkey *k)
+{
+	return bkey_u64s(k) * sizeof(__u64);
+}
+
+#define bkey_copy(_dest, _src)	memcpy(_dest, _src, bkey_bytes(_src))
+
+static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src)
+{
+	SET_KEY_INODE(dest, KEY_INODE(src));
+	SET_KEY_OFFSET(dest, KEY_OFFSET(src));
+}
+
+static inline struct bkey *bkey_next(const struct bkey *k)
+{
+	__u64 *d = (void *) k;
+
+	return (struct bkey *) (d + bkey_u64s(k));
+}
+
+static inline struct bkey *bkey_idx(const struct bkey *k, unsigned int nr_keys)
+{
+	__u64 *d = (void *) k;
+
+	return (struct bkey *) (d + nr_keys);
+}
+/* Enough for a key with 6 pointers */
+#define BKEY_PAD		8
+
+#define BKEY_PADDED(key)					\
+	union { struct bkey key; __u64 key ## _pad[BKEY_PAD]; }
+
+/* Superblock */
+
+/* Version 0: Cache device
+ * Version 1: Backing device
+ * Version 2: Seed pointer into btree node checksum
+ * Version 3: Cache device with new UUID format
+ * Version 4: Backing device with data offset
+ */
+#define BCACHE_SB_VERSION_CDEV			0
+#define BCACHE_SB_VERSION_BDEV			1
+#define BCACHE_SB_VERSION_CDEV_WITH_UUID	3
+#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET	4
+#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES	5
+#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES	6
+#define BCACHE_SB_MAX_VERSION			6
+
+#define SB_SECTOR			8
+#define SB_OFFSET			(SB_SECTOR << SECTOR_SHIFT)
+#define SB_SIZE				4096
+#define SB_LABEL_SIZE			32
+#define SB_JOURNAL_BUCKETS		256U
+/* SB_JOURNAL_BUCKETS must be divisible by BITS_PER_LONG */
+#define MAX_CACHES_PER_SET		8
+
+#define BDEV_DATA_START_DEFAULT		16	/* sectors */
+
+struct cache_sb_disk {
+	__le64			csum;
+	__le64			offset;	/* sector where this sb was written */
+	__le64			version;
+
+	__u8			magic[16];
+
+	__u8			uuid[16];
+	union {
+		__u8		set_uuid[16];
+		__le64		set_magic;
+	};
+	__u8			label[SB_LABEL_SIZE];
+
+	__le64			flags;
+	__le64			seq;
+
+	__le64			feature_compat;
+	__le64			feature_incompat;
+	__le64			feature_ro_compat;
+
+	__le64			pad[5];
+
+	union {
+	struct {
+		/* Cache devices */
+		__le64		nbuckets;	/* device size */
+
+		__le16		block_size;	/* sectors */
+		__le16		bucket_size;	/* sectors */
+
+		__le16		nr_in_set;
+		__le16		nr_this_dev;
+	};
+	struct {
+		/* Backing devices */
+		__le64		data_offset;
+
+		/*
+		 * block_size from the cache device section is still used by
+		 * backing devices, so don't add anything here until we fix
+		 * things to not need it for backing devices anymore
+		 */
+	};
+	};
+
+	__le32			last_mount;	/* time overflow in y2106 */
+
+	__le16			first_bucket;
+	union {
+		__le16		njournal_buckets;
+		__le16		keys;
+	};
+	__le64			d[SB_JOURNAL_BUCKETS];	/* journal buckets */
+	__le16			obso_bucket_size_hi;	/* obsoleted */
+};
+
+/*
+ * This is for in-memory bcache super block.
+ * NOTE: cache_sb is NOT exactly mapping to cache_sb_disk, the member
+ *       size, ordering and even whole struct size may be different
+ *       from cache_sb_disk.
+ */
+struct cache_sb {
+	__u64			offset;	/* sector where this sb was written */
+	__u64			version;
+
+	__u8			magic[16];
+
+	__u8			uuid[16];
+	union {
+		__u8		set_uuid[16];
+		__u64		set_magic;
+	};
+	__u8			label[SB_LABEL_SIZE];
+
+	__u64			flags;
+	__u64			seq;
+
+	__u64			feature_compat;
+	__u64			feature_incompat;
+	__u64			feature_ro_compat;
+
+	union {
+	struct {
+		/* Cache devices */
+		__u64		nbuckets;	/* device size */
+
+		__u16		block_size;	/* sectors */
+		__u16		nr_in_set;
+		__u16		nr_this_dev;
+		__u32		bucket_size;	/* sectors */
+	};
+	struct {
+		/* Backing devices */
+		__u64		data_offset;
+
+		/*
+		 * block_size from the cache device section is still used by
+		 * backing devices, so don't add anything here until we fix
+		 * things to not need it for backing devices anymore
+		 */
+	};
+	};
+
+	__u32			last_mount;	/* time overflow in y2106 */
+
+	__u16			first_bucket;
+	union {
+		__u16		njournal_buckets;
+		__u16		keys;
+	};
+	__u64			d[SB_JOURNAL_BUCKETS];	/* journal buckets */
+};
+
+static inline _Bool SB_IS_BDEV(const struct cache_sb *sb)
+{
+	return sb->version == BCACHE_SB_VERSION_BDEV
+		|| sb->version == BCACHE_SB_VERSION_BDEV_WITH_OFFSET
+		|| sb->version == BCACHE_SB_VERSION_BDEV_WITH_FEATURES;
+}
+
+BITMASK(CACHE_SYNC,			struct cache_sb, flags, 0, 1);
+BITMASK(CACHE_DISCARD,			struct cache_sb, flags, 1, 1);
+BITMASK(CACHE_REPLACEMENT,		struct cache_sb, flags, 2, 3);
+#define CACHE_REPLACEMENT_LRU		0U
+#define CACHE_REPLACEMENT_FIFO		1U
+#define CACHE_REPLACEMENT_RANDOM	2U
+
+BITMASK(BDEV_CACHE_MODE,		struct cache_sb, flags, 0, 4);
+#define CACHE_MODE_WRITETHROUGH		0U
+#define CACHE_MODE_WRITEBACK		1U
+#define CACHE_MODE_WRITEAROUND		2U
+#define CACHE_MODE_NONE			3U
+BITMASK(BDEV_STATE,			struct cache_sb, flags, 61, 2);
+#define BDEV_STATE_NONE			0U
+#define BDEV_STATE_CLEAN		1U
+#define BDEV_STATE_DIRTY		2U
+#define BDEV_STATE_STALE		3U
+
+/*
+ * Magic numbers
+ *
+ * The various other data structures have their own magic numbers, which are
+ * xored with the first part of the cache set's UUID
+ */
+
+#define JSET_MAGIC			0x245235c1a3625032ULL
+#define PSET_MAGIC			0x6750e15f87337f91ULL
+#define BSET_MAGIC			0x90135c78b99e07f5ULL
+
+static inline __u64 jset_magic(struct cache_sb *sb)
+{
+	return sb->set_magic ^ JSET_MAGIC;
+}
+
+static inline __u64 pset_magic(struct cache_sb *sb)
+{
+	return sb->set_magic ^ PSET_MAGIC;
+}
+
+static inline __u64 bset_magic(struct cache_sb *sb)
+{
+	return sb->set_magic ^ BSET_MAGIC;
+}
+
+/*
+ * Journal
+ *
+ * On disk format for a journal entry:
+ * seq is monotonically increasing; every journal entry has its own unique
+ * sequence number.
+ *
+ * last_seq is the oldest journal entry that still has keys the btree hasn't
+ * flushed to disk yet.
+ *
+ * version is for on disk format changes.
+ */
+
+#define BCACHE_JSET_VERSION_UUIDv1	1
+#define BCACHE_JSET_VERSION_UUID	1	/* Always latest UUID format */
+#define BCACHE_JSET_VERSION		1
+
+struct jset {
+	__u64			csum;
+	__u64			magic;
+	__u64			seq;
+	__u32			version;
+	__u32			keys;
+
+	__u64			last_seq;
+
+	BKEY_PADDED(uuid_bucket);
+	BKEY_PADDED(btree_root);
+	__u16			btree_level;
+	__u16			pad[3];
+
+	__u64			prio_bucket[MAX_CACHES_PER_SET];
+
+	union {
+		struct bkey	start[0];
+		__u64		d[0];
+	};
+};
+
+/* Bucket prios/gens */
+
+struct prio_set {
+	__u64			csum;
+	__u64			magic;
+	__u64			seq;
+	__u32			version;
+	__u32			pad;
+
+	__u64			next_bucket;
+
+	struct bucket_disk {
+		__u16		prio;
+		__u8		gen;
+	} __attribute((packed)) data[];
+};
+
+/* UUIDS - per backing device/flash only volume metadata */
+
+struct uuid_entry {
+	union {
+		struct {
+			__u8	uuid[16];
+			__u8	label[32];
+			__u32	first_reg; /* time overflow in y2106 */
+			__u32	last_reg;
+			__u32	invalidated;
+
+			__u32	flags;
+			/* Size of flash only volumes */
+			__u64	sectors;
+		};
+
+		__u8		pad[128];
+	};
+};
+
+BITMASK(UUID_FLASH_ONLY,	struct uuid_entry, flags, 0, 1);
+
+/* Btree nodes */
+
+/* Version 1: Seed pointer into btree node checksum
+ */
+#define BCACHE_BSET_CSUM		1
+#define BCACHE_BSET_VERSION		1
+
+/*
+ * Btree nodes
+ *
+ * On disk a btree node is a list/log of these; within each set the keys are
+ * sorted
+ */
+struct bset {
+	__u64			csum;
+	__u64			magic;
+	__u64			seq;
+	__u32			version;
+	__u32			keys;
+
+	union {
+		struct bkey	start[0];
+		__u64		d[0];
+	};
+};
+
+/* OBSOLETE */
+
+/* UUIDS - per backing device/flash only volume metadata */
+
+struct uuid_entry_v0 {
+	__u8		uuid[16];
+	__u8		label[32];
+	__u32		first_reg;
+	__u32		last_reg;
+	__u32		invalidated;
+	__u32		pad;
+};
+
+#endif /* _LINUX_BCACHE_H */
diff --git a/original/uapi/linux/bpf.h b/original/uapi/linux/bpf.h
index b0383d3..4ba4ef0 100644
--- a/original/uapi/linux/bpf.h
+++ b/original/uapi/linux/bpf.h
@@ -84,7 +84,7 @@
 
 struct bpf_cgroup_storage_key {
 	__u64	cgroup_inode_id;	/* cgroup inode id */
-	__u32	attach_type;		/* program attach type (enum bpf_attach_type) */
+	__u32	attach_type;		/* program attach type */
 };
 
 union bpf_iter_link_info {
@@ -93,748 +93,7 @@
 	} map;
 };
 
-/* BPF syscall commands, see bpf(2) man-page for more details. */
-/**
- * DOC: eBPF Syscall Preamble
- *
- * The operation to be performed by the **bpf**\ () system call is determined
- * by the *cmd* argument. Each operation takes an accompanying argument,
- * provided via *attr*, which is a pointer to a union of type *bpf_attr* (see
- * below). The size argument is the size of the union pointed to by *attr*.
- */
-/**
- * DOC: eBPF Syscall Commands
- *
- * BPF_MAP_CREATE
- *	Description
- *		Create a map and return a file descriptor that refers to the
- *		map. The close-on-exec file descriptor flag (see **fcntl**\ (2))
- *		is automatically enabled for the new file descriptor.
- *
- *		Applying **close**\ (2) to the file descriptor returned by
- *		**BPF_MAP_CREATE** will delete the map (but see NOTES).
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_MAP_LOOKUP_ELEM
- *	Description
- *		Look up an element with a given *key* in the map referred to
- *		by the file descriptor *map_fd*.
- *
- *		The *flags* argument may be specified as one of the
- *		following:
- *
- *		**BPF_F_LOCK**
- *			Look up the value of a spin-locked map without
- *			returning the lock. This must be specified if the
- *			elements contain a spinlock.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_MAP_UPDATE_ELEM
- *	Description
- *		Create or update an element (key/value pair) in a specified map.
- *
- *		The *flags* argument should be specified as one of the
- *		following:
- *
- *		**BPF_ANY**
- *			Create a new element or update an existing element.
- *		**BPF_NOEXIST**
- *			Create a new element only if it did not exist.
- *		**BPF_EXIST**
- *			Update an existing element.
- *		**BPF_F_LOCK**
- *			Update a spin_lock-ed map element.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- *		May set *errno* to **EINVAL**, **EPERM**, **ENOMEM**,
- *		**E2BIG**, **EEXIST**, or **ENOENT**.
- *
- *		**E2BIG**
- *			The number of elements in the map reached the
- *			*max_entries* limit specified at map creation time.
- *		**EEXIST**
- *			If *flags* specifies **BPF_NOEXIST** and the element
- *			with *key* already exists in the map.
- *		**ENOENT**
- *			If *flags* specifies **BPF_EXIST** and the element with
- *			*key* does not exist in the map.
- *
- * BPF_MAP_DELETE_ELEM
- *	Description
- *		Look up and delete an element by key in a specified map.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_MAP_GET_NEXT_KEY
- *	Description
- *		Look up an element by key in a specified map and return the key
- *		of the next element. Can be used to iterate over all elements
- *		in the map.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- *		The following cases can be used to iterate over all elements of
- *		the map:
- *
- *		* If *key* is not found, the operation returns zero and sets
- *		  the *next_key* pointer to the key of the first element.
- *		* If *key* is found, the operation returns zero and sets the
- *		  *next_key* pointer to the key of the next element.
- *		* If *key* is the last element, returns -1 and *errno* is set
- *		  to **ENOENT**.
- *
- *		May set *errno* to **ENOMEM**, **EFAULT**, **EPERM**, or
- *		**EINVAL** on error.
- *
- * BPF_PROG_LOAD
- *	Description
- *		Verify and load an eBPF program, returning a new file
- *		descriptor associated with the program.
- *
- *		Applying **close**\ (2) to the file descriptor returned by
- *		**BPF_PROG_LOAD** will unload the eBPF program (but see NOTES).
- *
- *		The close-on-exec file descriptor flag (see **fcntl**\ (2)) is
- *		automatically enabled for the new file descriptor.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_OBJ_PIN
- *	Description
- *		Pin an eBPF program or map referred by the specified *bpf_fd*
- *		to the provided *pathname* on the filesystem.
- *
- *		The *pathname* argument must not contain a dot (".").
- *
- *		On success, *pathname* retains a reference to the eBPF object,
- *		preventing deallocation of the object when the original
- *		*bpf_fd* is closed. This allow the eBPF object to live beyond
- *		**close**\ (\ *bpf_fd*\ ), and hence the lifetime of the parent
- *		process.
- *
- *		Applying **unlink**\ (2) or similar calls to the *pathname*
- *		unpins the object from the filesystem, removing the reference.
- *		If no other file descriptors or filesystem nodes refer to the
- *		same object, it will be deallocated (see NOTES).
- *
- *		The filesystem type for the parent directory of *pathname* must
- *		be **BPF_FS_MAGIC**.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_OBJ_GET
- *	Description
- *		Open a file descriptor for the eBPF object pinned to the
- *		specified *pathname*.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_PROG_ATTACH
- *	Description
- *		Attach an eBPF program to a *target_fd* at the specified
- *		*attach_type* hook.
- *
- *		The *attach_type* specifies the eBPF attachment point to
- *		attach the program to, and must be one of *bpf_attach_type*
- *		(see below).
- *
- *		The *attach_bpf_fd* must be a valid file descriptor for a
- *		loaded eBPF program of a cgroup, flow dissector, LIRC, sockmap
- *		or sock_ops type corresponding to the specified *attach_type*.
- *
- *		The *target_fd* must be a valid file descriptor for a kernel
- *		object which depends on the attach type of *attach_bpf_fd*:
- *
- *		**BPF_PROG_TYPE_CGROUP_DEVICE**,
- *		**BPF_PROG_TYPE_CGROUP_SKB**,
- *		**BPF_PROG_TYPE_CGROUP_SOCK**,
- *		**BPF_PROG_TYPE_CGROUP_SOCK_ADDR**,
- *		**BPF_PROG_TYPE_CGROUP_SOCKOPT**,
- *		**BPF_PROG_TYPE_CGROUP_SYSCTL**,
- *		**BPF_PROG_TYPE_SOCK_OPS**
- *
- *			Control Group v2 hierarchy with the eBPF controller
- *			enabled. Requires the kernel to be compiled with
- *			**CONFIG_CGROUP_BPF**.
- *
- *		**BPF_PROG_TYPE_FLOW_DISSECTOR**
- *
- *			Network namespace (eg /proc/self/ns/net).
- *
- *		**BPF_PROG_TYPE_LIRC_MODE2**
- *
- *			LIRC device path (eg /dev/lircN). Requires the kernel
- *			to be compiled with **CONFIG_BPF_LIRC_MODE2**.
- *
- *		**BPF_PROG_TYPE_SK_SKB**,
- *		**BPF_PROG_TYPE_SK_MSG**
- *
- *			eBPF map of socket type (eg **BPF_MAP_TYPE_SOCKHASH**).
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_PROG_DETACH
- *	Description
- *		Detach the eBPF program associated with the *target_fd* at the
- *		hook specified by *attach_type*. The program must have been
- *		previously attached using **BPF_PROG_ATTACH**.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_PROG_TEST_RUN
- *	Description
- *		Run the eBPF program associated with the *prog_fd* a *repeat*
- *		number of times against a provided program context *ctx_in* and
- *		data *data_in*, and return the modified program context
- *		*ctx_out*, *data_out* (for example, packet data), result of the
- *		execution *retval*, and *duration* of the test run.
- *
- *		The sizes of the buffers provided as input and output
- *		parameters *ctx_in*, *ctx_out*, *data_in*, and *data_out* must
- *		be provided in the corresponding variables *ctx_size_in*,
- *		*ctx_size_out*, *data_size_in*, and/or *data_size_out*. If any
- *		of these parameters are not provided (ie set to NULL), the
- *		corresponding size field must be zero.
- *
- *		Some program types have particular requirements:
- *
- *		**BPF_PROG_TYPE_SK_LOOKUP**
- *			*data_in* and *data_out* must be NULL.
- *
- *		**BPF_PROG_TYPE_RAW_TRACEPOINT**,
- *		**BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE**
- *
- *			*ctx_out*, *data_in* and *data_out* must be NULL.
- *			*repeat* must be zero.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- *		**ENOSPC**
- *			Either *data_size_out* or *ctx_size_out* is too small.
- *		**ENOTSUPP**
- *			This command is not supported by the program type of
- *			the program referred to by *prog_fd*.
- *
- * BPF_PROG_GET_NEXT_ID
- *	Description
- *		Fetch the next eBPF program currently loaded into the kernel.
- *
- *		Looks for the eBPF program with an id greater than *start_id*
- *		and updates *next_id* on success. If no other eBPF programs
- *		remain with ids higher than *start_id*, returns -1 and sets
- *		*errno* to **ENOENT**.
- *
- *	Return
- *		Returns zero on success. On error, or when no id remains, -1
- *		is returned and *errno* is set appropriately.
- *
- * BPF_MAP_GET_NEXT_ID
- *	Description
- *		Fetch the next eBPF map currently loaded into the kernel.
- *
- *		Looks for the eBPF map with an id greater than *start_id*
- *		and updates *next_id* on success. If no other eBPF maps
- *		remain with ids higher than *start_id*, returns -1 and sets
- *		*errno* to **ENOENT**.
- *
- *	Return
- *		Returns zero on success. On error, or when no id remains, -1
- *		is returned and *errno* is set appropriately.
- *
- * BPF_PROG_GET_FD_BY_ID
- *	Description
- *		Open a file descriptor for the eBPF program corresponding to
- *		*prog_id*.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_MAP_GET_FD_BY_ID
- *	Description
- *		Open a file descriptor for the eBPF map corresponding to
- *		*map_id*.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_OBJ_GET_INFO_BY_FD
- *	Description
- *		Obtain information about the eBPF object corresponding to
- *		*bpf_fd*.
- *
- *		Populates up to *info_len* bytes of *info*, which will be in
- *		one of the following formats depending on the eBPF object type
- *		of *bpf_fd*:
- *
- *		* **struct bpf_prog_info**
- *		* **struct bpf_map_info**
- *		* **struct bpf_btf_info**
- *		* **struct bpf_link_info**
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_PROG_QUERY
- *	Description
- *		Obtain information about eBPF programs associated with the
- *		specified *attach_type* hook.
- *
- *		The *target_fd* must be a valid file descriptor for a kernel
- *		object which depends on the attach type of *attach_bpf_fd*:
- *
- *		**BPF_PROG_TYPE_CGROUP_DEVICE**,
- *		**BPF_PROG_TYPE_CGROUP_SKB**,
- *		**BPF_PROG_TYPE_CGROUP_SOCK**,
- *		**BPF_PROG_TYPE_CGROUP_SOCK_ADDR**,
- *		**BPF_PROG_TYPE_CGROUP_SOCKOPT**,
- *		**BPF_PROG_TYPE_CGROUP_SYSCTL**,
- *		**BPF_PROG_TYPE_SOCK_OPS**
- *
- *			Control Group v2 hierarchy with the eBPF controller
- *			enabled. Requires the kernel to be compiled with
- *			**CONFIG_CGROUP_BPF**.
- *
- *		**BPF_PROG_TYPE_FLOW_DISSECTOR**
- *
- *			Network namespace (eg /proc/self/ns/net).
- *
- *		**BPF_PROG_TYPE_LIRC_MODE2**
- *
- *			LIRC device path (eg /dev/lircN). Requires the kernel
- *			to be compiled with **CONFIG_BPF_LIRC_MODE2**.
- *
- *		**BPF_PROG_QUERY** always fetches the number of programs
- *		attached and the *attach_flags* which were used to attach those
- *		programs. Additionally, if *prog_ids* is nonzero and the number
- *		of attached programs is less than *prog_cnt*, populates
- *		*prog_ids* with the eBPF program ids of the programs attached
- *		at *target_fd*.
- *
- *		The following flags may alter the result:
- *
- *		**BPF_F_QUERY_EFFECTIVE**
- *			Only return information regarding programs which are
- *			currently effective at the specified *target_fd*.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_RAW_TRACEPOINT_OPEN
- *	Description
- *		Attach an eBPF program to a tracepoint *name* to access kernel
- *		internal arguments of the tracepoint in their raw form.
- *
- *		The *prog_fd* must be a valid file descriptor associated with
- *		a loaded eBPF program of type **BPF_PROG_TYPE_RAW_TRACEPOINT**.
- *
- *		No ABI guarantees are made about the content of tracepoint
- *		arguments exposed to the corresponding eBPF program.
- *
- *		Applying **close**\ (2) to the file descriptor returned by
- *		**BPF_RAW_TRACEPOINT_OPEN** will delete the map (but see NOTES).
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_BTF_LOAD
- *	Description
- *		Verify and load BPF Type Format (BTF) metadata into the kernel,
- *		returning a new file descriptor associated with the metadata.
- *		BTF is described in more detail at
- *		https://www.kernel.org/doc/html/latest/bpf/btf.html.
- *
- *		The *btf* parameter must point to valid memory providing
- *		*btf_size* bytes of BTF binary metadata.
- *
- *		The returned file descriptor can be passed to other **bpf**\ ()
- *		subcommands such as **BPF_PROG_LOAD** or **BPF_MAP_CREATE** to
- *		associate the BTF with those objects.
- *
- *		Similar to **BPF_PROG_LOAD**, **BPF_BTF_LOAD** has optional
- *		parameters to specify a *btf_log_buf*, *btf_log_size* and
- *		*btf_log_level* which allow the kernel to return freeform log
- *		output regarding the BTF verification process.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_BTF_GET_FD_BY_ID
- *	Description
- *		Open a file descriptor for the BPF Type Format (BTF)
- *		corresponding to *btf_id*.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_TASK_FD_QUERY
- *	Description
- *		Obtain information about eBPF programs associated with the
- *		target process identified by *pid* and *fd*.
- *
- *		If the *pid* and *fd* are associated with a tracepoint, kprobe
- *		or uprobe perf event, then the *prog_id* and *fd_type* will
- *		be populated with the eBPF program id and file descriptor type
- *		of type **bpf_task_fd_type**. If associated with a kprobe or
- *		uprobe, the  *probe_offset* and *probe_addr* will also be
- *		populated. Optionally, if *buf* is provided, then up to
- *		*buf_len* bytes of *buf* will be populated with the name of
- *		the tracepoint, kprobe or uprobe.
- *
- *		The resulting *prog_id* may be introspected in deeper detail
- *		using **BPF_PROG_GET_FD_BY_ID** and **BPF_OBJ_GET_INFO_BY_FD**.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_MAP_LOOKUP_AND_DELETE_ELEM
- *	Description
- *		Look up an element with the given *key* in the map referred to
- *		by the file descriptor *fd*, and if found, delete the element.
- *
- *		For **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map
- *		types, the *flags* argument needs to be set to 0, but for other
- *		map types, it may be specified as:
- *
- *		**BPF_F_LOCK**
- *			Look up and delete the value of a spin-locked map
- *			without returning the lock. This must be specified if
- *			the elements contain a spinlock.
- *
- *		The **BPF_MAP_TYPE_QUEUE** and **BPF_MAP_TYPE_STACK** map types
- *		implement this command as a "pop" operation, deleting the top
- *		element rather than one corresponding to *key*.
- *		The *key* and *key_len* parameters should be zeroed when
- *		issuing this operation for these map types.
- *
- *		This command is only valid for the following map types:
- *		* **BPF_MAP_TYPE_QUEUE**
- *		* **BPF_MAP_TYPE_STACK**
- *		* **BPF_MAP_TYPE_HASH**
- *		* **BPF_MAP_TYPE_PERCPU_HASH**
- *		* **BPF_MAP_TYPE_LRU_HASH**
- *		* **BPF_MAP_TYPE_LRU_PERCPU_HASH**
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_MAP_FREEZE
- *	Description
- *		Freeze the permissions of the specified map.
- *
- *		Write permissions may be frozen by passing zero *flags*.
- *		Upon success, no future syscall invocations may alter the
- *		map state of *map_fd*. Write operations from eBPF programs
- *		are still possible for a frozen map.
- *
- *		Not supported for maps of type **BPF_MAP_TYPE_STRUCT_OPS**.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_BTF_GET_NEXT_ID
- *	Description
- *		Fetch the next BPF Type Format (BTF) object currently loaded
- *		into the kernel.
- *
- *		Looks for the BTF object with an id greater than *start_id*
- *		and updates *next_id* on success. If no other BTF objects
- *		remain with ids higher than *start_id*, returns -1 and sets
- *		*errno* to **ENOENT**.
- *
- *	Return
- *		Returns zero on success. On error, or when no id remains, -1
- *		is returned and *errno* is set appropriately.
- *
- * BPF_MAP_LOOKUP_BATCH
- *	Description
- *		Iterate and fetch multiple elements in a map.
- *
- *		Two opaque values are used to manage batch operations,
- *		*in_batch* and *out_batch*. Initially, *in_batch* must be set
- *		to NULL to begin the batched operation. After each subsequent
- *		**BPF_MAP_LOOKUP_BATCH**, the caller should pass the resultant
- *		*out_batch* as the *in_batch* for the next operation to
- *		continue iteration from the current point.
- *
- *		The *keys* and *values* are output parameters which must point
- *		to memory large enough to hold *count* items based on the key
- *		and value size of the map *map_fd*. The *keys* buffer must be
- *		of *key_size* * *count*. The *values* buffer must be of
- *		*value_size* * *count*.
- *
- *		The *elem_flags* argument may be specified as one of the
- *		following:
- *
- *		**BPF_F_LOCK**
- *			Look up the value of a spin-locked map without
- *			returning the lock. This must be specified if the
- *			elements contain a spinlock.
- *
- *		On success, *count* elements from the map are copied into the
- *		user buffer, with the keys copied into *keys* and the values
- *		copied into the corresponding indices in *values*.
- *
- *		If an error is returned and *errno* is not **EFAULT**, *count*
- *		is set to the number of successfully processed elements.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- *		May set *errno* to **ENOSPC** to indicate that *keys* or
- *		*values* is too small to dump an entire bucket during
- *		iteration of a hash-based map type.
- *
- * BPF_MAP_LOOKUP_AND_DELETE_BATCH
- *	Description
- *		Iterate and delete all elements in a map.
- *
- *		This operation has the same behavior as
- *		**BPF_MAP_LOOKUP_BATCH** with two exceptions:
- *
- *		* Every element that is successfully returned is also deleted
- *		  from the map. This is at least *count* elements. Note that
- *		  *count* is both an input and an output parameter.
- *		* Upon returning with *errno* set to **EFAULT**, up to
- *		  *count* elements may be deleted without returning the keys
- *		  and values of the deleted elements.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_MAP_UPDATE_BATCH
- *	Description
- *		Update multiple elements in a map by *key*.
- *
- *		The *keys* and *values* are input parameters which must point
- *		to memory large enough to hold *count* items based on the key
- *		and value size of the map *map_fd*. The *keys* buffer must be
- *		of *key_size* * *count*. The *values* buffer must be of
- *		*value_size* * *count*.
- *
- *		Each element specified in *keys* is sequentially updated to the
- *		value in the corresponding index in *values*. The *in_batch*
- *		and *out_batch* parameters are ignored and should be zeroed.
- *
- *		The *elem_flags* argument should be specified as one of the
- *		following:
- *
- *		**BPF_ANY**
- *			Create new elements or update a existing elements.
- *		**BPF_NOEXIST**
- *			Create new elements only if they do not exist.
- *		**BPF_EXIST**
- *			Update existing elements.
- *		**BPF_F_LOCK**
- *			Update spin_lock-ed map elements. This must be
- *			specified if the map value contains a spinlock.
- *
- *		On success, *count* elements from the map are updated.
- *
- *		If an error is returned and *errno* is not **EFAULT**, *count*
- *		is set to the number of successfully processed elements.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- *		May set *errno* to **EINVAL**, **EPERM**, **ENOMEM**, or
- *		**E2BIG**. **E2BIG** indicates that the number of elements in
- *		the map reached the *max_entries* limit specified at map
- *		creation time.
- *
- *		May set *errno* to one of the following error codes under
- *		specific circumstances:
- *
- *		**EEXIST**
- *			If *flags* specifies **BPF_NOEXIST** and the element
- *			with *key* already exists in the map.
- *		**ENOENT**
- *			If *flags* specifies **BPF_EXIST** and the element with
- *			*key* does not exist in the map.
- *
- * BPF_MAP_DELETE_BATCH
- *	Description
- *		Delete multiple elements in a map by *key*.
- *
- *		The *keys* parameter is an input parameter which must point
- *		to memory large enough to hold *count* items based on the key
- *		size of the map *map_fd*, that is, *key_size* * *count*.
- *
- *		Each element specified in *keys* is sequentially deleted. The
- *		*in_batch*, *out_batch*, and *values* parameters are ignored
- *		and should be zeroed.
- *
- *		The *elem_flags* argument may be specified as one of the
- *		following:
- *
- *		**BPF_F_LOCK**
- *			Look up the value of a spin-locked map without
- *			returning the lock. This must be specified if the
- *			elements contain a spinlock.
- *
- *		On success, *count* elements from the map are updated.
- *
- *		If an error is returned and *errno* is not **EFAULT**, *count*
- *		is set to the number of successfully processed elements. If
- *		*errno* is **EFAULT**, up to *count* elements may be been
- *		deleted.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_LINK_CREATE
- *	Description
- *		Attach an eBPF program to a *target_fd* at the specified
- *		*attach_type* hook and return a file descriptor handle for
- *		managing the link.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_LINK_UPDATE
- *	Description
- *		Update the eBPF program in the specified *link_fd* to
- *		*new_prog_fd*.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_LINK_GET_FD_BY_ID
- *	Description
- *		Open a file descriptor for the eBPF Link corresponding to
- *		*link_id*.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_LINK_GET_NEXT_ID
- *	Description
- *		Fetch the next eBPF link currently loaded into the kernel.
- *
- *		Looks for the eBPF link with an id greater than *start_id*
- *		and updates *next_id* on success. If no other eBPF links
- *		remain with ids higher than *start_id*, returns -1 and sets
- *		*errno* to **ENOENT**.
- *
- *	Return
- *		Returns zero on success. On error, or when no id remains, -1
- *		is returned and *errno* is set appropriately.
- *
- * BPF_ENABLE_STATS
- *	Description
- *		Enable eBPF runtime statistics gathering.
- *
- *		Runtime statistics gathering for the eBPF runtime is disabled
- *		by default to minimize the corresponding performance overhead.
- *		This command enables statistics globally.
- *
- *		Multiple programs may independently enable statistics.
- *		After gathering the desired statistics, eBPF runtime statistics
- *		may be disabled again by calling **close**\ (2) for the file
- *		descriptor returned by this function. Statistics will only be
- *		disabled system-wide when all outstanding file descriptors
- *		returned by prior calls for this subcommand are closed.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_ITER_CREATE
- *	Description
- *		Create an iterator on top of the specified *link_fd* (as
- *		previously created using **BPF_LINK_CREATE**) and return a
- *		file descriptor that can be used to trigger the iteration.
- *
- *		If the resulting file descriptor is pinned to the filesystem
- *		using  **BPF_OBJ_PIN**, then subsequent **read**\ (2) syscalls
- *		for that path will trigger the iterator to read kernel state
- *		using the eBPF program attached to *link_fd*.
- *
- *	Return
- *		A new file descriptor (a nonnegative integer), or -1 if an
- *		error occurred (in which case, *errno* is set appropriately).
- *
- * BPF_LINK_DETACH
- *	Description
- *		Forcefully detach the specified *link_fd* from its
- *		corresponding attachment point.
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * BPF_PROG_BIND_MAP
- *	Description
- *		Bind a map to the lifetime of an eBPF program.
- *
- *		The map identified by *map_fd* is bound to the program
- *		identified by *prog_fd* and only released when *prog_fd* is
- *		released. This may be used in cases where metadata should be
- *		associated with a program which otherwise does not contain any
- *		references to the map (for example, embedded in the eBPF
- *		program instructions).
- *
- *	Return
- *		Returns zero on success. On error, -1 is returned and *errno*
- *		is set appropriately.
- *
- * NOTES
- *	eBPF objects (maps and programs) can be shared between processes.
- *
- *	* After **fork**\ (2), the child inherits file descriptors
- *	  referring to the same eBPF objects.
- *	* File descriptors referring to eBPF objects can be transferred over
- *	  **unix**\ (7) domain sockets.
- *	* File descriptors referring to eBPF objects can be duplicated in the
- *	  usual way, using **dup**\ (2) and similar calls.
- *	* File descriptors referring to eBPF objects can be pinned to the
- *	  filesystem using the **BPF_OBJ_PIN** command of **bpf**\ (2).
- *
- *	An eBPF object is deallocated only after all file descriptors referring
- *	to the object have been closed and no references remain pinned to the
- *	filesystem or attached (for example, bound to a program or device).
- */
+/* BPF syscall commands, see bpf(2) man-page for details. */
 enum bpf_cmd {
 	BPF_MAP_CREATE,
 	BPF_MAP_LOOKUP_ELEM,
@@ -847,7 +106,6 @@
 	BPF_PROG_ATTACH,
 	BPF_PROG_DETACH,
 	BPF_PROG_TEST_RUN,
-	BPF_PROG_RUN = BPF_PROG_TEST_RUN,
 	BPF_PROG_GET_NEXT_ID,
 	BPF_MAP_GET_NEXT_ID,
 	BPF_PROG_GET_FD_BY_ID,
@@ -906,7 +164,6 @@
 	BPF_MAP_TYPE_RINGBUF,
 	BPF_MAP_TYPE_INODE_STORAGE,
 	BPF_MAP_TYPE_TASK_STORAGE,
-	BPF_MAP_TYPE_BLOOM_FILTER,
 };
 
 /* Note that tracing related programs such as
@@ -949,7 +206,6 @@
 	BPF_PROG_TYPE_EXT,
 	BPF_PROG_TYPE_LSM,
 	BPF_PROG_TYPE_SK_LOOKUP,
-	BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscalls */
 };
 
 enum bpf_attach_type {
@@ -991,10 +247,6 @@
 	BPF_XDP_CPUMAP,
 	BPF_SK_LOOKUP,
 	BPF_XDP,
-	BPF_SK_SKB_VERDICT,
-	BPF_SK_REUSEPORT_SELECT,
-	BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
-	BPF_PERF_EVENT,
 	__MAX_BPF_ATTACH_TYPE
 };
 
@@ -1008,7 +260,6 @@
 	BPF_LINK_TYPE_ITER = 4,
 	BPF_LINK_TYPE_NETNS = 5,
 	BPF_LINK_TYPE_XDP = 6,
-	BPF_LINK_TYPE_PERF_EVENT = 7,
 
 	MAX_BPF_LINK_TYPE,
 };
@@ -1114,8 +365,8 @@
 /* When BPF ldimm64's insn[0].src_reg != 0 then this can have
  * the following extensions:
  *
- * insn[0].src_reg:  BPF_PSEUDO_MAP_[FD|IDX]
- * insn[0].imm:      map fd or fd_idx
+ * insn[0].src_reg:  BPF_PSEUDO_MAP_FD
+ * insn[0].imm:      map fd
  * insn[1].imm:      0
  * insn[0].off:      0
  * insn[1].off:      0
@@ -1123,19 +374,15 @@
  * verifier type:    CONST_PTR_TO_MAP
  */
 #define BPF_PSEUDO_MAP_FD	1
-#define BPF_PSEUDO_MAP_IDX	5
-
-/* insn[0].src_reg:  BPF_PSEUDO_MAP_[IDX_]VALUE
- * insn[0].imm:      map fd or fd_idx
+/* insn[0].src_reg:  BPF_PSEUDO_MAP_VALUE
+ * insn[0].imm:      map fd
  * insn[1].imm:      offset into value
  * insn[0].off:      0
  * insn[1].off:      0
  * ldimm64 rewrite:  address of map[0]+offset
  * verifier type:    PTR_TO_MAP_VALUE
  */
-#define BPF_PSEUDO_MAP_VALUE		2
-#define BPF_PSEUDO_MAP_IDX_VALUE	6
-
+#define BPF_PSEUDO_MAP_VALUE	2
 /* insn[0].src_reg:  BPF_PSEUDO_BTF_ID
  * insn[0].imm:      kernel btd id of VAR
  * insn[1].imm:      0
@@ -1146,24 +393,11 @@
  *                   is struct/union.
  */
 #define BPF_PSEUDO_BTF_ID	3
-/* insn[0].src_reg:  BPF_PSEUDO_FUNC
- * insn[0].imm:      insn offset to the func
- * insn[1].imm:      0
- * insn[0].off:      0
- * insn[1].off:      0
- * ldimm64 rewrite:  address of the function
- * verifier type:    PTR_TO_FUNC.
- */
-#define BPF_PSEUDO_FUNC		4
 
 /* when bpf_call->src_reg == BPF_PSEUDO_CALL, bpf_call->imm == pc-relative
  * offset to another bpf function
  */
 #define BPF_PSEUDO_CALL		1
-/* when bpf_call->src_reg == BPF_PSEUDO_KFUNC_CALL,
- * bpf_call->imm == btf_id of a BTF_KIND_FUNC in the running kernel
- */
-#define BPF_PSEUDO_KFUNC_CALL	2
 
 /* flags for BPF_MAP_UPDATE_ELEM command */
 enum {
@@ -1275,13 +509,6 @@
 						   * struct stored as the
 						   * map value
 						   */
-		/* Any per-map-type extra fields
-		 *
-		 * BPF_MAP_TYPE_BLOOM_FILTER - the lowest 4 bits indicate the
-		 * number of hash functions (if 0, the bloom filter will default
-		 * to using 5 hash functions).
-		 */
-		__u64	map_extra;
 	};
 
 	struct { /* anonymous struct used by BPF_MAP_*_ELEM commands */
@@ -1342,10 +569,6 @@
 			/* or valid module BTF object fd or 0 to attach to vmlinux */
 			__u32		attach_btf_obj_fd;
 		};
-		__u32		core_relo_cnt;	/* number of bpf_core_relo */
-		__aligned_u64	fd_array;	/* array of FDs */
-		__aligned_u64	core_relos;
-		__u32		core_relo_rec_size; /* sizeof(struct bpf_core_relo) */
 	};
 
 	struct { /* anonymous struct used by BPF_OBJ_* commands */
@@ -1458,13 +681,6 @@
 				__aligned_u64	iter_info;	/* extra bpf_iter_link_info */
 				__u32		iter_info_len;	/* iter_info length */
 			};
-			struct {
-				/* black box user-provided value passed through
-				 * to BPF program at the execution time and
-				 * accessible through bpf_get_attach_cookie() BPF helper
-				 */
-				__u64		bpf_cookie;
-			} perf_event;
 		};
 	} link_create;
 
@@ -1504,7 +720,7 @@
  * parsed and used to produce a manual page. The workflow is the following,
  * and requires the rst2man utility:
  *
- *     $ ./scripts/bpf_doc.py \
+ *     $ ./scripts/bpf_helpers_doc.py \
  *             --filename include/uapi/linux/bpf.h > /tmp/bpf-helpers.rst
  *     $ rst2man /tmp/bpf-helpers.rst > /tmp/bpf-helpers.7
  *     $ man /tmp/bpf-helpers.7
@@ -1639,7 +855,7 @@
  * u32 bpf_get_smp_processor_id(void)
  * 	Description
  * 		Get the SMP (symmetric multiprocessing) processor id. Note that
- * 		all programs run with migration disabled, which means that the
+ * 		all programs run with preemption disabled, which means that the
  * 		SMP processor id is stable during all the execution of the
  * 		program.
  * 	Return
@@ -1746,7 +962,7 @@
  * 		if the maximum number of tail calls has been reached for this
  * 		chain of programs. This limit is defined in the kernel by the
  * 		macro **MAX_TAIL_CALL_CNT** (not accessible to user space),
- *		which is currently set to 33.
+ * 		which is currently set to 32.
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
@@ -2549,10 +1765,6 @@
  *		  Use with ENCAP_L3/L4 flags to further specify the tunnel
  *		  type; *len* is the length of the inner MAC header.
  *
- *		* **BPF_F_ADJ_ROOM_ENCAP_L2_ETH**:
- *		  Use with BPF_F_ADJ_ROOM_ENCAP_L2 flag to further specify the
- *		  L2 type as Ethernet.
- *
  * 		A call to this helper is susceptible to change the underlying
  * 		packet buffer. Therefore, at load time, all checks on pointers
  * 		previously done by the verifier are invalidated and must be
@@ -2573,12 +1785,8 @@
  * 		The lower two bits of *flags* are used as the return code if
  * 		the map lookup fails. This is so that the return value can be
  * 		one of the XDP program return codes up to **XDP_TX**, as chosen
- * 		by the caller. The higher bits of *flags* can be set to
- * 		BPF_F_BROADCAST or BPF_F_EXCLUDE_INGRESS as defined below.
- *
- * 		With BPF_F_BROADCAST the packet will be broadcasted to all the
- * 		interfaces in the map, with BPF_F_EXCLUDE_INGRESS the ingress
- * 		interface will be excluded when do broadcasting.
+ * 		by the caller. Any higher bits in the *flags* argument must be
+ * 		unset.
  *
  * 		See also **bpf_redirect**\ (), which only supports redirecting
  * 		to an ifindex, but doesn't require a map to do so.
@@ -3265,7 +2473,7 @@
  * long bpf_sk_select_reuseport(struct sk_reuseport_md *reuse, struct bpf_map *map, void *key, u64 flags)
  *	Description
  *		Select a **SO_REUSEPORT** socket from a
- *		**BPF_MAP_TYPE_REUSEPORT_SOCKARRAY** *map*.
+ *		**BPF_MAP_TYPE_REUSEPORT_ARRAY** *map*.
  *		It checks the selected socket is matching the incoming
  *		request in the socket buffer.
  *	Return
@@ -4056,7 +3264,7 @@
  * 		arguments. The *data* are a **u64** array and corresponding format string
  * 		values are stored in the array. For strings and pointers where pointees
  * 		are accessed, only the pointer values are stored in the *data* array.
- * 		The *data_len* is the size of *data* in bytes - must be a multiple of 8.
+ * 		The *data_len* is the size of *data* in bytes.
  *
  *		Formats **%s**, **%p{i,I}{4,6}** requires to read kernel memory.
  *		Reading kernel memory may fail due to either invalid address or
@@ -4125,20 +3333,12 @@
  * 		of new data availability is sent.
  * 		If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification
  * 		of new data availability is sent unconditionally.
- * 		If **0** is specified in *flags*, an adaptive notification
- * 		of new data availability is sent.
- *
- * 		An adaptive notification is a notification sent whenever the user-space
- * 		process has caught up and consumed all available payloads. In case the user-space
- * 		process is still processing a previous payload, then no notification is needed
- * 		as it will process the newly added payload automatically.
  * 	Return
  * 		0 on success, or a negative error in case of failure.
  *
  * void *bpf_ringbuf_reserve(void *ringbuf, u64 size, u64 flags)
  * 	Description
  * 		Reserve *size* bytes of payload in a ring buffer *ringbuf*.
- * 		*flags* must be 0.
  * 	Return
  * 		Valid pointer with *size* bytes of memory available; NULL,
  * 		otherwise.
@@ -4150,10 +3350,6 @@
  * 		of new data availability is sent.
  * 		If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification
  * 		of new data availability is sent unconditionally.
- * 		If **0** is specified in *flags*, an adaptive notification
- * 		of new data availability is sent.
- *
- * 		See 'bpf_ringbuf_output()' for the definition of adaptive notification.
  * 	Return
  * 		Nothing. Always succeeds.
  *
@@ -4164,10 +3360,6 @@
  * 		of new data availability is sent.
  * 		If **BPF_RB_FORCE_WAKEUP** is specified in *flags*, notification
  * 		of new data availability is sent unconditionally.
- * 		If **0** is specified in *flags*, an adaptive notification
- * 		of new data availability is sent.
- *
- * 		See 'bpf_ringbuf_output()' for the definition of adaptive notification.
  * 	Return
  * 		Nothing. Always succeeds.
  *
@@ -4723,301 +3915,6 @@
  *		* **BPF_MTU_CHK_RET_FRAG_NEEDED**
  *		* **BPF_MTU_CHK_RET_SEGS_TOOBIG**
  *
- * long bpf_for_each_map_elem(struct bpf_map *map, void *callback_fn, void *callback_ctx, u64 flags)
- *	Description
- *		For each element in **map**, call **callback_fn** function with
- *		**map**, **callback_ctx** and other map-specific parameters.
- *		The **callback_fn** should be a static function and
- *		the **callback_ctx** should be a pointer to the stack.
- *		The **flags** is used to control certain aspects of the helper.
- *		Currently, the **flags** must be 0.
- *
- *		The following are a list of supported map types and their
- *		respective expected callback signatures:
- *
- *		BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_PERCPU_HASH,
- *		BPF_MAP_TYPE_LRU_HASH, BPF_MAP_TYPE_LRU_PERCPU_HASH,
- *		BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PERCPU_ARRAY
- *
- *		long (\*callback_fn)(struct bpf_map \*map, const void \*key, void \*value, void \*ctx);
- *
- *		For per_cpu maps, the map_value is the value on the cpu where the
- *		bpf_prog is running.
- *
- *		If **callback_fn** return 0, the helper will continue to the next
- *		element. If return value is 1, the helper will skip the rest of
- *		elements and return. Other return values are not used now.
- *
- *	Return
- *		The number of traversed map elements for success, **-EINVAL** for
- *		invalid **flags**.
- *
- * long bpf_snprintf(char *str, u32 str_size, const char *fmt, u64 *data, u32 data_len)
- *	Description
- *		Outputs a string into the **str** buffer of size **str_size**
- *		based on a format string stored in a read-only map pointed by
- *		**fmt**.
- *
- *		Each format specifier in **fmt** corresponds to one u64 element
- *		in the **data** array. For strings and pointers where pointees
- *		are accessed, only the pointer values are stored in the *data*
- *		array. The *data_len* is the size of *data* in bytes - must be
- *		a multiple of 8.
- *
- *		Formats **%s** and **%p{i,I}{4,6}** require to read kernel
- *		memory. Reading kernel memory may fail due to either invalid
- *		address or valid address but requiring a major memory fault. If
- *		reading kernel memory fails, the string for **%s** will be an
- *		empty string, and the ip address for **%p{i,I}{4,6}** will be 0.
- *		Not returning error to bpf program is consistent with what
- *		**bpf_trace_printk**\ () does for now.
- *
- *	Return
- *		The strictly positive length of the formatted string, including
- *		the trailing zero character. If the return value is greater than
- *		**str_size**, **str** contains a truncated string, guaranteed to
- *		be zero-terminated except when **str_size** is 0.
- *
- *		Or **-EBUSY** if the per-CPU memory copy buffer is busy.
- *
- * long bpf_sys_bpf(u32 cmd, void *attr, u32 attr_size)
- * 	Description
- * 		Execute bpf syscall with given arguments.
- * 	Return
- * 		A syscall result.
- *
- * long bpf_btf_find_by_name_kind(char *name, int name_sz, u32 kind, int flags)
- * 	Description
- * 		Find BTF type with given name and kind in vmlinux BTF or in module's BTFs.
- * 	Return
- * 		Returns btf_id and btf_obj_fd in lower and upper 32 bits.
- *
- * long bpf_sys_close(u32 fd)
- * 	Description
- * 		Execute close syscall for given FD.
- * 	Return
- * 		A syscall result.
- *
- * long bpf_timer_init(struct bpf_timer *timer, struct bpf_map *map, u64 flags)
- *	Description
- *		Initialize the timer.
- *		First 4 bits of *flags* specify clockid.
- *		Only CLOCK_MONOTONIC, CLOCK_REALTIME, CLOCK_BOOTTIME are allowed.
- *		All other bits of *flags* are reserved.
- *		The verifier will reject the program if *timer* is not from
- *		the same *map*.
- *	Return
- *		0 on success.
- *		**-EBUSY** if *timer* is already initialized.
- *		**-EINVAL** if invalid *flags* are passed.
- *		**-EPERM** if *timer* is in a map that doesn't have any user references.
- *		The user space should either hold a file descriptor to a map with timers
- *		or pin such map in bpffs. When map is unpinned or file descriptor is
- *		closed all timers in the map will be cancelled and freed.
- *
- * long bpf_timer_set_callback(struct bpf_timer *timer, void *callback_fn)
- *	Description
- *		Configure the timer to call *callback_fn* static function.
- *	Return
- *		0 on success.
- *		**-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier.
- *		**-EPERM** if *timer* is in a map that doesn't have any user references.
- *		The user space should either hold a file descriptor to a map with timers
- *		or pin such map in bpffs. When map is unpinned or file descriptor is
- *		closed all timers in the map will be cancelled and freed.
- *
- * long bpf_timer_start(struct bpf_timer *timer, u64 nsecs, u64 flags)
- *	Description
- *		Set timer expiration N nanoseconds from the current time. The
- *		configured callback will be invoked in soft irq context on some cpu
- *		and will not repeat unless another bpf_timer_start() is made.
- *		In such case the next invocation can migrate to a different cpu.
- *		Since struct bpf_timer is a field inside map element the map
- *		owns the timer. The bpf_timer_set_callback() will increment refcnt
- *		of BPF program to make sure that callback_fn code stays valid.
- *		When user space reference to a map reaches zero all timers
- *		in a map are cancelled and corresponding program's refcnts are
- *		decremented. This is done to make sure that Ctrl-C of a user
- *		process doesn't leave any timers running. If map is pinned in
- *		bpffs the callback_fn can re-arm itself indefinitely.
- *		bpf_map_update/delete_elem() helpers and user space sys_bpf commands
- *		cancel and free the timer in the given map element.
- *		The map can contain timers that invoke callback_fn-s from different
- *		programs. The same callback_fn can serve different timers from
- *		different maps if key/value layout matches across maps.
- *		Every bpf_timer_set_callback() can have different callback_fn.
- *
- *	Return
- *		0 on success.
- *		**-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier
- *		or invalid *flags* are passed.
- *
- * long bpf_timer_cancel(struct bpf_timer *timer)
- *	Description
- *		Cancel the timer and wait for callback_fn to finish if it was running.
- *	Return
- *		0 if the timer was not active.
- *		1 if the timer was active.
- *		**-EINVAL** if *timer* was not initialized with bpf_timer_init() earlier.
- *		**-EDEADLK** if callback_fn tried to call bpf_timer_cancel() on its
- *		own timer which would have led to a deadlock otherwise.
- *
- * u64 bpf_get_func_ip(void *ctx)
- * 	Description
- * 		Get address of the traced function (for tracing and kprobe programs).
- * 	Return
- * 		Address of the traced function.
- *
- * u64 bpf_get_attach_cookie(void *ctx)
- * 	Description
- * 		Get bpf_cookie value provided (optionally) during the program
- * 		attachment. It might be different for each individual
- * 		attachment, even if BPF program itself is the same.
- * 		Expects BPF program context *ctx* as a first argument.
- *
- * 		Supported for the following program types:
- *			- kprobe/uprobe;
- *			- tracepoint;
- *			- perf_event.
- * 	Return
- *		Value specified by user at BPF link creation/attachment time
- *		or 0, if it was not specified.
- *
- * long bpf_task_pt_regs(struct task_struct *task)
- *	Description
- *		Get the struct pt_regs associated with **task**.
- *	Return
- *		A pointer to struct pt_regs.
- *
- * long bpf_get_branch_snapshot(void *entries, u32 size, u64 flags)
- *	Description
- *		Get branch trace from hardware engines like Intel LBR. The
- *		hardware engine is stopped shortly after the helper is
- *		called. Therefore, the user need to filter branch entries
- *		based on the actual use case. To capture branch trace
- *		before the trigger point of the BPF program, the helper
- *		should be called at the beginning of the BPF program.
- *
- *		The data is stored as struct perf_branch_entry into output
- *		buffer *entries*. *size* is the size of *entries* in bytes.
- *		*flags* is reserved for now and must be zero.
- *
- *	Return
- *		On success, number of bytes written to *buf*. On error, a
- *		negative value.
- *
- *		**-EINVAL** if *flags* is not zero.
- *
- *		**-ENOENT** if architecture does not support branch records.
- *
- * long bpf_trace_vprintk(const char *fmt, u32 fmt_size, const void *data, u32 data_len)
- *	Description
- *		Behaves like **bpf_trace_printk**\ () helper, but takes an array of u64
- *		to format and can handle more format args as a result.
- *
- *		Arguments are to be used as in **bpf_seq_printf**\ () helper.
- *	Return
- *		The number of bytes written to the buffer, or a negative error
- *		in case of failure.
- *
- * struct unix_sock *bpf_skc_to_unix_sock(void *sk)
- * 	Description
- *		Dynamically cast a *sk* pointer to a *unix_sock* pointer.
- *	Return
- *		*sk* if casting is valid, or **NULL** otherwise.
- *
- * long bpf_kallsyms_lookup_name(const char *name, int name_sz, int flags, u64 *res)
- *	Description
- *		Get the address of a kernel symbol, returned in *res*. *res* is
- *		set to 0 if the symbol is not found.
- *	Return
- *		On success, zero. On error, a negative value.
- *
- *		**-EINVAL** if *flags* is not zero.
- *
- *		**-EINVAL** if string *name* is not the same size as *name_sz*.
- *
- *		**-ENOENT** if symbol is not found.
- *
- *		**-EPERM** if caller does not have permission to obtain kernel address.
- *
- * long bpf_find_vma(struct task_struct *task, u64 addr, void *callback_fn, void *callback_ctx, u64 flags)
- *	Description
- *		Find vma of *task* that contains *addr*, call *callback_fn*
- *		function with *task*, *vma*, and *callback_ctx*.
- *		The *callback_fn* should be a static function and
- *		the *callback_ctx* should be a pointer to the stack.
- *		The *flags* is used to control certain aspects of the helper.
- *		Currently, the *flags* must be 0.
- *
- *		The expected callback signature is
- *
- *		long (\*callback_fn)(struct task_struct \*task, struct vm_area_struct \*vma, void \*callback_ctx);
- *
- *	Return
- *		0 on success.
- *		**-ENOENT** if *task->mm* is NULL, or no vma contains *addr*.
- *		**-EBUSY** if failed to try lock mmap_lock.
- *		**-EINVAL** for invalid **flags**.
- *
- * long bpf_loop(u32 nr_loops, void *callback_fn, void *callback_ctx, u64 flags)
- *	Description
- *		For **nr_loops**, call **callback_fn** function
- *		with **callback_ctx** as the context parameter.
- *		The **callback_fn** should be a static function and
- *		the **callback_ctx** should be a pointer to the stack.
- *		The **flags** is used to control certain aspects of the helper.
- *		Currently, the **flags** must be 0. Currently, nr_loops is
- *		limited to 1 << 23 (~8 million) loops.
- *
- *		long (\*callback_fn)(u32 index, void \*ctx);
- *
- *		where **index** is the current index in the loop. The index
- *		is zero-indexed.
- *
- *		If **callback_fn** returns 0, the helper will continue to the next
- *		loop. If return value is 1, the helper will skip the rest of
- *		the loops and return. Other return values are not used now,
- *		and will be rejected by the verifier.
- *
- *	Return
- *		The number of loops performed, **-EINVAL** for invalid **flags**,
- *		**-E2BIG** if **nr_loops** exceeds the maximum number of loops.
- *
- * long bpf_strncmp(const char *s1, u32 s1_sz, const char *s2)
- *	Description
- *		Do strncmp() between **s1** and **s2**. **s1** doesn't need
- *		to be null-terminated and **s1_sz** is the maximum storage
- *		size of **s1**. **s2** must be a read-only string.
- *	Return
- *		An integer less than, equal to, or greater than zero
- *		if the first **s1_sz** bytes of **s1** is found to be
- *		less than, to match, or be greater than **s2**.
- *
- * long bpf_get_func_arg(void *ctx, u32 n, u64 *value)
- *	Description
- *		Get **n**-th argument (zero based) of the traced function (for tracing programs)
- *		returned in **value**.
- *
- *	Return
- *		0 on success.
- *		**-EINVAL** if n >= arguments count of traced function.
- *
- * long bpf_get_func_ret(void *ctx, u64 *value)
- *	Description
- *		Get return value of the traced function (for tracing programs)
- *		in **value**.
- *
- *	Return
- *		0 on success.
- *		**-EOPNOTSUPP** for tracing programs other than BPF_TRACE_FEXIT or BPF_MODIFY_RETURN.
- *
- * long bpf_get_func_arg_cnt(void *ctx)
- *	Description
- *		Get number of arguments of the traced function (for tracing programs).
- *
- *	Return
- *		The number of arguments of the traced function.
  */
 #define __BPF_FUNC_MAPPER(FN)		\
 	FN(unspec),			\
@@ -5184,28 +4081,6 @@
 	FN(ima_inode_hash),		\
 	FN(sock_from_file),		\
 	FN(check_mtu),			\
-	FN(for_each_map_elem),		\
-	FN(snprintf),			\
-	FN(sys_bpf),			\
-	FN(btf_find_by_name_kind),	\
-	FN(sys_close),			\
-	FN(timer_init),			\
-	FN(timer_set_callback),		\
-	FN(timer_start),		\
-	FN(timer_cancel),		\
-	FN(get_func_ip),		\
-	FN(get_attach_cookie),		\
-	FN(task_pt_regs),		\
-	FN(get_branch_snapshot),	\
-	FN(trace_vprintk),		\
-	FN(skc_to_unix_sock),		\
-	FN(kallsyms_lookup_name),	\
-	FN(find_vma),			\
-	FN(loop),			\
-	FN(strncmp),			\
-	FN(get_func_arg),		\
-	FN(get_func_ret),		\
-	FN(get_func_arg_cnt),		\
 	/* */
 
 /* integer value in 'imm' field of BPF_CALL instruction selects which helper
@@ -5299,7 +4174,6 @@
 	BPF_F_ADJ_ROOM_ENCAP_L4_GRE	= (1ULL << 3),
 	BPF_F_ADJ_ROOM_ENCAP_L4_UDP	= (1ULL << 4),
 	BPF_F_ADJ_ROOM_NO_CSUM_RESET	= (1ULL << 5),
-	BPF_F_ADJ_ROOM_ENCAP_L2_ETH	= (1ULL << 6),
 };
 
 enum {
@@ -5383,12 +4257,6 @@
 	BPF_F_BPRM_SECUREEXEC	= (1ULL << 0),
 };
 
-/* Flags for bpf_redirect_map helper */
-enum {
-	BPF_F_BROADCAST		= (1ULL << 3),
-	BPF_F_EXCLUDE_INGRESS	= (1ULL << 4),
-};
-
 #define __bpf_md_ptr(type, name)	\
 union {					\
 	type name;			\
@@ -5435,8 +4303,6 @@
 	__u32 gso_segs;
 	__bpf_md_ptr(struct bpf_sock *, sk);
 	__u32 gso_size;
-	__u32 :32;		/* Padding, future use. */
-	__u64 hwtstamp;
 };
 
 struct bpf_tunnel_key {
@@ -5675,20 +4541,6 @@
 	__u32 ip_protocol;	/* IP protocol. e.g. IPPROTO_TCP, IPPROTO_UDP */
 	__u32 bind_inany;	/* Is sock bound to an INANY address? */
 	__u32 hash;		/* A hash of the packet 4 tuples */
-	/* When reuse->migrating_sk is NULL, it is selecting a sk for the
-	 * new incoming connection request (e.g. selecting a listen sk for
-	 * the received SYN in the TCP case).  reuse->sk is one of the sk
-	 * in the reuseport group. The bpf prog can use reuse->sk to learn
-	 * the local listening ip/port without looking into the skb.
-	 *
-	 * When reuse->migrating_sk is not NULL, reuse->sk is closed and
-	 * reuse->migrating_sk is the socket that needs to be migrated
-	 * to another listening socket.  migrating_sk could be a fullsock
-	 * sk that is fully established or a reqsk that is in-the-middle
-	 * of 3-way handshake.
-	 */
-	__bpf_md_ptr(struct bpf_sock *, sk);
-	__bpf_md_ptr(struct bpf_sock *, migrating_sk);
 };
 
 #define BPF_TAG_SIZE	8
@@ -5730,7 +4582,6 @@
 	__u64 run_time_ns;
 	__u64 run_cnt;
 	__u64 recursion_misses;
-	__u32 verified_insns;
 } __attribute__((aligned(8)));
 
 struct bpf_map_info {
@@ -5748,8 +4599,6 @@
 	__u32 btf_id;
 	__u32 btf_key_type_id;
 	__u32 btf_value_type_id;
-	__u32 :32;	/* alignment pad */
-	__u64 map_extra;
 } __attribute__((aligned(8)));
 
 struct bpf_btf_info {
@@ -5772,8 +4621,6 @@
 		} raw_tracepoint;
 		struct {
 			__u32 attach_type;
-			__u32 target_obj_id; /* prog_id for PROG_EXT, otherwise btf object id */
-			__u32 target_btf_id; /* BTF type id inside the object */
 		} tracing;
 		struct {
 			__u64 cgroup_id;
@@ -6337,11 +5184,6 @@
 	__u32	val;
 };
 
-struct bpf_timer {
-	__u64 :64;
-	__u64 :64;
-} __attribute__((aligned(8)));
-
 struct bpf_sysctl {
 	__u32	write;		/* Sysctl is being read (= 0) or written (= 1).
 				 * Allows 1,2,4-byte read, but no write.
@@ -6369,10 +5211,7 @@
 
 /* User accessible data for SK_LOOKUP programs. Add new fields at the end. */
 struct bpf_sk_lookup {
-	union {
-		__bpf_md_ptr(struct bpf_sock *, sk); /* Selected socket */
-		__u64 cookie; /* Non-zero if socket was selected in PROG_TEST_RUN */
-	};
+	__bpf_md_ptr(struct bpf_sock *, sk); /* Selected socket */
 
 	__u32 family;		/* Protocol family (AF_INET, AF_INET6) */
 	__u32 protocol;		/* IP protocol (IPPROTO_TCP, IPPROTO_UDP) */
@@ -6382,7 +5221,6 @@
 	__u32 local_ip4;	/* Network byte order */
 	__u32 local_ip6[4];	/* Network byte order */
 	__u32 local_port;	/* Host byte order */
-	__u32 ingress_ifindex;		/* The arriving interface. Determined by inet_iif. */
 };
 
 /*
@@ -6415,78 +5253,4 @@
 	BTF_F_ZERO	=	(1ULL << 3),
 };
 
-/* bpf_core_relo_kind encodes which aspect of captured field/type/enum value
- * has to be adjusted by relocations. It is emitted by llvm and passed to
- * libbpf and later to the kernel.
- */
-enum bpf_core_relo_kind {
-	BPF_CORE_FIELD_BYTE_OFFSET = 0,      /* field byte offset */
-	BPF_CORE_FIELD_BYTE_SIZE = 1,        /* field size in bytes */
-	BPF_CORE_FIELD_EXISTS = 2,           /* field existence in target kernel */
-	BPF_CORE_FIELD_SIGNED = 3,           /* field signedness (0 - unsigned, 1 - signed) */
-	BPF_CORE_FIELD_LSHIFT_U64 = 4,       /* bitfield-specific left bitshift */
-	BPF_CORE_FIELD_RSHIFT_U64 = 5,       /* bitfield-specific right bitshift */
-	BPF_CORE_TYPE_ID_LOCAL = 6,          /* type ID in local BPF object */
-	BPF_CORE_TYPE_ID_TARGET = 7,         /* type ID in target kernel */
-	BPF_CORE_TYPE_EXISTS = 8,            /* type existence in target kernel */
-	BPF_CORE_TYPE_SIZE = 9,              /* type size in bytes */
-	BPF_CORE_ENUMVAL_EXISTS = 10,        /* enum value existence in target kernel */
-	BPF_CORE_ENUMVAL_VALUE = 11,         /* enum value integer value */
-};
-
-/*
- * "struct bpf_core_relo" is used to pass relocation data form LLVM to libbpf
- * and from libbpf to the kernel.
- *
- * CO-RE relocation captures the following data:
- * - insn_off - instruction offset (in bytes) within a BPF program that needs
- *   its insn->imm field to be relocated with actual field info;
- * - type_id - BTF type ID of the "root" (containing) entity of a relocatable
- *   type or field;
- * - access_str_off - offset into corresponding .BTF string section. String
- *   interpretation depends on specific relocation kind:
- *     - for field-based relocations, string encodes an accessed field using
- *       a sequence of field and array indices, separated by colon (:). It's
- *       conceptually very close to LLVM's getelementptr ([0]) instruction's
- *       arguments for identifying offset to a field.
- *     - for type-based relocations, strings is expected to be just "0";
- *     - for enum value-based relocations, string contains an index of enum
- *       value within its enum type;
- * - kind - one of enum bpf_core_relo_kind;
- *
- * Example:
- *   struct sample {
- *       int a;
- *       struct {
- *           int b[10];
- *       };
- *   };
- *
- *   struct sample *s = ...;
- *   int *x = &s->a;     // encoded as "0:0" (a is field #0)
- *   int *y = &s->b[5];  // encoded as "0:1:0:5" (anon struct is field #1,
- *                       // b is field #0 inside anon struct, accessing elem #5)
- *   int *z = &s[10]->b; // encoded as "10:1" (ptr is used as an array)
- *
- * type_id for all relocs in this example will capture BTF type id of
- * `struct sample`.
- *
- * Such relocation is emitted when using __builtin_preserve_access_index()
- * Clang built-in, passing expression that captures field address, e.g.:
- *
- * bpf_probe_read(&dst, sizeof(dst),
- *		  __builtin_preserve_access_index(&src->a.b.c));
- *
- * In this case Clang will emit field relocation recording necessary data to
- * be able to find offset of embedded `a.b.c` field within `src` struct.
- *
- * [0] https://llvm.org/docs/LangRef.html#getelementptr-instruction
- */
-struct bpf_core_relo {
-	__u32 insn_off;
-	__u32 type_id;
-	__u32 access_str_off;
-	enum bpf_core_relo_kind kind;
-};
-
 #endif /* _UAPI__LINUX_BPF_H__ */
diff --git a/original/uapi/linux/btf.h b/original/uapi/linux/btf.h
index b0d8fea..5a66710 100644
--- a/original/uapi/linux/btf.h
+++ b/original/uapi/linux/btf.h
@@ -43,7 +43,7 @@
 	 * "size" tells the size of the type it is describing.
 	 *
 	 * "type" is used by PTR, TYPEDEF, VOLATILE, CONST, RESTRICT,
-	 * FUNC, FUNC_PROTO, VAR, DECL_TAG and TYPE_TAG.
+	 * FUNC, FUNC_PROTO and VAR.
 	 * "type" is a type_id referring to another type.
 	 */
 	union {
@@ -52,34 +52,28 @@
 	};
 };
 
-#define BTF_INFO_KIND(info)	(((info) >> 24) & 0x1f)
+#define BTF_INFO_KIND(info)	(((info) >> 24) & 0x0f)
 #define BTF_INFO_VLEN(info)	((info) & 0xffff)
 #define BTF_INFO_KFLAG(info)	((info) >> 31)
 
-enum {
-	BTF_KIND_UNKN		= 0,	/* Unknown	*/
-	BTF_KIND_INT		= 1,	/* Integer	*/
-	BTF_KIND_PTR		= 2,	/* Pointer	*/
-	BTF_KIND_ARRAY		= 3,	/* Array	*/
-	BTF_KIND_STRUCT		= 4,	/* Struct	*/
-	BTF_KIND_UNION		= 5,	/* Union	*/
-	BTF_KIND_ENUM		= 6,	/* Enumeration	*/
-	BTF_KIND_FWD		= 7,	/* Forward	*/
-	BTF_KIND_TYPEDEF	= 8,	/* Typedef	*/
-	BTF_KIND_VOLATILE	= 9,	/* Volatile	*/
-	BTF_KIND_CONST		= 10,	/* Const	*/
-	BTF_KIND_RESTRICT	= 11,	/* Restrict	*/
-	BTF_KIND_FUNC		= 12,	/* Function	*/
-	BTF_KIND_FUNC_PROTO	= 13,	/* Function Proto	*/
-	BTF_KIND_VAR		= 14,	/* Variable	*/
-	BTF_KIND_DATASEC	= 15,	/* Section	*/
-	BTF_KIND_FLOAT		= 16,	/* Floating point	*/
-	BTF_KIND_DECL_TAG	= 17,	/* Decl Tag */
-	BTF_KIND_TYPE_TAG	= 18,	/* Type Tag */
-
-	NR_BTF_KINDS,
-	BTF_KIND_MAX		= NR_BTF_KINDS - 1,
-};
+#define BTF_KIND_UNKN		0	/* Unknown	*/
+#define BTF_KIND_INT		1	/* Integer	*/
+#define BTF_KIND_PTR		2	/* Pointer	*/
+#define BTF_KIND_ARRAY		3	/* Array	*/
+#define BTF_KIND_STRUCT		4	/* Struct	*/
+#define BTF_KIND_UNION		5	/* Union	*/
+#define BTF_KIND_ENUM		6	/* Enumeration	*/
+#define BTF_KIND_FWD		7	/* Forward	*/
+#define BTF_KIND_TYPEDEF	8	/* Typedef	*/
+#define BTF_KIND_VOLATILE	9	/* Volatile	*/
+#define BTF_KIND_CONST		10	/* Const	*/
+#define BTF_KIND_RESTRICT	11	/* Restrict	*/
+#define BTF_KIND_FUNC		12	/* Function	*/
+#define BTF_KIND_FUNC_PROTO	13	/* Function Proto	*/
+#define BTF_KIND_VAR		14	/* Variable	*/
+#define BTF_KIND_DATASEC	15	/* Section	*/
+#define BTF_KIND_MAX		BTF_KIND_DATASEC
+#define NR_BTF_KINDS		(BTF_KIND_MAX + 1)
 
 /* For some specific BTF_KIND, "struct btf_type" is immediately
  * followed by extra data.
@@ -175,15 +169,4 @@
 	__u32	size;
 };
 
-/* BTF_KIND_DECL_TAG is followed by a single "struct btf_decl_tag" to describe
- * additional information related to the tag applied location.
- * If component_idx == -1, the tag is applied to a struct, union,
- * variable or function. Otherwise, it is applied to a struct/union
- * member or a func argument, and component_idx indicates which member
- * or argument (0 ... vlen-1).
- */
-struct btf_decl_tag {
-       __s32   component_idx;
-};
-
 #endif /* _UAPI__LINUX_BTF_H__ */
diff --git a/original/uapi/linux/btrfs.h b/original/uapi/linux/btrfs.h
index 7386199..5df7300 100644
--- a/original/uapi/linux/btrfs.h
+++ b/original/uapi/linux/btrfs.h
@@ -154,7 +154,7 @@
 	__u64 tree_bytes_scrubbed;	/* # of tree bytes scrubbed */
 	__u64 read_errors;		/* # of read errors encountered (EIO) */
 	__u64 csum_errors;		/* # of failed csum checks */
-	__u64 verify_errors;		/* # of occurrences, where the metadata
+	__u64 verify_errors;		/* # of occurences, where the metadata
 					 * of a tree block did not match the
 					 * expected values, like generation or
 					 * logical */
@@ -174,7 +174,7 @@
 	__u64 last_physical;		/* last physical address scrubbed. In
 					 * case a scrub was aborted, this can
 					 * be used to restart the scrub */
-	__u64 unverified_errors;	/* # of occurrences where a read for a
+	__u64 unverified_errors;	/* # of occurences where a read for a
 					 * full (64k) bio failed, but the re-
 					 * check succeeded for each 4k piece.
 					 * Intermittent error. */
@@ -288,7 +288,6 @@
  * first mount when booting older kernel versions.
  */
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID	(1ULL << 1)
-#define BTRFS_FEATURE_COMPAT_RO_VERITY			(1ULL << 2)
 
 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF	(1ULL << 0)
 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL	(1ULL << 1)
@@ -771,16 +770,10 @@
  */
 #define BTRFS_SEND_FLAG_OMIT_END_CMD		0x4
 
-/*
- * Read the protocol version in the structure
- */
-#define BTRFS_SEND_FLAG_VERSION			0x8
-
 #define BTRFS_SEND_FLAG_MASK \
 	(BTRFS_SEND_FLAG_NO_FILE_DATA | \
 	 BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | \
-	 BTRFS_SEND_FLAG_OMIT_END_CMD | \
-	 BTRFS_SEND_FLAG_VERSION)
+	 BTRFS_SEND_FLAG_OMIT_END_CMD)
 
 struct btrfs_ioctl_send_args {
 	__s64 send_fd;			/* in */
@@ -788,8 +781,7 @@
 	__u64 __user *clone_sources;	/* in */
 	__u64 parent_root;		/* in */
 	__u64 flags;			/* in */
-	__u32 version;			/* in */
-	__u8  reserved[28];		/* in */
+	__u64 reserved[4];		/* in */
 };
 
 /*
diff --git a/original/uapi/linux/btrfs_tree.h b/original/uapi/linux/btrfs_tree.h
index 5416f1f..58d7cff 100644
--- a/original/uapi/linux/btrfs_tree.h
+++ b/original/uapi/linux/btrfs_tree.h
@@ -59,7 +59,7 @@
 /* for storing balance parameters in the root tree */
 #define BTRFS_BALANCE_OBJECTID -4ULL
 
-/* orphan objectid for tracking unlinked/truncated files */
+/* orhpan objectid for tracking unlinked/truncated files */
 #define BTRFS_ORPHAN_OBJECTID -5ULL
 
 /* does write ahead logging to speed up fsyncs */
@@ -118,37 +118,12 @@
 #define BTRFS_INODE_REF_KEY		12
 #define BTRFS_INODE_EXTREF_KEY		13
 #define BTRFS_XATTR_ITEM_KEY		24
-
-/*
- * fs verity items are stored under two different key types on disk.
- * The descriptor items:
- * [ inode objectid, BTRFS_VERITY_DESC_ITEM_KEY, offset ]
- *
- * At offset 0, we store a btrfs_verity_descriptor_item which tracks the size
- * of the descriptor item and some extra data for encryption.
- * Starting at offset 1, these hold the generic fs verity descriptor.  The
- * latter are opaque to btrfs, we just read and write them as a blob for the
- * higher level verity code.  The most common descriptor size is 256 bytes.
- *
- * The merkle tree items:
- * [ inode objectid, BTRFS_VERITY_MERKLE_ITEM_KEY, offset ]
- *
- * These also start at offset 0, and correspond to the merkle tree bytes.  When
- * fsverity asks for page 0 of the merkle tree, we pull up one page starting at
- * offset 0 for this key type.  These are also opaque to btrfs, we're blindly
- * storing whatever fsverity sends down.
- */
-#define BTRFS_VERITY_DESC_ITEM_KEY	36
-#define BTRFS_VERITY_MERKLE_ITEM_KEY	37
-
 #define BTRFS_ORPHAN_ITEM_KEY		48
 /* reserve 2-15 close to the inode for later flexibility */
 
 /*
  * dir items are the name -> inode pointers in a directory.  There is one
- * for every name in a directory.  BTRFS_DIR_LOG_ITEM_KEY is no longer used
- * but it's still defined here for documentation purposes and to help avoid
- * having its numerical value reused in the future.
+ * for every name in a directory.
  */
 #define BTRFS_DIR_LOG_ITEM_KEY  60
 #define BTRFS_DIR_LOG_INDEX_KEY 72
@@ -300,7 +275,7 @@
 #define BTRFS_PERSISTENT_ITEM_KEY	249
 
 /*
- * Persistently stores the device replace state in the device tree.
+ * Persistantly stores the device replace state in the device tree.
  * The key is built like this: (0, BTRFS_DEV_REPLACE_KEY, 0).
  */
 #define BTRFS_DEV_REPLACE_KEY	250
@@ -1016,16 +991,4 @@
 	__le64 rsv_excl;
 } __attribute__ ((__packed__));
 
-struct btrfs_verity_descriptor_item {
-	/* Size of the verity descriptor in bytes */
-	__le64 size;
-	/*
-	 * When we implement support for fscrypt, we will need to encrypt the
-	 * Merkle tree for encrypted verity files. These 128 bits are for the
-	 * eventual storage of an fscrypt initialization vector.
-	 */
-	__le64 reserved[2];
-	__u8 encryption;
-} __attribute__ ((__packed__));
-
 #endif /* _BTRFS_CTREE_H_ */
diff --git a/original/uapi/linux/byteorder/big_endian.h b/original/uapi/linux/byteorder/big_endian.h
index 80aa5c4..2199adc 100644
--- a/original/uapi/linux/byteorder/big_endian.h
+++ b/original/uapi/linux/byteorder/big_endian.h
@@ -9,7 +9,6 @@
 #define __BIG_ENDIAN_BITFIELD
 #endif
 
-#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 
diff --git a/original/uapi/linux/byteorder/little_endian.h b/original/uapi/linux/byteorder/little_endian.h
index cd98982..601c904 100644
--- a/original/uapi/linux/byteorder/little_endian.h
+++ b/original/uapi/linux/byteorder/little_endian.h
@@ -9,7 +9,6 @@
 #define __LITTLE_ENDIAN_BITFIELD
 #endif
 
-#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 
diff --git a/original/uapi/linux/can.h b/original/uapi/linux/can.h
index 90801ad..c753535 100644
--- a/original/uapi/linux/can.h
+++ b/original/uapi/linux/can.h
@@ -123,8 +123,8 @@
 /*
  * defined bits for canfd_frame.flags
  *
- * The use of struct canfd_frame implies the FD Frame (FDF) bit to
- * be set in the CAN frame bitstream on the wire. The FDF bit switch turns
+ * The use of struct canfd_frame implies the Extended Data Length (EDL) bit to
+ * be set in the CAN frame bitstream on the wire. The EDL bit switch turns
  * the CAN controllers bitstream processor into the CAN FD mode which creates
  * two new options within the CAN FD frame specification:
  *
@@ -135,18 +135,9 @@
  * controller only the CANFD_BRS bit is relevant for real CAN controllers when
  * building a CAN FD frame for transmission. Setting the CANFD_ESI bit can make
  * sense for virtual CAN interfaces to test applications with echoed frames.
- *
- * The struct can_frame and struct canfd_frame intentionally share the same
- * layout to be able to write CAN frame content into a CAN FD frame structure.
- * When this is done the former differentiation via CAN_MTU / CANFD_MTU gets
- * lost. CANFD_FDF allows programmers to mark CAN FD frames in the case of
- * using struct canfd_frame for mixed CAN / CAN FD content (dual use).
- * N.B. the Kernel APIs do NOT provide mixed CAN / CAN FD content inside of
- * struct canfd_frame therefore the CANFD_FDF flag is disregarded by Linux.
  */
 #define CANFD_BRS 0x01 /* bit rate switch (second bitrate for payload data) */
 #define CANFD_ESI 0x02 /* error state indicator of the transmitting node */
-#define CANFD_FDF 0x04 /* mark CAN FD for dual use of struct canfd_frame */
 
 /**
  * struct canfd_frame - CAN flexible data rate frame structure
diff --git a/original/uapi/linux/can/j1939.h b/original/uapi/linux/can/j1939.h
index 3893646..df6e821 100644
--- a/original/uapi/linux/can/j1939.h
+++ b/original/uapi/linux/can/j1939.h
@@ -78,20 +78,11 @@
 enum {
 	J1939_NLA_PAD,
 	J1939_NLA_BYTES_ACKED,
-	J1939_NLA_TOTAL_SIZE,
-	J1939_NLA_PGN,
-	J1939_NLA_SRC_NAME,
-	J1939_NLA_DEST_NAME,
-	J1939_NLA_SRC_ADDR,
-	J1939_NLA_DEST_ADDR,
 };
 
 enum {
 	J1939_EE_INFO_NONE,
 	J1939_EE_INFO_TX_ABORT,
-	J1939_EE_INFO_RX_RTS,
-	J1939_EE_INFO_RX_DPO,
-	J1939_EE_INFO_RX_ABORT,
 };
 
 struct j1939_filter {
diff --git a/original/uapi/linux/can/netlink.h b/original/uapi/linux/can/netlink.h
index 02ec32d..f730d44 100644
--- a/original/uapi/linux/can/netlink.h
+++ b/original/uapi/linux/can/netlink.h
@@ -101,8 +101,6 @@
 #define CAN_CTRLMODE_PRESUME_ACK	0x40	/* Ignore missing CAN ACKs */
 #define CAN_CTRLMODE_FD_NON_ISO		0x80	/* CAN FD in non-ISO mode */
 #define CAN_CTRLMODE_CC_LEN8_DLC	0x100	/* Classic CAN DLC option */
-#define CAN_CTRLMODE_TDC_AUTO		0x200	/* CAN transiver automatically calculates TDCV */
-#define CAN_CTRLMODE_TDC_MANUAL		0x400	/* TDCV is manually set up by user */
 
 /*
  * CAN device statistics
@@ -136,48 +134,10 @@
 	IFLA_CAN_BITRATE_CONST,
 	IFLA_CAN_DATA_BITRATE_CONST,
 	IFLA_CAN_BITRATE_MAX,
-	IFLA_CAN_TDC,
-	IFLA_CAN_CTRLMODE_EXT,
-
-	/* add new constants above here */
-	__IFLA_CAN_MAX,
-	IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
+	__IFLA_CAN_MAX
 };
 
-/*
- * CAN FD Transmitter Delay Compensation (TDC)
- *
- * Please refer to struct can_tdc_const and can_tdc in
- * include/linux/can/bittiming.h for further details.
- */
-enum {
-	IFLA_CAN_TDC_UNSPEC,
-	IFLA_CAN_TDC_TDCV_MIN,	/* u32 */
-	IFLA_CAN_TDC_TDCV_MAX,	/* u32 */
-	IFLA_CAN_TDC_TDCO_MIN,	/* u32 */
-	IFLA_CAN_TDC_TDCO_MAX,	/* u32 */
-	IFLA_CAN_TDC_TDCF_MIN,	/* u32 */
-	IFLA_CAN_TDC_TDCF_MAX,	/* u32 */
-	IFLA_CAN_TDC_TDCV,	/* u32 */
-	IFLA_CAN_TDC_TDCO,	/* u32 */
-	IFLA_CAN_TDC_TDCF,	/* u32 */
-
-	/* add new constants above here */
-	__IFLA_CAN_TDC,
-	IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
-};
-
-/*
- * IFLA_CAN_CTRLMODE_EXT nest: controller mode extended parameters
- */
-enum {
-	IFLA_CAN_CTRLMODE_UNSPEC,
-	IFLA_CAN_CTRLMODE_SUPPORTED,	/* u32 */
-
-	/* add new constants above here */
-	__IFLA_CAN_CTRLMODE,
-	IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1
-};
+#define IFLA_CAN_MAX	(__IFLA_CAN_MAX - 1)
 
 /* u16 termination range: 1..65535 Ohms */
 #define CAN_TERMINATION_DISABLED 0
diff --git a/original/uapi/linux/capability.h b/original/uapi/linux/capability.h
index 463d1ba..741985d 100644
--- a/original/uapi/linux/capability.h
+++ b/original/uapi/linux/capability.h
@@ -243,6 +243,7 @@
 /* Allow examination and configuration of disk quotas */
 /* Allow setting the domainname */
 /* Allow setting the hostname */
+/* Allow calling bdflush() */
 /* Allow mount() and umount(), setting up new smb connection */
 /* Allow some autofs root ioctls */
 /* Allow nfsservctl */
@@ -287,8 +288,6 @@
    processes and setting the scheduling algorithm used by another
    process. */
 /* Allow setting cpu affinity on other processes */
-/* Allow setting realtime ioprio class */
-/* Allow setting ioprio class on other processes */
 
 #define CAP_SYS_NICE         23
 
diff --git a/original/uapi/linux/cdrom.h b/original/uapi/linux/cdrom.h
index 804ff8d..6c34f6e 100644
--- a/original/uapi/linux/cdrom.h
+++ b/original/uapi/linux/cdrom.h
@@ -147,8 +147,6 @@
 #define CDROM_NEXT_WRITABLE	0x5394	/* get next writable block */
 #define CDROM_LAST_WRITTEN	0x5395	/* get last block written on disc */
 
-#define CDROM_TIMED_MEDIA_CHANGE   0x5396  /* get the timestamp of the last media change */
-
 /*******************************************************
  * CDROM IOCTL structures
  *******************************************************/
@@ -297,23 +295,6 @@
 	};
 };
 
-/* This struct is used by CDROM_TIMED_MEDIA_CHANGE */
-struct cdrom_timed_media_change_info {
-	__s64	last_media_change;	/* Timestamp of the last detected media
-					 * change in ms. May be set by caller,
-					 * updated upon successful return of
-					 * ioctl.
-					 */
-	__u64	media_flags;		/* Flags returned by ioctl to indicate
-					 * media status.
-					 */
-};
-#define MEDIA_CHANGED_FLAG	0x1	/* Last detected media change was more
-					 * recent than last_media_change set by
-					 * caller.
-					 */
-/* other bits of media_flags available for future use */
-
 /*
  * A CD-ROM physical sector size is 2048, 2052, 2056, 2324, 2332, 2336, 
  * 2340, or 2352 bytes long.  
diff --git a/original/uapi/linux/cec-funcs.h b/original/uapi/linux/cec-funcs.h
index c3baaea..3759002 100644
--- a/original/uapi/linux/cec-funcs.h
+++ b/original/uapi/linux/cec-funcs.h
@@ -1665,7 +1665,7 @@
 	if (*audio_out_compensated == 3 && msg->len >= 7)
 		*audio_out_delay = msg->msg[6];
 	else
-		*audio_out_delay = 1;
+		*audio_out_delay = 0;
 }
 
 static inline void cec_msg_request_current_latency(struct cec_msg *msg,
diff --git a/original/uapi/linux/cec.h b/original/uapi/linux/cec.h
index de936f5..7d1a06c 100644
--- a/original/uapi/linux/cec.h
+++ b/original/uapi/linux/cec.h
@@ -396,7 +396,6 @@
  * associated with the CEC adapter.
  * @type: connector type (if any)
  * @drm: drm connector info
- * @raw: array to pad the union
  */
 struct cec_connector_info {
 	__u32 type;
@@ -454,7 +453,7 @@
  * struct cec_event - CEC event structure
  * @ts: the timestamp of when the event was sent.
  * @event: the event.
- * @flags: event flags.
+ * array.
  * @state_change: the event payload for CEC_EVENT_STATE_CHANGE.
  * @lost_msgs: the event payload for CEC_EVENT_LOST_MSGS.
  * @raw: array to pad the union.
@@ -642,7 +641,7 @@
 #define CEC_OP_REC_SEQ_WEDNESDAY			0x08
 #define CEC_OP_REC_SEQ_THURSDAY				0x10
 #define CEC_OP_REC_SEQ_FRIDAY				0x20
-#define CEC_OP_REC_SEQ_SATURDAY				0x40
+#define CEC_OP_REC_SEQ_SATERDAY				0x40
 #define CEC_OP_REC_SEQ_ONCE_ONLY			0x00
 
 #define CEC_MSG_CLEAR_DIGITAL_TIMER			0x99
diff --git a/original/uapi/linux/cifs/cifs_mount.h b/original/uapi/linux/cifs/cifs_mount.h
index 8e87d27..6982920 100644
--- a/original/uapi/linux/cifs/cifs_mount.h
+++ b/original/uapi/linux/cifs/cifs_mount.h
@@ -1,5 +1,6 @@
 /* SPDX-License-Identifier: LGPL-2.1+ WITH Linux-syscall-note */
 /*
+ *   include/uapi/linux/cifs/cifs_mount.h
  *
  *   Author(s): Scott Lovenberg (scott.lovenberg@gmail.com)
  *
diff --git a/original/uapi/linux/comedi.h b/original/uapi/linux/comedi.h
deleted file mode 100644
index 7314e5e..0000000
--- a/original/uapi/linux/comedi.h
+++ /dev/null
@@ -1,1528 +0,0 @@
-/* SPDX-License-Identifier: LGPL-2.0+ WITH Linux-syscall-note */
-/*
- * comedi.h
- * header file for COMEDI user API
- *
- * COMEDI - Linux Control and Measurement Device Interface
- * Copyright (C) 1998-2001 David A. Schleef <ds@schleef.org>
- */
-
-#ifndef _COMEDI_H
-#define _COMEDI_H
-
-#define COMEDI_MAJORVERSION	0
-#define COMEDI_MINORVERSION	7
-#define COMEDI_MICROVERSION	76
-#define VERSION	"0.7.76"
-
-/* comedi's major device number */
-#define COMEDI_MAJOR 98
-
-/*
- * maximum number of minor devices.  This can be increased, although
- * kernel structures are currently statically allocated, thus you
- * don't want this to be much more than you actually use.
- */
-#define COMEDI_NDEVICES 16
-
-/* number of config options in the config structure */
-#define COMEDI_NDEVCONFOPTS 32
-
-/*
- * NOTE: 'comedi_config --init-data' is deprecated
- *
- * The following indexes in the config options were used by
- * comedi_config to pass firmware blobs from user space to the
- * comedi drivers. The request_firmware() hotplug interface is
- * now used by all comedi drivers instead.
- */
-
-/* length of nth chunk of firmware data -*/
-#define COMEDI_DEVCONF_AUX_DATA3_LENGTH		25
-#define COMEDI_DEVCONF_AUX_DATA2_LENGTH		26
-#define COMEDI_DEVCONF_AUX_DATA1_LENGTH		27
-#define COMEDI_DEVCONF_AUX_DATA0_LENGTH		28
-/* most significant 32 bits of pointer address (if needed) */
-#define COMEDI_DEVCONF_AUX_DATA_HI		29
-/* least significant 32 bits of pointer address */
-#define COMEDI_DEVCONF_AUX_DATA_LO		30
-#define COMEDI_DEVCONF_AUX_DATA_LENGTH		31	/* total data length */
-
-/* max length of device and driver names */
-#define COMEDI_NAMELEN 20
-
-/* packs and unpacks a channel/range number */
-
-#define CR_PACK(chan, rng, aref)					\
-	((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan))
-#define CR_PACK_FLAGS(chan, range, aref, flags)				\
-	(CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK))
-
-#define CR_CHAN(a)	((a) & 0xffff)
-#define CR_RANGE(a)	(((a) >> 16) & 0xff)
-#define CR_AREF(a)	(((a) >> 24) & 0x03)
-
-#define CR_FLAGS_MASK	0xfc000000
-#define CR_ALT_FILTER	0x04000000
-#define CR_DITHER	CR_ALT_FILTER
-#define CR_DEGLITCH	CR_ALT_FILTER
-#define CR_ALT_SOURCE	0x08000000
-#define CR_EDGE		0x40000000
-#define CR_INVERT	0x80000000
-
-#define AREF_GROUND	0x00	/* analog ref = analog ground */
-#define AREF_COMMON	0x01	/* analog ref = analog common */
-#define AREF_DIFF	0x02	/* analog ref = differential */
-#define AREF_OTHER	0x03	/* analog ref = other (undefined) */
-
-/* counters -- these are arbitrary values */
-#define GPCT_RESET		0x0001
-#define GPCT_SET_SOURCE		0x0002
-#define GPCT_SET_GATE		0x0004
-#define GPCT_SET_DIRECTION	0x0008
-#define GPCT_SET_OPERATION	0x0010
-#define GPCT_ARM		0x0020
-#define GPCT_DISARM		0x0040
-#define GPCT_GET_INT_CLK_FRQ	0x0080
-
-#define GPCT_INT_CLOCK		0x0001
-#define GPCT_EXT_PIN		0x0002
-#define GPCT_NO_GATE		0x0004
-#define GPCT_UP			0x0008
-#define GPCT_DOWN		0x0010
-#define GPCT_HWUD		0x0020
-#define GPCT_SIMPLE_EVENT	0x0040
-#define GPCT_SINGLE_PERIOD	0x0080
-#define GPCT_SINGLE_PW		0x0100
-#define GPCT_CONT_PULSE_OUT	0x0200
-#define GPCT_SINGLE_PULSE_OUT	0x0400
-
-/* instructions */
-
-#define INSN_MASK_WRITE		0x8000000
-#define INSN_MASK_READ		0x4000000
-#define INSN_MASK_SPECIAL	0x2000000
-
-#define INSN_READ		(0 | INSN_MASK_READ)
-#define INSN_WRITE		(1 | INSN_MASK_WRITE)
-#define INSN_BITS		(2 | INSN_MASK_READ | INSN_MASK_WRITE)
-#define INSN_CONFIG		(3 | INSN_MASK_READ | INSN_MASK_WRITE)
-#define INSN_DEVICE_CONFIG	(INSN_CONFIG | INSN_MASK_SPECIAL)
-#define INSN_GTOD		(4 | INSN_MASK_READ | INSN_MASK_SPECIAL)
-#define INSN_WAIT		(5 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
-#define INSN_INTTRIG		(6 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
-
-/* command flags */
-/* These flags are used in comedi_cmd structures */
-
-#define CMDF_BOGUS		0x00000001	/* do the motions */
-
-/* try to use a real-time interrupt while performing command */
-#define CMDF_PRIORITY		0x00000008
-
-/* wake up on end-of-scan events */
-#define CMDF_WAKE_EOS		0x00000020
-
-#define CMDF_WRITE		0x00000040
-
-#define CMDF_RAWDATA		0x00000080
-
-/* timer rounding definitions */
-#define CMDF_ROUND_MASK		0x00030000
-#define CMDF_ROUND_NEAREST	0x00000000
-#define CMDF_ROUND_DOWN		0x00010000
-#define CMDF_ROUND_UP		0x00020000
-#define CMDF_ROUND_UP_NEXT	0x00030000
-
-#define COMEDI_EV_START		0x00040000
-#define COMEDI_EV_SCAN_BEGIN	0x00080000
-#define COMEDI_EV_CONVERT	0x00100000
-#define COMEDI_EV_SCAN_END	0x00200000
-#define COMEDI_EV_STOP		0x00400000
-
-/* compatibility definitions */
-#define TRIG_BOGUS		CMDF_BOGUS
-#define TRIG_RT			CMDF_PRIORITY
-#define TRIG_WAKE_EOS		CMDF_WAKE_EOS
-#define TRIG_WRITE		CMDF_WRITE
-#define TRIG_ROUND_MASK		CMDF_ROUND_MASK
-#define TRIG_ROUND_NEAREST	CMDF_ROUND_NEAREST
-#define TRIG_ROUND_DOWN		CMDF_ROUND_DOWN
-#define TRIG_ROUND_UP		CMDF_ROUND_UP
-#define TRIG_ROUND_UP_NEXT	CMDF_ROUND_UP_NEXT
-
-/* trigger sources */
-
-#define TRIG_ANY	0xffffffff
-#define TRIG_INVALID	0x00000000
-
-#define TRIG_NONE	0x00000001 /* never trigger */
-#define TRIG_NOW	0x00000002 /* trigger now + N ns */
-#define TRIG_FOLLOW	0x00000004 /* trigger on next lower level trig */
-#define TRIG_TIME	0x00000008 /* trigger at time N ns */
-#define TRIG_TIMER	0x00000010 /* trigger at rate N ns */
-#define TRIG_COUNT	0x00000020 /* trigger when count reaches N */
-#define TRIG_EXT	0x00000040 /* trigger on external signal N */
-#define TRIG_INT	0x00000080 /* trigger on comedi-internal signal N */
-#define TRIG_OTHER	0x00000100 /* driver defined */
-
-/* subdevice flags */
-
-#define SDF_BUSY	0x0001	/* device is busy */
-#define SDF_BUSY_OWNER	0x0002	/* device is busy with your job */
-#define SDF_LOCKED	0x0004	/* subdevice is locked */
-#define SDF_LOCK_OWNER	0x0008	/* you own lock */
-#define SDF_MAXDATA	0x0010	/* maxdata depends on channel */
-#define SDF_FLAGS	0x0020	/* flags depend on channel */
-#define SDF_RANGETYPE	0x0040	/* range type depends on channel */
-#define SDF_PWM_COUNTER 0x0080	/* PWM can automatically switch off */
-#define SDF_PWM_HBRIDGE 0x0100	/* PWM is signed (H-bridge) */
-#define SDF_CMD		0x1000	/* can do commands (deprecated) */
-#define SDF_SOFT_CALIBRATED	0x2000 /* subdevice uses software calibration */
-#define SDF_CMD_WRITE		0x4000 /* can do output commands */
-#define SDF_CMD_READ		0x8000 /* can do input commands */
-
-/* subdevice can be read (e.g. analog input) */
-#define SDF_READABLE	0x00010000
-/* subdevice can be written (e.g. analog output) */
-#define SDF_WRITABLE	0x00020000
-#define SDF_WRITEABLE	SDF_WRITABLE	/* spelling error in API */
-/* subdevice does not have externally visible lines */
-#define SDF_INTERNAL	0x00040000
-#define SDF_GROUND	0x00100000	/* can do aref=ground */
-#define SDF_COMMON	0x00200000	/* can do aref=common */
-#define SDF_DIFF	0x00400000	/* can do aref=diff */
-#define SDF_OTHER	0x00800000	/* can do aref=other */
-#define SDF_DITHER	0x01000000	/* can do dithering */
-#define SDF_DEGLITCH	0x02000000	/* can do deglitching */
-#define SDF_MMAP	0x04000000	/* can do mmap() */
-#define SDF_RUNNING	0x08000000	/* subdevice is acquiring data */
-#define SDF_LSAMPL	0x10000000	/* subdevice uses 32-bit samples */
-#define SDF_PACKED	0x20000000	/* subdevice can do packed DIO */
-
-/* subdevice types */
-
-/**
- * enum comedi_subdevice_type - COMEDI subdevice types
- * @COMEDI_SUBD_UNUSED:		Unused subdevice.
- * @COMEDI_SUBD_AI:		Analog input.
- * @COMEDI_SUBD_AO:		Analog output.
- * @COMEDI_SUBD_DI:		Digital input.
- * @COMEDI_SUBD_DO:		Digital output.
- * @COMEDI_SUBD_DIO:		Digital input/output.
- * @COMEDI_SUBD_COUNTER:	Counter.
- * @COMEDI_SUBD_TIMER:		Timer.
- * @COMEDI_SUBD_MEMORY:		Memory, EEPROM, DPRAM.
- * @COMEDI_SUBD_CALIB:		Calibration DACs.
- * @COMEDI_SUBD_PROC:		Processor, DSP.
- * @COMEDI_SUBD_SERIAL:		Serial I/O.
- * @COMEDI_SUBD_PWM:		Pulse-Width Modulation output.
- */
-enum comedi_subdevice_type {
-	COMEDI_SUBD_UNUSED,
-	COMEDI_SUBD_AI,
-	COMEDI_SUBD_AO,
-	COMEDI_SUBD_DI,
-	COMEDI_SUBD_DO,
-	COMEDI_SUBD_DIO,
-	COMEDI_SUBD_COUNTER,
-	COMEDI_SUBD_TIMER,
-	COMEDI_SUBD_MEMORY,
-	COMEDI_SUBD_CALIB,
-	COMEDI_SUBD_PROC,
-	COMEDI_SUBD_SERIAL,
-	COMEDI_SUBD_PWM
-};
-
-/* configuration instructions */
-
-/**
- * enum comedi_io_direction - COMEDI I/O directions
- * @COMEDI_INPUT:	Input.
- * @COMEDI_OUTPUT:	Output.
- * @COMEDI_OPENDRAIN:	Open-drain (or open-collector) output.
- *
- * These are used by the %INSN_CONFIG_DIO_QUERY configuration instruction to
- * report a direction.  They may also be used in other places where a direction
- * needs to be specified.
- */
-enum comedi_io_direction {
-	COMEDI_INPUT = 0,
-	COMEDI_OUTPUT = 1,
-	COMEDI_OPENDRAIN = 2
-};
-
-/**
- * enum configuration_ids - COMEDI configuration instruction codes
- * @INSN_CONFIG_DIO_INPUT:	Configure digital I/O as input.
- * @INSN_CONFIG_DIO_OUTPUT:	Configure digital I/O as output.
- * @INSN_CONFIG_DIO_OPENDRAIN:	Configure digital I/O as open-drain (or open
- *				collector) output.
- * @INSN_CONFIG_ANALOG_TRIG:	Configure analog trigger.
- * @INSN_CONFIG_ALT_SOURCE:	Configure alternate input source.
- * @INSN_CONFIG_DIGITAL_TRIG:	Configure digital trigger.
- * @INSN_CONFIG_BLOCK_SIZE:	Configure block size for DMA transfers.
- * @INSN_CONFIG_TIMER_1:	Configure divisor for external clock.
- * @INSN_CONFIG_FILTER:		Configure a filter.
- * @INSN_CONFIG_CHANGE_NOTIFY:	Configure change notification for digital
- *				inputs.  (New drivers should use
- *				%INSN_CONFIG_DIGITAL_TRIG instead.)
- * @INSN_CONFIG_SERIAL_CLOCK:	Configure clock for serial I/O.
- * @INSN_CONFIG_BIDIRECTIONAL_DATA: Send and receive byte over serial I/O.
- * @INSN_CONFIG_DIO_QUERY:	Query direction of digital I/O channel.
- * @INSN_CONFIG_PWM_OUTPUT:	Configure pulse-width modulator output.
- * @INSN_CONFIG_GET_PWM_OUTPUT:	Get pulse-width modulator output configuration.
- * @INSN_CONFIG_ARM:		Arm a subdevice or channel.
- * @INSN_CONFIG_DISARM:		Disarm a subdevice or channel.
- * @INSN_CONFIG_GET_COUNTER_STATUS: Get counter status.
- * @INSN_CONFIG_RESET:		Reset a subdevice or channel.
- * @INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR: Configure counter/timer as
- *				single pulse generator.
- * @INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR: Configure counter/timer as
- *				pulse train generator.
- * @INSN_CONFIG_GPCT_QUADRATURE_ENCODER: Configure counter as a quadrature
- *				encoder.
- * @INSN_CONFIG_SET_GATE_SRC:	Set counter/timer gate source.
- * @INSN_CONFIG_GET_GATE_SRC:	Get counter/timer gate source.
- * @INSN_CONFIG_SET_CLOCK_SRC:	Set counter/timer master clock source.
- * @INSN_CONFIG_GET_CLOCK_SRC:	Get counter/timer master clock source.
- * @INSN_CONFIG_SET_OTHER_SRC:	Set counter/timer "other" source.
- * @INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE: Get size (in bytes) of subdevice's
- *				on-board FIFOs used during streaming
- *				input/output.
- * @INSN_CONFIG_SET_COUNTER_MODE: Set counter/timer mode.
- * @INSN_CONFIG_8254_SET_MODE:	(Deprecated) Same as
- *				%INSN_CONFIG_SET_COUNTER_MODE.
- * @INSN_CONFIG_8254_READ_STATUS: Read status of 8254 counter channel.
- * @INSN_CONFIG_SET_ROUTING:	Set routing for a channel.
- * @INSN_CONFIG_GET_ROUTING:	Get routing for a channel.
- * @INSN_CONFIG_PWM_SET_PERIOD: Set PWM period in nanoseconds.
- * @INSN_CONFIG_PWM_GET_PERIOD: Get PWM period in nanoseconds.
- * @INSN_CONFIG_GET_PWM_STATUS: Get PWM status.
- * @INSN_CONFIG_PWM_SET_H_BRIDGE: Set PWM H bridge duty cycle and polarity for
- *				a relay simultaneously.
- * @INSN_CONFIG_PWM_GET_H_BRIDGE: Get PWM H bridge duty cycle and polarity.
- * @INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS: Get the hardware timing restraints,
- *				regardless of trigger sources.
- */
-enum configuration_ids {
-	INSN_CONFIG_DIO_INPUT = COMEDI_INPUT,
-	INSN_CONFIG_DIO_OUTPUT = COMEDI_OUTPUT,
-	INSN_CONFIG_DIO_OPENDRAIN = COMEDI_OPENDRAIN,
-	INSN_CONFIG_ANALOG_TRIG = 16,
-/*	INSN_CONFIG_WAVEFORM = 17, */
-/*	INSN_CONFIG_TRIG = 18, */
-/*	INSN_CONFIG_COUNTER = 19, */
-	INSN_CONFIG_ALT_SOURCE = 20,
-	INSN_CONFIG_DIGITAL_TRIG = 21,
-	INSN_CONFIG_BLOCK_SIZE = 22,
-	INSN_CONFIG_TIMER_1 = 23,
-	INSN_CONFIG_FILTER = 24,
-	INSN_CONFIG_CHANGE_NOTIFY = 25,
-
-	INSN_CONFIG_SERIAL_CLOCK = 26,	/*ALPHA*/
-	INSN_CONFIG_BIDIRECTIONAL_DATA = 27,
-	INSN_CONFIG_DIO_QUERY = 28,
-	INSN_CONFIG_PWM_OUTPUT = 29,
-	INSN_CONFIG_GET_PWM_OUTPUT = 30,
-	INSN_CONFIG_ARM = 31,
-	INSN_CONFIG_DISARM = 32,
-	INSN_CONFIG_GET_COUNTER_STATUS = 33,
-	INSN_CONFIG_RESET = 34,
-	INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001,
-	INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002,
-	INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003,
-	INSN_CONFIG_SET_GATE_SRC = 2001,
-	INSN_CONFIG_GET_GATE_SRC = 2002,
-	INSN_CONFIG_SET_CLOCK_SRC = 2003,
-	INSN_CONFIG_GET_CLOCK_SRC = 2004,
-	INSN_CONFIG_SET_OTHER_SRC = 2005,
-	INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE = 2006,
-	INSN_CONFIG_SET_COUNTER_MODE = 4097,
-	INSN_CONFIG_8254_SET_MODE = INSN_CONFIG_SET_COUNTER_MODE,
-	INSN_CONFIG_8254_READ_STATUS = 4098,
-	INSN_CONFIG_SET_ROUTING = 4099,
-	INSN_CONFIG_GET_ROUTING = 4109,
-	INSN_CONFIG_PWM_SET_PERIOD = 5000,
-	INSN_CONFIG_PWM_GET_PERIOD = 5001,
-	INSN_CONFIG_GET_PWM_STATUS = 5002,
-	INSN_CONFIG_PWM_SET_H_BRIDGE = 5003,
-	INSN_CONFIG_PWM_GET_H_BRIDGE = 5004,
-	INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS = 5005,
-};
-
-/**
- * enum device_configuration_ids - COMEDI configuration instruction codes global
- * to an entire device.
- * @INSN_DEVICE_CONFIG_TEST_ROUTE:	Validate the possibility of a
- *					globally-named route
- * @INSN_DEVICE_CONFIG_CONNECT_ROUTE:	Connect a globally-named route
- * @INSN_DEVICE_CONFIG_DISCONNECT_ROUTE:Disconnect a globally-named route
- * @INSN_DEVICE_CONFIG_GET_ROUTES:	Get a list of all globally-named routes
- *					that are valid for a particular device.
- */
-enum device_config_route_ids {
-	INSN_DEVICE_CONFIG_TEST_ROUTE = 0,
-	INSN_DEVICE_CONFIG_CONNECT_ROUTE = 1,
-	INSN_DEVICE_CONFIG_DISCONNECT_ROUTE = 2,
-	INSN_DEVICE_CONFIG_GET_ROUTES = 3,
-};
-
-/**
- * enum comedi_digital_trig_op - operations for configuring a digital trigger
- * @COMEDI_DIGITAL_TRIG_DISABLE:	Return digital trigger to its default,
- *					inactive, unconfigured state.
- * @COMEDI_DIGITAL_TRIG_ENABLE_EDGES:	Set rising and/or falling edge inputs
- *					that each can fire the trigger.
- * @COMEDI_DIGITAL_TRIG_ENABLE_LEVELS:	Set a combination of high and/or low
- *					level inputs that can fire the trigger.
- *
- * These are used with the %INSN_CONFIG_DIGITAL_TRIG configuration instruction.
- * The data for the configuration instruction is as follows...
- *
- *   data[%0] = %INSN_CONFIG_DIGITAL_TRIG
- *
- *   data[%1] = trigger ID
- *
- *   data[%2] = configuration operation
- *
- *   data[%3] = configuration parameter 1
- *
- *   data[%4] = configuration parameter 2
- *
- *   data[%5] = configuration parameter 3
- *
- * The trigger ID (data[%1]) is used to differentiate multiple digital triggers
- * belonging to the same subdevice.  The configuration operation (data[%2]) is
- * one of the enum comedi_digital_trig_op values.  The configuration
- * parameters (data[%3], data[%4], and data[%5]) depend on the operation; they
- * are not used with %COMEDI_DIGITAL_TRIG_DISABLE.
- *
- * For %COMEDI_DIGITAL_TRIG_ENABLE_EDGES and %COMEDI_DIGITAL_TRIG_ENABLE_LEVELS,
- * configuration parameter 1 (data[%3]) contains a "left-shift" value that
- * specifies the input corresponding to bit 0 of configuration parameters 2
- * and 3.  This is useful if the trigger has more than 32 inputs.
- *
- * For %COMEDI_DIGITAL_TRIG_ENABLE_EDGES, configuration parameter 2 (data[%4])
- * specifies which of up to 32 inputs have rising-edge sensitivity, and
- * configuration parameter 3 (data[%5]) specifies which of up to 32 inputs
- * have falling-edge sensitivity that can fire the trigger.
- *
- * For %COMEDI_DIGITAL_TRIG_ENABLE_LEVELS, configuration parameter 2 (data[%4])
- * specifies which of up to 32 inputs must be at a high level, and
- * configuration parameter 3 (data[%5]) specifies which of up to 32 inputs
- * must be at a low level for the trigger to fire.
- *
- * Some sequences of %INSN_CONFIG_DIGITAL_TRIG instructions may have a (partly)
- * accumulative effect, depending on the low-level driver.  This is useful
- * when setting up a trigger that has more than 32 inputs, or has a combination
- * of edge- and level-triggered inputs.
- */
-enum comedi_digital_trig_op {
-	COMEDI_DIGITAL_TRIG_DISABLE = 0,
-	COMEDI_DIGITAL_TRIG_ENABLE_EDGES = 1,
-	COMEDI_DIGITAL_TRIG_ENABLE_LEVELS = 2
-};
-
-/**
- * enum comedi_support_level - support level for a COMEDI feature
- * @COMEDI_UNKNOWN_SUPPORT:	Unspecified support for feature.
- * @COMEDI_SUPPORTED:		Feature is supported.
- * @COMEDI_UNSUPPORTED:		Feature is unsupported.
- */
-enum comedi_support_level {
-	COMEDI_UNKNOWN_SUPPORT = 0,
-	COMEDI_SUPPORTED,
-	COMEDI_UNSUPPORTED
-};
-
-/**
- * enum comedi_counter_status_flags - counter status bits
- * @COMEDI_COUNTER_ARMED:		Counter is armed.
- * @COMEDI_COUNTER_COUNTING:		Counter is counting.
- * @COMEDI_COUNTER_TERMINAL_COUNT:	Counter reached terminal count.
- *
- * These bitwise values are used by the %INSN_CONFIG_GET_COUNTER_STATUS
- * configuration instruction to report the status of a counter.
- */
-enum comedi_counter_status_flags {
-	COMEDI_COUNTER_ARMED = 0x1,
-	COMEDI_COUNTER_COUNTING = 0x2,
-	COMEDI_COUNTER_TERMINAL_COUNT = 0x4,
-};
-
-/* ioctls */
-
-#define CIO 'd'
-#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig)
-#define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo)
-#define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo)
-#define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo)
-/* _IOWR(CIO, 4, ...) is reserved */
-#define COMEDI_LOCK _IO(CIO, 5)
-#define COMEDI_UNLOCK _IO(CIO, 6)
-#define COMEDI_CANCEL _IO(CIO, 7)
-#define COMEDI_RANGEINFO _IOR(CIO, 8, struct comedi_rangeinfo)
-#define COMEDI_CMD _IOR(CIO, 9, struct comedi_cmd)
-#define COMEDI_CMDTEST _IOR(CIO, 10, struct comedi_cmd)
-#define COMEDI_INSNLIST _IOR(CIO, 11, struct comedi_insnlist)
-#define COMEDI_INSN _IOR(CIO, 12, struct comedi_insn)
-#define COMEDI_BUFCONFIG _IOR(CIO, 13, struct comedi_bufconfig)
-#define COMEDI_BUFINFO _IOWR(CIO, 14, struct comedi_bufinfo)
-#define COMEDI_POLL _IO(CIO, 15)
-#define COMEDI_SETRSUBD _IO(CIO, 16)
-#define COMEDI_SETWSUBD _IO(CIO, 17)
-
-/* structures */
-
-/**
- * struct comedi_insn - COMEDI instruction
- * @insn:	COMEDI instruction type (%INSN_xxx).
- * @n:		Length of @data[].
- * @data:	Pointer to data array operated on by the instruction.
- * @subdev:	Subdevice index.
- * @chanspec:	A packed "chanspec" value consisting of channel number,
- *		analog range index, analog reference type, and flags.
- * @unused:	Reserved for future use.
- *
- * This is used with the %COMEDI_INSN ioctl, and indirectly with the
- * %COMEDI_INSNLIST ioctl.
- */
-struct comedi_insn {
-	unsigned int insn;
-	unsigned int n;
-	unsigned int __user *data;
-	unsigned int subdev;
-	unsigned int chanspec;
-	unsigned int unused[3];
-};
-
-/**
- * struct comedi_insnlist - list of COMEDI instructions
- * @n_insns:	Number of COMEDI instructions.
- * @insns:	Pointer to array COMEDI instructions.
- *
- * This is used with the %COMEDI_INSNLIST ioctl.
- */
-struct comedi_insnlist {
-	unsigned int n_insns;
-	struct comedi_insn __user *insns;
-};
-
-/**
- * struct comedi_cmd - COMEDI asynchronous acquisition command details
- * @subdev:		Subdevice index.
- * @flags:		Command flags (%CMDF_xxx).
- * @start_src:		"Start acquisition" trigger source (%TRIG_xxx).
- * @start_arg:		"Start acquisition" trigger argument.
- * @scan_begin_src:	"Scan begin" trigger source.
- * @scan_begin_arg:	"Scan begin" trigger argument.
- * @convert_src:	"Convert" trigger source.
- * @convert_arg:	"Convert" trigger argument.
- * @scan_end_src:	"Scan end" trigger source.
- * @scan_end_arg:	"Scan end" trigger argument.
- * @stop_src:		"Stop acquisition" trigger source.
- * @stop_arg:		"Stop acquisition" trigger argument.
- * @chanlist:		Pointer to array of "chanspec" values, containing a
- *			sequence of channel numbers packed with analog range
- *			index, etc.
- * @chanlist_len:	Number of channels in sequence.
- * @data:		Pointer to miscellaneous set-up data (not used).
- * @data_len:		Length of miscellaneous set-up data.
- *
- * This is used with the %COMEDI_CMD or %COMEDI_CMDTEST ioctl to set-up
- * or validate an asynchronous acquisition command.  The ioctl may modify
- * the &struct comedi_cmd and copy it back to the caller.
- *
- * Optional command @flags values that can be ORed together...
- *
- * %CMDF_BOGUS - makes %COMEDI_CMD ioctl return error %EAGAIN instead of
- * starting the command.
- *
- * %CMDF_PRIORITY - requests "hard real-time" processing (which is not
- * supported in this version of COMEDI).
- *
- * %CMDF_WAKE_EOS - requests the command makes data available for reading
- * after every "scan" period.
- *
- * %CMDF_WRITE - marks the command as being in the "write" (to device)
- * direction.  This does not need to be specified by the caller unless the
- * subdevice supports commands in either direction.
- *
- * %CMDF_RAWDATA - prevents the command from "munging" the data between the
- * COMEDI sample format and the raw hardware sample format.
- *
- * %CMDF_ROUND_NEAREST - requests timing periods to be rounded to nearest
- * supported values.
- *
- * %CMDF_ROUND_DOWN - requests timing periods to be rounded down to supported
- * values (frequencies rounded up).
- *
- * %CMDF_ROUND_UP - requests timing periods to be rounded up to supported
- * values (frequencies rounded down).
- *
- * Trigger source values for @start_src, @scan_begin_src, @convert_src,
- * @scan_end_src, and @stop_src...
- *
- * %TRIG_ANY - "all ones" value used to test which trigger sources are
- * supported.
- *
- * %TRIG_INVALID - "all zeroes" value used to indicate that all requested
- * trigger sources are invalid.
- *
- * %TRIG_NONE - never trigger (often used as a @stop_src value).
- *
- * %TRIG_NOW - trigger after '_arg' nanoseconds.
- *
- * %TRIG_FOLLOW - trigger follows another event.
- *
- * %TRIG_TIMER - trigger every '_arg' nanoseconds.
- *
- * %TRIG_COUNT - trigger when count '_arg' is reached.
- *
- * %TRIG_EXT - trigger on external signal specified by '_arg'.
- *
- * %TRIG_INT - trigger on internal, software trigger specified by '_arg'.
- *
- * %TRIG_OTHER - trigger on other, driver-defined signal specified by '_arg'.
- */
-struct comedi_cmd {
-	unsigned int subdev;
-	unsigned int flags;
-
-	unsigned int start_src;
-	unsigned int start_arg;
-
-	unsigned int scan_begin_src;
-	unsigned int scan_begin_arg;
-
-	unsigned int convert_src;
-	unsigned int convert_arg;
-
-	unsigned int scan_end_src;
-	unsigned int scan_end_arg;
-
-	unsigned int stop_src;
-	unsigned int stop_arg;
-
-	unsigned int *chanlist;
-	unsigned int chanlist_len;
-
-	short __user *data;
-	unsigned int data_len;
-};
-
-/**
- * struct comedi_chaninfo - used to retrieve per-channel information
- * @subdev:		Subdevice index.
- * @maxdata_list:	Optional pointer to per-channel maximum data values.
- * @flaglist:		Optional pointer to per-channel flags.
- * @rangelist:		Optional pointer to per-channel range types.
- * @unused:		Reserved for future use.
- *
- * This is used with the %COMEDI_CHANINFO ioctl to get per-channel information
- * for the subdevice.  Use of this requires knowledge of the number of channels
- * and subdevice flags obtained using the %COMEDI_SUBDINFO ioctl.
- *
- * The @maxdata_list member must be %NULL unless the %SDF_MAXDATA subdevice
- * flag is set.  The @flaglist member must be %NULL unless the %SDF_FLAGS
- * subdevice flag is set.  The @rangelist member must be %NULL unless the
- * %SDF_RANGETYPE subdevice flag is set.  Otherwise, the arrays they point to
- * must be at least as long as the number of channels.
- */
-struct comedi_chaninfo {
-	unsigned int subdev;
-	unsigned int __user *maxdata_list;
-	unsigned int __user *flaglist;
-	unsigned int __user *rangelist;
-	unsigned int unused[4];
-};
-
-/**
- * struct comedi_rangeinfo - used to retrieve the range table for a channel
- * @range_type:		Encodes subdevice index (bits 27:24), channel index
- *			(bits 23:16) and range table length (bits 15:0).
- * @range_ptr:		Pointer to array of @struct comedi_krange to be filled
- *			in with the range table for the channel or subdevice.
- *
- * This is used with the %COMEDI_RANGEINFO ioctl to retrieve the range table
- * for a specific channel (if the subdevice has the %SDF_RANGETYPE flag set to
- * indicate that the range table depends on the channel), or for the subdevice
- * as a whole (if the %SDF_RANGETYPE flag is clear, indicating the range table
- * is shared by all channels).
- *
- * The @range_type value is an input to the ioctl and comes from a previous
- * use of the %COMEDI_SUBDINFO ioctl (if the %SDF_RANGETYPE flag is clear),
- * or the %COMEDI_CHANINFO ioctl (if the %SDF_RANGETYPE flag is set).
- */
-struct comedi_rangeinfo {
-	unsigned int range_type;
-	void __user *range_ptr;
-};
-
-/**
- * struct comedi_krange - describes a range in a range table
- * @min:	Minimum value in millionths (1e-6) of a unit.
- * @max:	Maximum value in millionths (1e-6) of a unit.
- * @flags:	Indicates the units (in bits 7:0) OR'ed with optional flags.
- *
- * A range table is associated with a single channel, or with all channels in a
- * subdevice, and a list of one or more ranges.  A %struct comedi_krange
- * describes the physical range of units for one of those ranges.  Sample
- * values in COMEDI are unsigned from %0 up to some 'maxdata' value.  The
- * mapping from sample values to physical units is assumed to be nomimally
- * linear (for the purpose of describing the range), with sample value %0
- * mapping to @min, and the 'maxdata' sample value mapping to @max.
- *
- * The currently defined units are %UNIT_volt (%0), %UNIT_mA (%1), and
- * %UNIT_none (%2).  The @min and @max values are the physical range multiplied
- * by 1e6, so a @max value of %1000000 (with %UNIT_volt) represents a maximal
- * value of 1 volt.
- *
- * The only defined flag value is %RF_EXTERNAL (%0x100), indicating that the
- * range needs to be multiplied by an external reference.
- */
-struct comedi_krange {
-	int min;
-	int max;
-	unsigned int flags;
-};
-
-/**
- * struct comedi_subdinfo - used to retrieve information about a subdevice
- * @type:		Type of subdevice from &enum comedi_subdevice_type.
- * @n_chan:		Number of channels the subdevice supports.
- * @subd_flags:		A mixture of static and dynamic flags describing
- *			aspects of the subdevice and its current state.
- * @timer_type:		Timer type.  Always set to %5 ("nanosecond timer").
- * @len_chanlist:	Maximum length of a channel list if the subdevice
- *			supports asynchronous acquisition commands.
- * @maxdata:		Maximum sample value for all channels if the
- *			%SDF_MAXDATA subdevice flag is clear.
- * @flags:		Channel flags for all channels if the %SDF_FLAGS
- *			subdevice flag is clear.
- * @range_type:		The range type for all channels if the %SDF_RANGETYPE
- *			subdevice flag is clear.  Encodes the subdevice index
- *			(bits 27:24), a dummy channel index %0 (bits 23:16),
- *			and the range table length (bits 15:0).
- * @settling_time_0:	Not used.
- * @insn_bits_support:	Set to %COMEDI_SUPPORTED if the subdevice supports the
- *			%INSN_BITS instruction, or to %COMEDI_UNSUPPORTED if it
- *			does not.
- * @unused:		Reserved for future use.
- *
- * This is used with the %COMEDI_SUBDINFO ioctl which copies an array of
- * &struct comedi_subdinfo back to user space, with one element per subdevice.
- * Use of this requires knowledge of the number of subdevices obtained from
- * the %COMEDI_DEVINFO ioctl.
- *
- * These are the @subd_flags values that may be ORed together...
- *
- * %SDF_BUSY - the subdevice is busy processing an asynchronous command or a
- * synchronous instruction.
- *
- * %SDF_BUSY_OWNER - the subdevice is busy processing an asynchronous
- * acquisition command started on the current file object (the file object
- * issuing the %COMEDI_SUBDINFO ioctl).
- *
- * %SDF_LOCKED - the subdevice is locked by a %COMEDI_LOCK ioctl.
- *
- * %SDF_LOCK_OWNER - the subdevice is locked by a %COMEDI_LOCK ioctl from the
- * current file object.
- *
- * %SDF_MAXDATA - maximum sample values are channel-specific.
- *
- * %SDF_FLAGS - channel flags are channel-specific.
- *
- * %SDF_RANGETYPE - range types are channel-specific.
- *
- * %SDF_PWM_COUNTER - PWM can switch off automatically.
- *
- * %SDF_PWM_HBRIDGE - or PWM is signed (H-bridge).
- *
- * %SDF_CMD - the subdevice supports asynchronous commands.
- *
- * %SDF_SOFT_CALIBRATED - the subdevice uses software calibration.
- *
- * %SDF_CMD_WRITE - the subdevice supports asynchronous commands in the output
- * ("write") direction.
- *
- * %SDF_CMD_READ - the subdevice supports asynchronous commands in the input
- * ("read") direction.
- *
- * %SDF_READABLE - the subdevice is readable (e.g. analog input).
- *
- * %SDF_WRITABLE (aliased as %SDF_WRITEABLE) - the subdevice is writable (e.g.
- * analog output).
- *
- * %SDF_INTERNAL - the subdevice has no externally visible lines.
- *
- * %SDF_GROUND - the subdevice can use ground as an analog reference.
- *
- * %SDF_COMMON - the subdevice can use a common analog reference.
- *
- * %SDF_DIFF - the subdevice can use differential inputs (or outputs).
- *
- * %SDF_OTHER - the subdevice can use some other analog reference.
- *
- * %SDF_DITHER - the subdevice can do dithering.
- *
- * %SDF_DEGLITCH - the subdevice can do deglitching.
- *
- * %SDF_MMAP - this is never set.
- *
- * %SDF_RUNNING - an asynchronous command is still running.
- *
- * %SDF_LSAMPL - the subdevice uses "long" (32-bit) samples (for asynchronous
- * command data).
- *
- * %SDF_PACKED - the subdevice packs several DIO samples into a single sample
- * (for asynchronous command data).
- *
- * No "channel flags" (@flags) values are currently defined.
- */
-struct comedi_subdinfo {
-	unsigned int type;
-	unsigned int n_chan;
-	unsigned int subd_flags;
-	unsigned int timer_type;
-	unsigned int len_chanlist;
-	unsigned int maxdata;
-	unsigned int flags;
-	unsigned int range_type;
-	unsigned int settling_time_0;
-	unsigned int insn_bits_support;
-	unsigned int unused[8];
-};
-
-/**
- * struct comedi_devinfo - used to retrieve information about a COMEDI device
- * @version_code:	COMEDI version code.
- * @n_subdevs:		Number of subdevices the device has.
- * @driver_name:	Null-terminated COMEDI driver name.
- * @board_name:		Null-terminated COMEDI board name.
- * @read_subdevice:	Index of the current "read" subdevice (%-1 if none).
- * @write_subdevice:	Index of the current "write" subdevice (%-1 if none).
- * @unused:		Reserved for future use.
- *
- * This is used with the %COMEDI_DEVINFO ioctl to get basic information about
- * the device.
- */
-struct comedi_devinfo {
-	unsigned int version_code;
-	unsigned int n_subdevs;
-	char driver_name[COMEDI_NAMELEN];
-	char board_name[COMEDI_NAMELEN];
-	int read_subdevice;
-	int write_subdevice;
-	int unused[30];
-};
-
-/**
- * struct comedi_devconfig - used to configure a legacy COMEDI device
- * @board_name:		Null-terminated string specifying the type of board
- *			to configure.
- * @options:		An array of integer configuration options.
- *
- * This is used with the %COMEDI_DEVCONFIG ioctl to configure a "legacy" COMEDI
- * device, such as an ISA card.  Not all COMEDI drivers support this.  Those
- * that do either expect the specified board name to match one of a list of
- * names registered with the COMEDI core, or expect the specified board name
- * to match the COMEDI driver name itself.  The configuration options are
- * handled in a driver-specific manner.
- */
-struct comedi_devconfig {
-	char board_name[COMEDI_NAMELEN];
-	int options[COMEDI_NDEVCONFOPTS];
-};
-
-/**
- * struct comedi_bufconfig - used to set or get buffer size for a subdevice
- * @subdevice:		Subdevice index.
- * @flags:		Not used.
- * @maximum_size:	Maximum allowed buffer size.
- * @size:		Buffer size.
- * @unused:		Reserved for future use.
- *
- * This is used with the %COMEDI_BUFCONFIG ioctl to get or configure the
- * maximum buffer size and current buffer size for a COMEDI subdevice that
- * supports asynchronous commands.  If the subdevice does not support
- * asynchronous commands, @maximum_size and @size are ignored and set to 0.
- *
- * On ioctl input, non-zero values of @maximum_size and @size specify a
- * new maximum size and new current size (in bytes), respectively.  These
- * will by rounded up to a multiple of %PAGE_SIZE.  Specifying a new maximum
- * size requires admin capabilities.
- *
- * On ioctl output, @maximum_size and @size and set to the current maximum
- * buffer size and current buffer size, respectively.
- */
-struct comedi_bufconfig {
-	unsigned int subdevice;
-	unsigned int flags;
-
-	unsigned int maximum_size;
-	unsigned int size;
-
-	unsigned int unused[4];
-};
-
-/**
- * struct comedi_bufinfo - used to manipulate buffer position for a subdevice
- * @subdevice:		Subdevice index.
- * @bytes_read:		Specify amount to advance read position for an
- *			asynchronous command in the input ("read") direction.
- * @buf_write_ptr:	Current write position (index) within the buffer.
- * @buf_read_ptr:	Current read position (index) within the buffer.
- * @buf_write_count:	Total amount written, modulo 2^32.
- * @buf_read_count:	Total amount read, modulo 2^32.
- * @bytes_written:	Specify amount to advance write position for an
- *			asynchronous command in the output ("write") direction.
- * @unused:		Reserved for future use.
- *
- * This is used with the %COMEDI_BUFINFO ioctl to optionally advance the
- * current read or write position in an asynchronous acquisition data buffer,
- * and to get the current read and write positions in the buffer.
- */
-struct comedi_bufinfo {
-	unsigned int subdevice;
-	unsigned int bytes_read;
-
-	unsigned int buf_write_ptr;
-	unsigned int buf_read_ptr;
-	unsigned int buf_write_count;
-	unsigned int buf_read_count;
-
-	unsigned int bytes_written;
-
-	unsigned int unused[4];
-};
-
-/* range stuff */
-
-#define __RANGE(a, b)	((((a) & 0xffff) << 16) | ((b) & 0xffff))
-
-#define RANGE_OFFSET(a)		(((a) >> 16) & 0xffff)
-#define RANGE_LENGTH(b)		((b) & 0xffff)
-
-#define RF_UNIT(flags)		((flags) & 0xff)
-#define RF_EXTERNAL		0x100
-
-#define UNIT_volt		0
-#define UNIT_mA			1
-#define UNIT_none		2
-
-#define COMEDI_MIN_SPEED	0xffffffffu
-
-/**********************************************************/
-/* everything after this line is ALPHA */
-/**********************************************************/
-
-/*
- * 8254 specific configuration.
- *
- * It supports two config commands:
- *
- * 0 ID: INSN_CONFIG_SET_COUNTER_MODE
- * 1 8254 Mode
- * I8254_MODE0, I8254_MODE1, ..., I8254_MODE5
- * OR'ed with:
- * I8254_BCD, I8254_BINARY
- *
- * 0 ID: INSN_CONFIG_8254_READ_STATUS
- * 1 <-- Status byte returned here.
- * B7 = Output
- * B6 = NULL Count
- * B5 - B0 Current mode.
- */
-
-enum i8254_mode {
-	I8254_MODE0 = (0 << 1),	/* Interrupt on terminal count */
-	I8254_MODE1 = (1 << 1),	/* Hardware retriggerable one-shot */
-	I8254_MODE2 = (2 << 1),	/* Rate generator */
-	I8254_MODE3 = (3 << 1),	/* Square wave mode */
-	I8254_MODE4 = (4 << 1),	/* Software triggered strobe */
-	/* Hardware triggered strobe (retriggerable) */
-	I8254_MODE5 = (5 << 1),
-	/* Use binary-coded decimal instead of binary (pretty useless) */
-	I8254_BCD = 1,
-	I8254_BINARY = 0
-};
-
-/* *** BEGIN GLOBALLY-NAMED NI TERMINALS/SIGNALS *** */
-
-/*
- * Common National Instruments Terminal/Signal names.
- * Some of these have no NI_ prefix as they are useful for non-NI hardware, such
- * as those that utilize the PXI/RTSI trigger lines.
- *
- * NOTE ABOUT THE CHOICE OF NAMES HERE AND THE CAMELSCRIPT:
- *   The choice to use CamelScript and the exact names below is for
- *   maintainability, clarity, similarity to manufacturer's documentation,
- *   _and_ a mitigation for confusion that has plagued the use of these drivers
- *   for years!
- *
- *   More detail:
- *   There have been significant confusions over the past many years for users
- *   when trying to understand how to connect to/from signals and terminals on
- *   NI hardware using comedi.  The major reason for this is that the actual
- *   register values were exposed and required to be used by users.  Several
- *   major reasons exist why this caused major confusion for users:
- *   1) The register values are _NOT_ in user documentation, but rather in
- *     arcane locations, such as a few register programming manuals that are
- *     increasingly hard to find and the NI MHDDK (comments in example code).
- *     There is no one place to find the various valid values of the registers.
- *   2) The register values are _NOT_ completely consistent.  There is no way to
- *     gain any sense of intuition of which values, or even enums one should use
- *     for various registers.  There was some attempt in prior use of comedi to
- *     name enums such that a user might know which enums should be used for
- *     varying purposes, but the end-user had to gain a knowledge of register
- *     values to correctly wield this approach.
- *   3) The names for signals and registers found in the various register level
- *     programming manuals and vendor-provided documentation are _not_ even
- *     close to the same names that are in the end-user documentation.
- *
- *   Similar, albeit less, confusion plagued NI's previous version of their own
- *   drivers.  Earlier than 2003, NI greatly simplified the situation for users
- *   by releasing a new API that abstracted the names of signals/terminals to a
- *   common and intuitive set of names.
- *
- *   The names below mirror the names chosen and well documented by NI.  These
- *   names are exposed to the user via the comedilib user library.  By keeping
- *   the names below, in spite of the use of CamelScript, maintenance will be
- *   greatly eased and confusion for users _and_ comedi developers will be
- *   greatly reduced.
- */
-
-/*
- * Base of abstracted NI names.
- * The first 16 bits of *_arg are reserved for channel selection.
- * Since we only actually need the first 4 or 5 bits for all register values on
- * NI select registers anyways, we'll identify all values >= (1<<15) as being an
- * abstracted NI signal/terminal name.
- * These values are also used/returned by INSN_DEVICE_CONFIG_TEST_ROUTE,
- * INSN_DEVICE_CONFIG_CONNECT_ROUTE, INSN_DEVICE_CONFIG_DISCONNECT_ROUTE,
- * and INSN_DEVICE_CONFIG_GET_ROUTES.
- */
-#define NI_NAMES_BASE	0x8000u
-
-#define _TERM_N(base, n, x)	((base) + ((x) & ((n) - 1)))
-
-/*
- * not necessarily all allowed 64 PFIs are valid--certainly not for all devices
- */
-#define NI_PFI(x)		_TERM_N(NI_NAMES_BASE, 64, x)
-/* 8 trigger lines by standard, Some devices cannot talk to all eight. */
-#define TRIGGER_LINE(x)		_TERM_N(NI_PFI(-1) + 1, 8, x)
-/* 4 RTSI shared MUXes to route signals to/from TRIGGER_LINES on NI hardware */
-#define NI_RTSI_BRD(x)		_TERM_N(TRIGGER_LINE(-1) + 1, 4, x)
-
-/* *** Counter/timer names : 8 counters max *** */
-#define NI_MAX_COUNTERS		8
-#define NI_COUNTER_NAMES_BASE	(NI_RTSI_BRD(-1)  + 1)
-#define NI_CtrSource(x)	      _TERM_N(NI_COUNTER_NAMES_BASE, NI_MAX_COUNTERS, x)
-/* Gate, Aux, A,B,Z are all treated, at times as gates */
-#define NI_GATES_NAMES_BASE	(NI_CtrSource(-1) + 1)
-#define NI_CtrGate(x)		_TERM_N(NI_GATES_NAMES_BASE, NI_MAX_COUNTERS, x)
-#define NI_CtrAux(x)		_TERM_N(NI_CtrGate(-1)  + 1, NI_MAX_COUNTERS, x)
-#define NI_CtrA(x)		_TERM_N(NI_CtrAux(-1)   + 1, NI_MAX_COUNTERS, x)
-#define NI_CtrB(x)		_TERM_N(NI_CtrA(-1)     + 1, NI_MAX_COUNTERS, x)
-#define NI_CtrZ(x)		_TERM_N(NI_CtrB(-1)     + 1, NI_MAX_COUNTERS, x)
-#define NI_GATES_NAMES_MAX	NI_CtrZ(-1)
-#define NI_CtrArmStartTrigger(x) _TERM_N(NI_CtrZ(-1)    + 1, NI_MAX_COUNTERS, x)
-#define NI_CtrInternalOutput(x) \
-		      _TERM_N(NI_CtrArmStartTrigger(-1) + 1, NI_MAX_COUNTERS, x)
-/** external pin(s) labeled conveniently as Ctr<i>Out. */
-#define NI_CtrOut(x)   _TERM_N(NI_CtrInternalOutput(-1) + 1, NI_MAX_COUNTERS, x)
-/** For Buffered sampling of ctr -- x series capability. */
-#define NI_CtrSampleClock(x)	_TERM_N(NI_CtrOut(-1)   + 1, NI_MAX_COUNTERS, x)
-#define NI_COUNTER_NAMES_MAX	NI_CtrSampleClock(-1)
-
-enum ni_common_signal_names {
-	/* PXI_Star: this is a non-NI-specific signal */
-	PXI_Star = NI_COUNTER_NAMES_MAX + 1,
-	PXI_Clk10,
-	PXIe_Clk100,
-	NI_AI_SampleClock,
-	NI_AI_SampleClockTimebase,
-	NI_AI_StartTrigger,
-	NI_AI_ReferenceTrigger,
-	NI_AI_ConvertClock,
-	NI_AI_ConvertClockTimebase,
-	NI_AI_PauseTrigger,
-	NI_AI_HoldCompleteEvent,
-	NI_AI_HoldComplete,
-	NI_AI_ExternalMUXClock,
-	NI_AI_STOP, /* pulse signal that occurs when a update is finished(?) */
-	NI_AO_SampleClock,
-	NI_AO_SampleClockTimebase,
-	NI_AO_StartTrigger,
-	NI_AO_PauseTrigger,
-	NI_DI_SampleClock,
-	NI_DI_SampleClockTimebase,
-	NI_DI_StartTrigger,
-	NI_DI_ReferenceTrigger,
-	NI_DI_PauseTrigger,
-	NI_DI_InputBufferFull,
-	NI_DI_ReadyForStartEvent,
-	NI_DI_ReadyForTransferEventBurst,
-	NI_DI_ReadyForTransferEventPipelined,
-	NI_DO_SampleClock,
-	NI_DO_SampleClockTimebase,
-	NI_DO_StartTrigger,
-	NI_DO_PauseTrigger,
-	NI_DO_OutputBufferFull,
-	NI_DO_DataActiveEvent,
-	NI_DO_ReadyForStartEvent,
-	NI_DO_ReadyForTransferEvent,
-	NI_MasterTimebase,
-	NI_20MHzTimebase,
-	NI_80MHzTimebase,
-	NI_100MHzTimebase,
-	NI_200MHzTimebase,
-	NI_100kHzTimebase,
-	NI_10MHzRefClock,
-	NI_FrequencyOutput,
-	NI_ChangeDetectionEvent,
-	NI_AnalogComparisonEvent,
-	NI_WatchdogExpiredEvent,
-	NI_WatchdogExpirationTrigger,
-	NI_SCXI_Trig1,
-	NI_LogicLow,
-	NI_LogicHigh,
-	NI_ExternalStrobe,
-	NI_PFI_DO,
-	NI_CaseGround,
-	/* special internal signal used as variable source for RTSI bus: */
-	NI_RGOUT0,
-
-	/* just a name to make the next more convenient, regardless of above */
-	_NI_NAMES_MAX_PLUS_1,
-	NI_NUM_NAMES = _NI_NAMES_MAX_PLUS_1 - NI_NAMES_BASE,
-};
-
-/* *** END GLOBALLY-NAMED NI TERMINALS/SIGNALS *** */
-
-#define NI_USUAL_PFI_SELECT(x)	(((x) < 10) ? (0x1 + (x)) : (0xb + (x)))
-#define NI_USUAL_RTSI_SELECT(x)	(((x) < 7) ? (0xb + (x)) : 0x1b)
-
-/*
- * mode bits for NI general-purpose counters, set with
- * INSN_CONFIG_SET_COUNTER_MODE
- */
-#define NI_GPCT_COUNTING_MODE_SHIFT 16
-#define NI_GPCT_INDEX_PHASE_BITSHIFT 20
-#define NI_GPCT_COUNTING_DIRECTION_SHIFT 24
-enum ni_gpct_mode_bits {
-	NI_GPCT_GATE_ON_BOTH_EDGES_BIT = 0x4,
-	NI_GPCT_EDGE_GATE_MODE_MASK = 0x18,
-	NI_GPCT_EDGE_GATE_STARTS_STOPS_BITS = 0x0,
-	NI_GPCT_EDGE_GATE_STOPS_STARTS_BITS = 0x8,
-	NI_GPCT_EDGE_GATE_STARTS_BITS = 0x10,
-	NI_GPCT_EDGE_GATE_NO_STARTS_NO_STOPS_BITS = 0x18,
-	NI_GPCT_STOP_MODE_MASK = 0x60,
-	NI_GPCT_STOP_ON_GATE_BITS = 0x00,
-	NI_GPCT_STOP_ON_GATE_OR_TC_BITS = 0x20,
-	NI_GPCT_STOP_ON_GATE_OR_SECOND_TC_BITS = 0x40,
-	NI_GPCT_LOAD_B_SELECT_BIT = 0x80,
-	NI_GPCT_OUTPUT_MODE_MASK = 0x300,
-	NI_GPCT_OUTPUT_TC_PULSE_BITS = 0x100,
-	NI_GPCT_OUTPUT_TC_TOGGLE_BITS = 0x200,
-	NI_GPCT_OUTPUT_TC_OR_GATE_TOGGLE_BITS = 0x300,
-	NI_GPCT_HARDWARE_DISARM_MASK = 0xc00,
-	NI_GPCT_NO_HARDWARE_DISARM_BITS = 0x000,
-	NI_GPCT_DISARM_AT_TC_BITS = 0x400,
-	NI_GPCT_DISARM_AT_GATE_BITS = 0x800,
-	NI_GPCT_DISARM_AT_TC_OR_GATE_BITS = 0xc00,
-	NI_GPCT_LOADING_ON_TC_BIT = 0x1000,
-	NI_GPCT_LOADING_ON_GATE_BIT = 0x4000,
-	NI_GPCT_COUNTING_MODE_MASK = 0x7 << NI_GPCT_COUNTING_MODE_SHIFT,
-	NI_GPCT_COUNTING_MODE_NORMAL_BITS =
-		0x0 << NI_GPCT_COUNTING_MODE_SHIFT,
-	NI_GPCT_COUNTING_MODE_QUADRATURE_X1_BITS =
-		0x1 << NI_GPCT_COUNTING_MODE_SHIFT,
-	NI_GPCT_COUNTING_MODE_QUADRATURE_X2_BITS =
-		0x2 << NI_GPCT_COUNTING_MODE_SHIFT,
-	NI_GPCT_COUNTING_MODE_QUADRATURE_X4_BITS =
-		0x3 << NI_GPCT_COUNTING_MODE_SHIFT,
-	NI_GPCT_COUNTING_MODE_TWO_PULSE_BITS =
-		0x4 << NI_GPCT_COUNTING_MODE_SHIFT,
-	NI_GPCT_COUNTING_MODE_SYNC_SOURCE_BITS =
-		0x6 << NI_GPCT_COUNTING_MODE_SHIFT,
-	NI_GPCT_INDEX_PHASE_MASK = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
-	NI_GPCT_INDEX_PHASE_LOW_A_LOW_B_BITS =
-		0x0 << NI_GPCT_INDEX_PHASE_BITSHIFT,
-	NI_GPCT_INDEX_PHASE_LOW_A_HIGH_B_BITS =
-		0x1 << NI_GPCT_INDEX_PHASE_BITSHIFT,
-	NI_GPCT_INDEX_PHASE_HIGH_A_LOW_B_BITS =
-		0x2 << NI_GPCT_INDEX_PHASE_BITSHIFT,
-	NI_GPCT_INDEX_PHASE_HIGH_A_HIGH_B_BITS =
-		0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
-	NI_GPCT_INDEX_ENABLE_BIT = 0x400000,
-	NI_GPCT_COUNTING_DIRECTION_MASK =
-		0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
-	NI_GPCT_COUNTING_DIRECTION_DOWN_BITS =
-		0x00 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
-	NI_GPCT_COUNTING_DIRECTION_UP_BITS =
-		0x1 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
-	NI_GPCT_COUNTING_DIRECTION_HW_UP_DOWN_BITS =
-		0x2 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
-	NI_GPCT_COUNTING_DIRECTION_HW_GATE_BITS =
-		0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
-	NI_GPCT_RELOAD_SOURCE_MASK = 0xc000000,
-	NI_GPCT_RELOAD_SOURCE_FIXED_BITS = 0x0,
-	NI_GPCT_RELOAD_SOURCE_SWITCHING_BITS = 0x4000000,
-	NI_GPCT_RELOAD_SOURCE_GATE_SELECT_BITS = 0x8000000,
-	NI_GPCT_OR_GATE_BIT = 0x10000000,
-	NI_GPCT_INVERT_OUTPUT_BIT = 0x20000000
-};
-
-/*
- * Bits for setting a clock source with
- * INSN_CONFIG_SET_CLOCK_SRC when using NI general-purpose counters.
- */
-enum ni_gpct_clock_source_bits {
-	NI_GPCT_CLOCK_SRC_SELECT_MASK = 0x3f,
-	NI_GPCT_TIMEBASE_1_CLOCK_SRC_BITS = 0x0,
-	NI_GPCT_TIMEBASE_2_CLOCK_SRC_BITS = 0x1,
-	NI_GPCT_TIMEBASE_3_CLOCK_SRC_BITS = 0x2,
-	NI_GPCT_LOGIC_LOW_CLOCK_SRC_BITS = 0x3,
-	NI_GPCT_NEXT_GATE_CLOCK_SRC_BITS = 0x4,
-	NI_GPCT_NEXT_TC_CLOCK_SRC_BITS = 0x5,
-	/* NI 660x-specific */
-	NI_GPCT_SOURCE_PIN_i_CLOCK_SRC_BITS = 0x6,
-	NI_GPCT_PXI10_CLOCK_SRC_BITS = 0x7,
-	NI_GPCT_PXI_STAR_TRIGGER_CLOCK_SRC_BITS = 0x8,
-	NI_GPCT_ANALOG_TRIGGER_OUT_CLOCK_SRC_BITS = 0x9,
-	NI_GPCT_PRESCALE_MODE_CLOCK_SRC_MASK = 0x30000000,
-	NI_GPCT_NO_PRESCALE_CLOCK_SRC_BITS = 0x0,
-	/* divide source by 2 */
-	NI_GPCT_PRESCALE_X2_CLOCK_SRC_BITS = 0x10000000,
-	/* divide source by 8 */
-	NI_GPCT_PRESCALE_X8_CLOCK_SRC_BITS = 0x20000000,
-	NI_GPCT_INVERT_CLOCK_SRC_BIT = 0x80000000
-};
-
-/* NI 660x-specific */
-#define NI_GPCT_SOURCE_PIN_CLOCK_SRC_BITS(x)	(0x10 + (x))
-
-#define NI_GPCT_RTSI_CLOCK_SRC_BITS(x)		(0x18 + (x))
-
-/* no pfi on NI 660x */
-#define NI_GPCT_PFI_CLOCK_SRC_BITS(x)		(0x20 + (x))
-
-/*
- * Possibilities for setting a gate source with
- * INSN_CONFIG_SET_GATE_SRC when using NI general-purpose counters.
- * May be bitwise-or'd with CR_EDGE or CR_INVERT.
- */
-enum ni_gpct_gate_select {
-	/* m-series gates */
-	NI_GPCT_TIMESTAMP_MUX_GATE_SELECT = 0x0,
-	NI_GPCT_AI_START2_GATE_SELECT = 0x12,
-	NI_GPCT_PXI_STAR_TRIGGER_GATE_SELECT = 0x13,
-	NI_GPCT_NEXT_OUT_GATE_SELECT = 0x14,
-	NI_GPCT_AI_START1_GATE_SELECT = 0x1c,
-	NI_GPCT_NEXT_SOURCE_GATE_SELECT = 0x1d,
-	NI_GPCT_ANALOG_TRIGGER_OUT_GATE_SELECT = 0x1e,
-	NI_GPCT_LOGIC_LOW_GATE_SELECT = 0x1f,
-	/* more gates for 660x */
-	NI_GPCT_SOURCE_PIN_i_GATE_SELECT = 0x100,
-	NI_GPCT_GATE_PIN_i_GATE_SELECT = 0x101,
-	/* more gates for 660x "second gate" */
-	NI_GPCT_UP_DOWN_PIN_i_GATE_SELECT = 0x201,
-	NI_GPCT_SELECTED_GATE_GATE_SELECT = 0x21e,
-	/*
-	 * m-series "second gate" sources are unknown,
-	 * we should add them here with an offset of 0x300 when
-	 * known.
-	 */
-	NI_GPCT_DISABLED_GATE_SELECT = 0x8000,
-};
-
-#define NI_GPCT_GATE_PIN_GATE_SELECT(x)		(0x102 + (x))
-#define NI_GPCT_RTSI_GATE_SELECT(x)		NI_USUAL_RTSI_SELECT(x)
-#define NI_GPCT_PFI_GATE_SELECT(x)		NI_USUAL_PFI_SELECT(x)
-#define NI_GPCT_UP_DOWN_PIN_GATE_SELECT(x)	(0x202 + (x))
-
-/*
- * Possibilities for setting a source with
- * INSN_CONFIG_SET_OTHER_SRC when using NI general-purpose counters.
- */
-enum ni_gpct_other_index {
-	NI_GPCT_SOURCE_ENCODER_A,
-	NI_GPCT_SOURCE_ENCODER_B,
-	NI_GPCT_SOURCE_ENCODER_Z
-};
-
-enum ni_gpct_other_select {
-	/* m-series gates */
-	/* Still unknown, probably only need NI_GPCT_PFI_OTHER_SELECT */
-	NI_GPCT_DISABLED_OTHER_SELECT = 0x8000,
-};
-
-#define NI_GPCT_PFI_OTHER_SELECT(x)	NI_USUAL_PFI_SELECT(x)
-
-/*
- * start sources for ni general-purpose counters for use with
- * INSN_CONFIG_ARM
- */
-enum ni_gpct_arm_source {
-	NI_GPCT_ARM_IMMEDIATE = 0x0,
-	/*
-	 * Start both the counter and the adjacent paired counter simultaneously
-	 */
-	NI_GPCT_ARM_PAIRED_IMMEDIATE = 0x1,
-	/*
-	 * If the NI_GPCT_HW_ARM bit is set, we will pass the least significant
-	 * bits (3 bits for 660x or 5 bits for m-series) through to the
-	 * hardware. To select a hardware trigger, pass the appropriate select
-	 * bit, e.g.,
-	 * NI_GPCT_HW_ARM | NI_GPCT_AI_START1_GATE_SELECT or
-	 * NI_GPCT_HW_ARM | NI_GPCT_PFI_GATE_SELECT(pfi_number)
-	 */
-	NI_GPCT_HW_ARM = 0x1000,
-	NI_GPCT_ARM_UNKNOWN = NI_GPCT_HW_ARM,	/* for backward compatibility */
-};
-
-/* digital filtering options for ni 660x for use with INSN_CONFIG_FILTER. */
-enum ni_gpct_filter_select {
-	NI_GPCT_FILTER_OFF = 0x0,
-	NI_GPCT_FILTER_TIMEBASE_3_SYNC = 0x1,
-	NI_GPCT_FILTER_100x_TIMEBASE_1 = 0x2,
-	NI_GPCT_FILTER_20x_TIMEBASE_1 = 0x3,
-	NI_GPCT_FILTER_10x_TIMEBASE_1 = 0x4,
-	NI_GPCT_FILTER_2x_TIMEBASE_1 = 0x5,
-	NI_GPCT_FILTER_2x_TIMEBASE_3 = 0x6
-};
-
-/*
- * PFI digital filtering options for ni m-series for use with
- * INSN_CONFIG_FILTER.
- */
-enum ni_pfi_filter_select {
-	NI_PFI_FILTER_OFF = 0x0,
-	NI_PFI_FILTER_125ns = 0x1,
-	NI_PFI_FILTER_6425ns = 0x2,
-	NI_PFI_FILTER_2550us = 0x3
-};
-
-/* master clock sources for ni mio boards and INSN_CONFIG_SET_CLOCK_SRC */
-enum ni_mio_clock_source {
-	NI_MIO_INTERNAL_CLOCK = 0,
-	/*
-	 * Doesn't work for m-series, use NI_MIO_PLL_RTSI_CLOCK()
-	 * the NI_MIO_PLL_* sources are m-series only
-	 */
-	NI_MIO_RTSI_CLOCK = 1,
-	NI_MIO_PLL_PXI_STAR_TRIGGER_CLOCK = 2,
-	NI_MIO_PLL_PXI10_CLOCK = 3,
-	NI_MIO_PLL_RTSI0_CLOCK = 4
-};
-
-#define NI_MIO_PLL_RTSI_CLOCK(x)	(NI_MIO_PLL_RTSI0_CLOCK + (x))
-
-/*
- * Signals which can be routed to an NI RTSI pin with INSN_CONFIG_SET_ROUTING.
- * The numbers assigned are not arbitrary, they correspond to the bits required
- * to program the board.
- */
-enum ni_rtsi_routing {
-	NI_RTSI_OUTPUT_ADR_START1 = 0,
-	NI_RTSI_OUTPUT_ADR_START2 = 1,
-	NI_RTSI_OUTPUT_SCLKG = 2,
-	NI_RTSI_OUTPUT_DACUPDN = 3,
-	NI_RTSI_OUTPUT_DA_START1 = 4,
-	NI_RTSI_OUTPUT_G_SRC0 = 5,
-	NI_RTSI_OUTPUT_G_GATE0 = 6,
-	NI_RTSI_OUTPUT_RGOUT0 = 7,
-	NI_RTSI_OUTPUT_RTSI_BRD_0 = 8,
-	/* Pre-m-series always have RTSI clock on line 7 */
-	NI_RTSI_OUTPUT_RTSI_OSC = 12
-};
-
-#define NI_RTSI_OUTPUT_RTSI_BRD(x)	(NI_RTSI_OUTPUT_RTSI_BRD_0 + (x))
-
-/*
- * Signals which can be routed to an NI PFI pin on an m-series board with
- * INSN_CONFIG_SET_ROUTING.  These numbers are also returned by
- * INSN_CONFIG_GET_ROUTING on pre-m-series boards, even though their routing
- * cannot be changed.  The numbers assigned are not arbitrary, they correspond
- * to the bits required to program the board.
- */
-enum ni_pfi_routing {
-	NI_PFI_OUTPUT_PFI_DEFAULT = 0,
-	NI_PFI_OUTPUT_AI_START1 = 1,
-	NI_PFI_OUTPUT_AI_START2 = 2,
-	NI_PFI_OUTPUT_AI_CONVERT = 3,
-	NI_PFI_OUTPUT_G_SRC1 = 4,
-	NI_PFI_OUTPUT_G_GATE1 = 5,
-	NI_PFI_OUTPUT_AO_UPDATE_N = 6,
-	NI_PFI_OUTPUT_AO_START1 = 7,
-	NI_PFI_OUTPUT_AI_START_PULSE = 8,
-	NI_PFI_OUTPUT_G_SRC0 = 9,
-	NI_PFI_OUTPUT_G_GATE0 = 10,
-	NI_PFI_OUTPUT_EXT_STROBE = 11,
-	NI_PFI_OUTPUT_AI_EXT_MUX_CLK = 12,
-	NI_PFI_OUTPUT_GOUT0 = 13,
-	NI_PFI_OUTPUT_GOUT1 = 14,
-	NI_PFI_OUTPUT_FREQ_OUT = 15,
-	NI_PFI_OUTPUT_PFI_DO = 16,
-	NI_PFI_OUTPUT_I_ATRIG = 17,
-	NI_PFI_OUTPUT_RTSI0 = 18,
-	NI_PFI_OUTPUT_PXI_STAR_TRIGGER_IN = 26,
-	NI_PFI_OUTPUT_SCXI_TRIG1 = 27,
-	NI_PFI_OUTPUT_DIO_CHANGE_DETECT_RTSI = 28,
-	NI_PFI_OUTPUT_CDI_SAMPLE = 29,
-	NI_PFI_OUTPUT_CDO_UPDATE = 30
-};
-
-#define NI_PFI_OUTPUT_RTSI(x)		(NI_PFI_OUTPUT_RTSI0 + (x))
-
-/*
- * Signals which can be routed to output on a NI PFI pin on a 660x board
- * with INSN_CONFIG_SET_ROUTING.  The numbers assigned are
- * not arbitrary, they correspond to the bits required
- * to program the board.  Lines 0 to 7 can only be set to
- * NI_660X_PFI_OUTPUT_DIO.  Lines 32 to 39 can only be set to
- * NI_660X_PFI_OUTPUT_COUNTER.
- */
-enum ni_660x_pfi_routing {
-	NI_660X_PFI_OUTPUT_COUNTER = 1,	/* counter */
-	NI_660X_PFI_OUTPUT_DIO = 2,	/* static digital output */
-};
-
-/*
- * NI External Trigger lines.  These values are not arbitrary, but are related
- * to the bits required to program the board (offset by 1 for historical
- * reasons).
- */
-#define NI_EXT_PFI(x)			(NI_USUAL_PFI_SELECT(x) - 1)
-#define NI_EXT_RTSI(x)			(NI_USUAL_RTSI_SELECT(x) - 1)
-
-/*
- * Clock sources for CDIO subdevice on NI m-series boards.  Used as the
- * scan_begin_arg for a comedi_command. These sources may also be bitwise-or'd
- * with CR_INVERT to change polarity.
- */
-enum ni_m_series_cdio_scan_begin_src {
-	NI_CDIO_SCAN_BEGIN_SRC_GROUND = 0,
-	NI_CDIO_SCAN_BEGIN_SRC_AI_START = 18,
-	NI_CDIO_SCAN_BEGIN_SRC_AI_CONVERT = 19,
-	NI_CDIO_SCAN_BEGIN_SRC_PXI_STAR_TRIGGER = 20,
-	NI_CDIO_SCAN_BEGIN_SRC_G0_OUT = 28,
-	NI_CDIO_SCAN_BEGIN_SRC_G1_OUT = 29,
-	NI_CDIO_SCAN_BEGIN_SRC_ANALOG_TRIGGER = 30,
-	NI_CDIO_SCAN_BEGIN_SRC_AO_UPDATE = 31,
-	NI_CDIO_SCAN_BEGIN_SRC_FREQ_OUT = 32,
-	NI_CDIO_SCAN_BEGIN_SRC_DIO_CHANGE_DETECT_IRQ = 33
-};
-
-#define NI_CDIO_SCAN_BEGIN_SRC_PFI(x)	NI_USUAL_PFI_SELECT(x)
-#define NI_CDIO_SCAN_BEGIN_SRC_RTSI(x)	NI_USUAL_RTSI_SELECT(x)
-
-/*
- * scan_begin_src for scan_begin_arg==TRIG_EXT with analog output command on NI
- * boards.  These scan begin sources can also be bitwise-or'd with CR_INVERT to
- * change polarity.
- */
-#define NI_AO_SCAN_BEGIN_SRC_PFI(x)	NI_USUAL_PFI_SELECT(x)
-#define NI_AO_SCAN_BEGIN_SRC_RTSI(x)	NI_USUAL_RTSI_SELECT(x)
-
-/*
- * Bits for setting a clock source with
- * INSN_CONFIG_SET_CLOCK_SRC when using NI frequency output subdevice.
- */
-enum ni_freq_out_clock_source_bits {
-	NI_FREQ_OUT_TIMEBASE_1_DIV_2_CLOCK_SRC,	/* 10 MHz */
-	NI_FREQ_OUT_TIMEBASE_2_CLOCK_SRC	/* 100 KHz */
-};
-
-/*
- * Values for setting a clock source with INSN_CONFIG_SET_CLOCK_SRC for
- * 8254 counter subdevices on Amplicon DIO boards (amplc_dio200 driver).
- */
-enum amplc_dio_clock_source {
-	/*
-	 * Per channel external clock
-	 * input/output pin (pin is only an
-	 * input when clock source set to this value,
-	 * otherwise it is an output)
-	 */
-	AMPLC_DIO_CLK_CLKN,
-	AMPLC_DIO_CLK_10MHZ,	/* 10 MHz internal clock */
-	AMPLC_DIO_CLK_1MHZ,	/* 1 MHz internal clock */
-	AMPLC_DIO_CLK_100KHZ,	/* 100 kHz internal clock */
-	AMPLC_DIO_CLK_10KHZ,	/* 10 kHz internal clock */
-	AMPLC_DIO_CLK_1KHZ,	/* 1 kHz internal clock */
-	/*
-	 * Output of preceding counter channel
-	 * (for channel 0, preceding counter
-	 * channel is channel 2 on preceding
-	 * counter subdevice, for first counter
-	 * subdevice, preceding counter
-	 * subdevice is the last counter
-	 * subdevice)
-	 */
-	AMPLC_DIO_CLK_OUTNM1,
-	AMPLC_DIO_CLK_EXT,	/* per chip external input pin */
-	/* the following are "enhanced" clock sources for PCIe models */
-	AMPLC_DIO_CLK_VCC,	/* clock input HIGH */
-	AMPLC_DIO_CLK_GND,	/* clock input LOW */
-	AMPLC_DIO_CLK_PAT_PRESENT, /* "pattern present" signal */
-	AMPLC_DIO_CLK_20MHZ	/* 20 MHz internal clock */
-};
-
-/*
- * Values for setting a clock source with INSN_CONFIG_SET_CLOCK_SRC for
- * timer subdevice on some Amplicon DIO PCIe boards (amplc_dio200 driver).
- */
-enum amplc_dio_ts_clock_src {
-	AMPLC_DIO_TS_CLK_1GHZ,	/* 1 ns period with 20 ns granularity */
-	AMPLC_DIO_TS_CLK_1MHZ,	/* 1 us period */
-	AMPLC_DIO_TS_CLK_1KHZ	/* 1 ms period */
-};
-
-/*
- * Values for setting a gate source with INSN_CONFIG_SET_GATE_SRC for
- * 8254 counter subdevices on Amplicon DIO boards (amplc_dio200 driver).
- */
-enum amplc_dio_gate_source {
-	AMPLC_DIO_GAT_VCC,	/* internal high logic level */
-	AMPLC_DIO_GAT_GND,	/* internal low logic level */
-	AMPLC_DIO_GAT_GATN,	/* per channel external gate input */
-	/*
-	 * negated output of counter channel minus 2
-	 * (for channels 0 or 1, channel minus 2 is channel 1 or 2 on
-	 * the preceding counter subdevice, for the first counter subdevice
-	 * the preceding counter subdevice is the last counter subdevice)
-	 */
-	AMPLC_DIO_GAT_NOUTNM2,
-	AMPLC_DIO_GAT_RESERVED4,
-	AMPLC_DIO_GAT_RESERVED5,
-	AMPLC_DIO_GAT_RESERVED6,
-	AMPLC_DIO_GAT_RESERVED7,
-	/* the following are "enhanced" gate sources for PCIe models */
-	AMPLC_DIO_GAT_NGATN = 6, /* negated per channel gate input */
-	/* non-negated output of counter channel minus 2 */
-	AMPLC_DIO_GAT_OUTNM2,
-	AMPLC_DIO_GAT_PAT_PRESENT, /* "pattern present" signal */
-	AMPLC_DIO_GAT_PAT_OCCURRED, /* "pattern occurred" latched */
-	AMPLC_DIO_GAT_PAT_GONE,	/* "pattern gone away" latched */
-	AMPLC_DIO_GAT_NPAT_PRESENT, /* negated "pattern present" */
-	AMPLC_DIO_GAT_NPAT_OCCURRED, /* negated "pattern occurred" */
-	AMPLC_DIO_GAT_NPAT_GONE	/* negated "pattern gone away" */
-};
-
-/*
- * Values for setting a clock source with INSN_CONFIG_SET_CLOCK_SRC for
- * the counter subdevice on the Kolter Electronic PCI-Counter board
- * (ke_counter driver).
- */
-enum ke_counter_clock_source {
-	KE_CLK_20MHZ,	/* internal 20MHz (default) */
-	KE_CLK_4MHZ,	/* internal 4MHz (option) */
-	KE_CLK_EXT	/* external clock on pin 21 of D-Sub */
-};
-
-#endif /* _COMEDI_H */
diff --git a/original/uapi/linux/counter.h b/original/uapi/linux/counter.h
deleted file mode 100644
index d0aa95a..0000000
--- a/original/uapi/linux/counter.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Userspace ABI for Counter character devices
- * Copyright (C) 2020 William Breathitt Gray
- */
-#ifndef _UAPI_COUNTER_H_
-#define _UAPI_COUNTER_H_
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/* Component type definitions */
-enum counter_component_type {
-	COUNTER_COMPONENT_NONE,
-	COUNTER_COMPONENT_SIGNAL,
-	COUNTER_COMPONENT_COUNT,
-	COUNTER_COMPONENT_FUNCTION,
-	COUNTER_COMPONENT_SYNAPSE_ACTION,
-	COUNTER_COMPONENT_EXTENSION,
-};
-
-/* Component scope definitions */
-enum counter_scope {
-	COUNTER_SCOPE_DEVICE,
-	COUNTER_SCOPE_SIGNAL,
-	COUNTER_SCOPE_COUNT,
-};
-
-/**
- * struct counter_component - Counter component identification
- * @type: component type (one of enum counter_component_type)
- * @scope: component scope (one of enum counter_scope)
- * @parent: parent ID (matching the ID suffix of the respective parent sysfs
- *          path as described by the ABI documentation file
- *          Documentation/ABI/testing/sysfs-bus-counter)
- * @id: component ID (matching the ID provided by the respective *_component_id
- *      sysfs attribute of the desired component)
- *
- * For example, if the Count 2 ceiling extension of Counter device 4 is desired,
- * set type equal to COUNTER_COMPONENT_EXTENSION, scope equal to
- * COUNTER_COUNT_SCOPE, parent equal to 2, and id equal to the value provided by
- * the respective /sys/bus/counter/devices/counter4/count2/ceiling_component_id
- * sysfs attribute.
- */
-struct counter_component {
-	__u8 type;
-	__u8 scope;
-	__u8 parent;
-	__u8 id;
-};
-
-/* Event type definitions */
-enum counter_event_type {
-	/* Count value increased past ceiling */
-	COUNTER_EVENT_OVERFLOW,
-	/* Count value decreased past floor */
-	COUNTER_EVENT_UNDERFLOW,
-	/* Count value increased past ceiling, or decreased past floor */
-	COUNTER_EVENT_OVERFLOW_UNDERFLOW,
-	/* Count value reached threshold */
-	COUNTER_EVENT_THRESHOLD,
-	/* Index signal detected */
-	COUNTER_EVENT_INDEX,
-};
-
-/**
- * struct counter_watch - Counter component watch configuration
- * @component: component to watch when event triggers
- * @event: event that triggers (one of enum counter_event_type)
- * @channel: event channel (typically 0 unless the device supports concurrent
- *	     events of the same type)
- */
-struct counter_watch {
-	struct counter_component component;
-	__u8 event;
-	__u8 channel;
-};
-
-/*
- * Queues a Counter watch for the specified event.
- *
- * The queued watches will not be applied until COUNTER_ENABLE_EVENTS_IOCTL is
- * called.
- */
-#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
-/*
- * Enables monitoring the events specified by the Counter watches that were
- * queued by COUNTER_ADD_WATCH_IOCTL.
- *
- * If events are already enabled, the new set of watches replaces the old one.
- * Calling this ioctl also has the effect of clearing the queue of watches added
- * by COUNTER_ADD_WATCH_IOCTL.
- */
-#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
-/*
- * Stops monitoring the previously enabled events.
- */
-#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
-
-/**
- * struct counter_event - Counter event data
- * @timestamp: best estimate of time of event occurrence, in nanoseconds
- * @value: component value
- * @watch: component watch configuration
- * @status: return status (system error number)
- */
-struct counter_event {
-	__aligned_u64 timestamp;
-	__aligned_u64 value;
-	struct counter_watch watch;
-	__u8 status;
-};
-
-/* Count direction values */
-enum counter_count_direction {
-	COUNTER_COUNT_DIRECTION_FORWARD,
-	COUNTER_COUNT_DIRECTION_BACKWARD,
-};
-
-/* Count mode values */
-enum counter_count_mode {
-	COUNTER_COUNT_MODE_NORMAL,
-	COUNTER_COUNT_MODE_RANGE_LIMIT,
-	COUNTER_COUNT_MODE_NON_RECYCLE,
-	COUNTER_COUNT_MODE_MODULO_N,
-};
-
-/* Count function values */
-enum counter_function {
-	COUNTER_FUNCTION_INCREASE,
-	COUNTER_FUNCTION_DECREASE,
-	COUNTER_FUNCTION_PULSE_DIRECTION,
-	COUNTER_FUNCTION_QUADRATURE_X1_A,
-	COUNTER_FUNCTION_QUADRATURE_X1_B,
-	COUNTER_FUNCTION_QUADRATURE_X2_A,
-	COUNTER_FUNCTION_QUADRATURE_X2_B,
-	COUNTER_FUNCTION_QUADRATURE_X4,
-};
-
-/* Signal values */
-enum counter_signal_level {
-	COUNTER_SIGNAL_LEVEL_LOW,
-	COUNTER_SIGNAL_LEVEL_HIGH,
-};
-
-/* Action mode values */
-enum counter_synapse_action {
-	COUNTER_SYNAPSE_ACTION_NONE,
-	COUNTER_SYNAPSE_ACTION_RISING_EDGE,
-	COUNTER_SYNAPSE_ACTION_FALLING_EDGE,
-	COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
-};
-
-#endif /* _UAPI_COUNTER_H_ */
diff --git a/original/uapi/linux/cxl_mem.h b/original/uapi/linux/cxl_mem.h
index 8d206f2..3155382 100644
--- a/original/uapi/linux/cxl_mem.h
+++ b/original/uapi/linux/cxl_mem.h
@@ -29,18 +29,6 @@
 	___C(GET_LSA, "Get Label Storage Area"),                          \
 	___C(GET_HEALTH_INFO, "Get Health Info"),                         \
 	___C(GET_LOG, "Get Log"),                                         \
-	___C(SET_PARTITION_INFO, "Set Partition Information"),            \
-	___C(SET_LSA, "Set Label Storage Area"),                          \
-	___C(GET_ALERT_CONFIG, "Get Alert Configuration"),                \
-	___C(SET_ALERT_CONFIG, "Set Alert Configuration"),                \
-	___C(GET_SHUTDOWN_STATE, "Get Shutdown State"),                   \
-	___C(SET_SHUTDOWN_STATE, "Set Shutdown State"),                   \
-	___C(GET_POISON, "Get Poison List"),                              \
-	___C(INJECT_POISON, "Inject Poison"),                             \
-	___C(CLEAR_POISON, "Clear Poison"),                               \
-	___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"),         \
-	___C(SCAN_MEDIA, "Scan Media"),                                   \
-	___C(GET_SCAN_MEDIA, "Get Scan Media Results"),                   \
 	___C(MAX, "invalid / last command")
 
 #define ___C(a, b) CXL_MEM_COMMAND_ID_##a
@@ -50,7 +38,7 @@
 #define ___C(a, b) { b }
 static const struct {
 	const char *name;
-} cxl_command_names[] __attribute__((__unused__)) = { CXL_CMDS };
+} cxl_command_names[] = { CXL_CMDS };
 
 /*
  * Here's how this actually breaks out:
diff --git a/original/uapi/linux/cyclades.h b/original/uapi/linux/cyclades.h
index 6225c5a..fc0add2 100644
--- a/original/uapi/linux/cyclades.h
+++ b/original/uapi/linux/cyclades.h
@@ -1,27 +1,109 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/* $Revision: 3.0 $$Date: 1998/11/02 14:20:59 $
+ * linux/include/linux/cyclades.h
+ *
+ * This file was initially written by
+ * Randolph Bentson <bentson@grieg.seaslug.org> and is maintained by
+ * Ivan Passos <ivan@cyclades.com>.
+ *
+ * This file contains the general definitions for the cyclades.c driver
+ *$Log: cyclades.h,v $
+ *Revision 3.1  2002/01/29 11:36:16  henrique
+ *added throttle field on struct cyclades_port to indicate whether the
+ *port is throttled or not
+ *
+ *Revision 3.1  2000/04/19 18:52:52  ivan
+ *converted address fields to unsigned long and added fields for physical
+ *addresses on cyclades_card structure;
+ *
+ *Revision 3.0  1998/11/02 14:20:59  ivan
+ *added nports field on cyclades_card structure;
+ *
+ *Revision 2.5  1998/08/03 16:57:01  ivan
+ *added cyclades_idle_stats structure;
+ * 
+ *Revision 2.4  1998/06/01 12:09:53  ivan
+ *removed closing_wait2 from cyclades_port structure;
+ *
+ *Revision 2.3  1998/03/16 18:01:12  ivan
+ *changes in the cyclades_port structure to get it closer to the 
+ *standard serial port structure;
+ *added constants for new ioctls;
+ *
+ *Revision 2.2  1998/02/17 16:50:00  ivan
+ *changes in the cyclades_port structure (addition of shutdown_wait and 
+ *chip_rev variables);
+ *added constants for new ioctls and for CD1400 rev. numbers.
+ *
+ *Revision 2.1	1997/10/24 16:03:00  ivan
+ *added rflow (which allows enabling the CD1400 special flow control 
+ *feature) and rtsdtr_inv (which allows DTR/RTS pin inversion) to 
+ *cyclades_port structure;
+ *added Alpha support
+ *
+ *Revision 2.0  1997/06/30 10:30:00  ivan
+ *added some new doorbell command constants related to IOCTLW and
+ *UART error signaling
+ *
+ *Revision 1.8  1997/06/03 15:30:00  ivan
+ *added constant ZFIRM_HLT
+ *added constant CyPCI_Ze_win ( = 2 * Cy_PCI_Zwin)
+ *
+ *Revision 1.7  1997/03/26 10:30:00  daniel
+ *new entries at the end of cyclades_port struct to reallocate
+ *variables illegally allocated within card memory.
+ *
+ *Revision 1.6  1996/09/09 18:35:30  bentson
+ *fold in changes for Cyclom-Z -- including structures for
+ *communicating with board as well modest changes to original
+ *structures to support new features.
+ *
+ *Revision 1.5  1995/11/13 21:13:31  bentson
+ *changes suggested by Michael Chastain <mec@duracef.shout.net>
+ *to support use of this file in non-kernel applications
+ *
+ *
+ */
 
 #ifndef _UAPI_LINUX_CYCLADES_H
 #define _UAPI_LINUX_CYCLADES_H
 
-#warning "Support for features provided by this header has been removed"
-#warning "Please consider updating your code"
+#include <linux/types.h>
 
 struct cyclades_monitor {
-	unsigned long int_count;
-	unsigned long char_count;
-	unsigned long char_max;
-	unsigned long char_last;
+        unsigned long           int_count;
+        unsigned long           char_count;
+        unsigned long           char_max;
+        unsigned long           char_last;
 };
 
-#define CYGETMON		0x435901
-#define CYGETTHRESH		0x435902
-#define CYSETTHRESH		0x435903
-#define CYGETDEFTHRESH		0x435904
-#define CYSETDEFTHRESH		0x435905
-#define CYGETTIMEOUT		0x435906
-#define CYSETTIMEOUT		0x435907
-#define CYGETDEFTIMEOUT		0x435908
-#define CYSETDEFTIMEOUT		0x435909
+/*
+ * These stats all reflect activity since the device was last initialized.
+ * (i.e., since the port was opened with no other processes already having it
+ * open)
+ */
+struct cyclades_idle_stats {
+    __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 */
+    unsigned long  frame_errs;	/* Input framing errors */
+    unsigned long  parity_errs;	/* Input parity errors */
+};
+
+#define CYCLADES_MAGIC  0x4359
+
+#define CYGETMON                0x435901
+#define CYGETTHRESH             0x435902
+#define CYSETTHRESH             0x435903
+#define CYGETDEFTHRESH          0x435904
+#define CYSETDEFTHRESH          0x435905
+#define CYGETTIMEOUT            0x435906
+#define CYSETTIMEOUT            0x435907
+#define CYGETDEFTIMEOUT         0x435908
+#define CYSETDEFTIMEOUT         0x435909
 #define CYSETRFLOW		0x43590a
 #define CYGETRFLOW		0x43590b
 #define CYSETRTSDTR_INV		0x43590c
@@ -29,7 +111,384 @@
 #define CYZSETPOLLCYCLE		0x43590e
 #define CYZGETPOLLCYCLE		0x43590f
 #define CYGETCD1400VER		0x435910
-#define CYSETWAIT		0x435912
-#define CYGETWAIT		0x435913
+#define	CYSETWAIT		0x435912
+#define	CYGETWAIT		0x435913
+
+/*************** CYCLOM-Z ADDITIONS ***************/
+
+#define CZIOC           ('M' << 8)
+#define CZ_NBOARDS      (CZIOC|0xfa)
+#define CZ_BOOT_START   (CZIOC|0xfb)
+#define CZ_BOOT_DATA    (CZIOC|0xfc)
+#define CZ_BOOT_END     (CZIOC|0xfd)
+#define CZ_TEST         (CZIOC|0xfe)
+
+#define CZ_DEF_POLL	(HZ/25)
+
+#define MAX_BOARD       4       /* Max number of boards */
+#define MAX_DEV         256     /* Max number of ports total */
+#define	CYZ_MAX_SPEED	921600
+
+#define	CYZ_FIFO_SIZE	16
+
+#define CYZ_BOOT_NWORDS 0x100
+struct CYZ_BOOT_CTRL {
+        unsigned short  nboard;
+        int             status[MAX_BOARD];
+        int             nchannel[MAX_BOARD];
+        int             fw_rev[MAX_BOARD];
+        unsigned long   offset;
+        unsigned long   data[CYZ_BOOT_NWORDS];
+};
+
+
+#ifndef DP_WINDOW_SIZE
+/*
+ *	Memory Window Sizes
+ */
+
+#define	DP_WINDOW_SIZE		(0x00080000)	/* window size 512 Kb */
+#define	ZE_DP_WINDOW_SIZE	(0x00100000)	/* window size 1 Mb (Ze and
+						  8Zo V.2 */
+#define	CTRL_WINDOW_SIZE	(0x00000080)	/* runtime regs 128 bytes */
+
+/*
+ *	CUSTOM_REG - Cyclom-Z/PCI Custom Registers Set. The driver
+ *	normally will access only interested on the fpga_id, fpga_version,
+ *	start_cpu and stop_cpu.
+ */
+
+struct	CUSTOM_REG {
+	__u32	fpga_id;		/* FPGA Identification Register */
+	__u32	fpga_version;		/* FPGA Version Number Register */
+	__u32	cpu_start;		/* CPU start Register (write) */
+	__u32	cpu_stop;		/* CPU stop Register (write) */
+	__u32	misc_reg;		/* Miscellaneous Register */
+	__u32	idt_mode;		/* IDT mode Register */
+	__u32	uart_irq_status;	/* UART IRQ status Register */
+	__u32	clear_timer0_irq;	/* Clear timer interrupt Register */
+	__u32	clear_timer1_irq;	/* Clear timer interrupt Register */
+	__u32	clear_timer2_irq;	/* Clear timer interrupt Register */
+	__u32	test_register;		/* Test Register */
+	__u32	test_count;		/* Test Count Register */
+	__u32	timer_select;		/* Timer select register */
+	__u32	pr_uart_irq_status;	/* Prioritized UART IRQ stat Reg */
+	__u32	ram_wait_state;		/* RAM wait-state Register */
+	__u32	uart_wait_state;	/* UART wait-state Register */
+	__u32	timer_wait_state;	/* timer wait-state Register */
+	__u32	ack_wait_state;		/* ACK wait State Register */
+};
+
+/*
+ *	RUNTIME_9060 - PLX PCI9060ES local configuration and shared runtime
+ *	registers. This structure can be used to access the 9060 registers
+ *	(memory mapped).
+ */
+
+struct RUNTIME_9060 {
+	__u32	loc_addr_range;	/* 00h - Local Address Range */
+	__u32	loc_addr_base;	/* 04h - Local Address Base */
+	__u32	loc_arbitr;	/* 08h - Local Arbitration */
+	__u32	endian_descr;	/* 0Ch - Big/Little Endian Descriptor */
+	__u32	loc_rom_range;	/* 10h - Local ROM Range */
+	__u32	loc_rom_base;	/* 14h - Local ROM Base */
+	__u32	loc_bus_descr;	/* 18h - Local Bus descriptor */
+	__u32	loc_range_mst;	/* 1Ch - Local Range for Master to PCI */
+	__u32	loc_base_mst;	/* 20h - Local Base for Master PCI */
+	__u32	loc_range_io;	/* 24h - Local Range for Master IO */
+	__u32	pci_base_mst;	/* 28h - PCI Base for Master PCI */
+	__u32	pci_conf_io;	/* 2Ch - PCI configuration for Master IO */
+	__u32	filler1;	/* 30h */
+	__u32	filler2;	/* 34h */
+	__u32	filler3;	/* 38h */
+	__u32	filler4;	/* 3Ch */
+	__u32	mail_box_0;	/* 40h - Mail Box 0 */
+	__u32	mail_box_1;	/* 44h - Mail Box 1 */
+	__u32	mail_box_2;	/* 48h - Mail Box 2 */
+	__u32	mail_box_3;	/* 4Ch - Mail Box 3 */
+	__u32	filler5;	/* 50h */
+	__u32	filler6;	/* 54h */
+	__u32	filler7;	/* 58h */
+	__u32	filler8;	/* 5Ch */
+	__u32	pci_doorbell;	/* 60h - PCI to Local Doorbell */
+	__u32	loc_doorbell;	/* 64h - Local to PCI Doorbell */
+	__u32	intr_ctrl_stat;	/* 68h - Interrupt Control/Status */
+	__u32	init_ctrl;	/* 6Ch - EEPROM control, Init Control, etc */
+};
+
+/* Values for the Local Base Address re-map register */
+
+#define	WIN_RAM		0x00000001L	/* set the sliding window to RAM */
+#define	WIN_CREG	0x14000001L	/* set the window to custom Registers */
+
+/* Values timer select registers */
+
+#define	TIMER_BY_1M	0x00		/* clock divided by 1M */
+#define	TIMER_BY_256K	0x01		/* clock divided by 256k */
+#define	TIMER_BY_128K	0x02		/* clock divided by 128k */
+#define	TIMER_BY_32K	0x03		/* clock divided by 32k */
+
+/****************** ****************** *******************/
+#endif
+
+#ifndef ZFIRM_ID
+/* #include "zfwint.h" */
+/****************** ****************** *******************/
+/*
+ *	This file contains the definitions for interfacing with the
+ *	Cyclom-Z ZFIRM Firmware.
+ */
+
+/* General Constant definitions */
+
+#define	MAX_CHAN	64		/* max number of channels per board */
+
+/* firmware id structure (set after boot) */
+
+#define ID_ADDRESS	0x00000180L	/* signature/pointer address */
+#define	ZFIRM_ID	0x5557465AL	/* ZFIRM/U signature */
+#define	ZFIRM_HLT	0x59505B5CL	/* ZFIRM needs external power supply */
+#define	ZFIRM_RST	0x56040674L	/* RST signal (due to FW reset) */
+
+#define	ZF_TINACT_DEF	1000		/* default inactivity timeout 
+					   (1000 ms) */
+#define	ZF_TINACT	ZF_TINACT_DEF
+
+struct	FIRM_ID {
+	__u32	signature;		/* ZFIRM/U signature */
+	__u32	zfwctrl_addr;		/* pointer to ZFW_CTRL structure */
+};
+
+/* Op. System id */
+
+#define	C_OS_LINUX	0x00000030	/* generic Linux system */
+
+/* channel op_mode */
+
+#define	C_CH_DISABLE	0x00000000	/* channel is disabled */
+#define	C_CH_TXENABLE	0x00000001	/* channel Tx enabled */
+#define	C_CH_RXENABLE	0x00000002	/* channel Rx enabled */
+#define	C_CH_ENABLE	0x00000003	/* channel Tx/Rx enabled */
+#define	C_CH_LOOPBACK	0x00000004	/* Loopback mode */
+
+/* comm_parity - parity */
+
+#define	C_PR_NONE	0x00000000	/* None */
+#define	C_PR_ODD	0x00000001	/* Odd */
+#define C_PR_EVEN	0x00000002	/* Even */
+#define C_PR_MARK	0x00000004	/* Mark */
+#define C_PR_SPACE	0x00000008	/* Space */
+#define C_PR_PARITY	0x000000ff
+
+#define	C_PR_DISCARD	0x00000100	/* discard char with frame/par error */
+#define C_PR_IGNORE	0x00000200	/* ignore frame/par error */
+
+/* comm_data_l - data length and stop bits */
+
+#define C_DL_CS5	0x00000001
+#define C_DL_CS6	0x00000002
+#define C_DL_CS7	0x00000004
+#define C_DL_CS8	0x00000008
+#define	C_DL_CS		0x0000000f
+#define C_DL_1STOP	0x00000010
+#define C_DL_15STOP	0x00000020
+#define C_DL_2STOP	0x00000040
+#define	C_DL_STOP	0x000000f0
+
+/* interrupt enabling/status */
+
+#define	C_IN_DISABLE	0x00000000	/* zero, disable interrupts */
+#define	C_IN_TXBEMPTY	0x00000001	/* tx buffer empty */
+#define	C_IN_TXLOWWM	0x00000002	/* tx buffer below LWM */
+#define	C_IN_RXHIWM	0x00000010	/* rx buffer above HWM */
+#define	C_IN_RXNNDT	0x00000020	/* rx no new data timeout */
+#define	C_IN_MDCD	0x00000100	/* modem DCD change */
+#define	C_IN_MDSR	0x00000200	/* modem DSR change */
+#define	C_IN_MRI	0x00000400	/* modem RI change */
+#define	C_IN_MCTS	0x00000800	/* modem CTS change */
+#define	C_IN_RXBRK	0x00001000	/* Break received */
+#define	C_IN_PR_ERROR	0x00002000	/* parity error */
+#define	C_IN_FR_ERROR	0x00004000	/* frame error */
+#define C_IN_OVR_ERROR  0x00008000      /* overrun error */
+#define C_IN_RXOFL	0x00010000      /* RX buffer overflow */
+#define C_IN_IOCTLW	0x00020000      /* I/O control w/ wait */
+#define C_IN_MRTS	0x00040000	/* modem RTS drop */
+#define C_IN_ICHAR	0x00080000
+ 
+/* flow control */
+
+#define	C_FL_OXX	0x00000001	/* output Xon/Xoff flow control */
+#define	C_FL_IXX	0x00000002	/* output Xon/Xoff flow control */
+#define C_FL_OIXANY	0x00000004	/* output Xon/Xoff (any xon) */
+#define	C_FL_SWFLOW	0x0000000f
+
+/* flow status */
+
+#define	C_FS_TXIDLE	0x00000000	/* no Tx data in the buffer or UART */
+#define	C_FS_SENDING	0x00000001	/* UART is sending data */
+#define	C_FS_SWFLOW	0x00000002	/* Tx is stopped by received Xoff */
+
+/* rs_control/rs_status RS-232 signals */
+
+#define C_RS_PARAM	0x80000000	/* Indicates presence of parameter in 
+					   IOCTLM command */
+#define	C_RS_RTS	0x00000001	/* RTS */
+#define	C_RS_DTR	0x00000004	/* DTR */
+#define	C_RS_DCD	0x00000100	/* CD */
+#define	C_RS_DSR	0x00000200	/* DSR */
+#define	C_RS_RI		0x00000400	/* RI */
+#define	C_RS_CTS	0x00000800	/* CTS */
+
+/* commands Host <-> Board */
+
+#define	C_CM_RESET	0x01		/* reset/flush buffers */
+#define	C_CM_IOCTL	0x02		/* re-read CH_CTRL */
+#define	C_CM_IOCTLW	0x03		/* re-read CH_CTRL, intr when done */
+#define	C_CM_IOCTLM	0x04		/* RS-232 outputs change */
+#define	C_CM_SENDXOFF	0x10		/* send Xoff */
+#define	C_CM_SENDXON	0x11		/* send Xon */
+#define C_CM_CLFLOW	0x12		/* Clear flow control (resume) */
+#define	C_CM_SENDBRK	0x41		/* send break */
+#define	C_CM_INTBACK	0x42		/* Interrupt back */
+#define	C_CM_SET_BREAK	0x43		/* Tx break on */
+#define	C_CM_CLR_BREAK	0x44		/* Tx break off */
+#define	C_CM_CMD_DONE	0x45		/* Previous command done */
+#define C_CM_INTBACK2	0x46		/* Alternate Interrupt back */
+#define	C_CM_TINACT	0x51		/* set inactivity detection */
+#define	C_CM_IRQ_ENBL	0x52		/* enable generation of interrupts */
+#define	C_CM_IRQ_DSBL	0x53		/* disable generation of interrupts */
+#define	C_CM_ACK_ENBL	0x54		/* enable acknowledged interrupt mode */
+#define	C_CM_ACK_DSBL	0x55		/* disable acknowledged intr mode */
+#define	C_CM_FLUSH_RX	0x56		/* flushes Rx buffer */
+#define	C_CM_FLUSH_TX	0x57		/* flushes Tx buffer */
+#define C_CM_Q_ENABLE	0x58		/* enables queue access from the 
+					   driver */
+#define C_CM_Q_DISABLE  0x59            /* disables queue access from the 
+					   driver */
+
+#define	C_CM_TXBEMPTY	0x60		/* Tx buffer is empty */
+#define	C_CM_TXLOWWM	0x61		/* Tx buffer low water mark */
+#define	C_CM_RXHIWM	0x62		/* Rx buffer high water mark */
+#define	C_CM_RXNNDT	0x63		/* rx no new data timeout */
+#define	C_CM_TXFEMPTY	0x64
+#define	C_CM_ICHAR	0x65
+#define	C_CM_MDCD	0x70		/* modem DCD change */
+#define	C_CM_MDSR	0x71		/* modem DSR change */
+#define	C_CM_MRI	0x72		/* modem RI change */
+#define	C_CM_MCTS	0x73		/* modem CTS change */
+#define C_CM_MRTS	0x74		/* modem RTS drop */
+#define	C_CM_RXBRK	0x84		/* Break received */
+#define	C_CM_PR_ERROR	0x85		/* Parity error */
+#define	C_CM_FR_ERROR	0x86		/* Frame error */
+#define C_CM_OVR_ERROR  0x87            /* Overrun error */
+#define C_CM_RXOFL	0x88            /* RX buffer overflow */
+#define	C_CM_CMDERROR	0x90		/* command error */
+#define	C_CM_FATAL	0x91		/* fatal error */
+#define	C_CM_HW_RESET	0x92		/* reset board */
+
+/*
+ *	CH_CTRL - This per port structure contains all parameters
+ *	that control an specific port. It can be seen as the
+ *	configuration registers of a "super-serial-controller".
+ */
+
+struct CH_CTRL {
+	__u32	op_mode;	/* operation mode */
+	__u32	intr_enable;	/* interrupt masking */
+	__u32	sw_flow;	/* SW flow control */
+	__u32	flow_status;	/* output flow status */
+	__u32	comm_baud;	/* baud rate  - numerically specified */
+	__u32	comm_parity;	/* parity */
+	__u32	comm_data_l;	/* data length/stop */
+	__u32	comm_flags;	/* other flags */
+	__u32	hw_flow;	/* HW flow control */
+	__u32	rs_control;	/* RS-232 outputs */
+	__u32	rs_status;	/* RS-232 inputs */
+	__u32	flow_xon;	/* xon char */
+	__u32	flow_xoff;	/* xoff char */
+	__u32	hw_overflow;	/* hw overflow counter */
+	__u32	sw_overflow;	/* sw overflow counter */
+	__u32	comm_error;	/* frame/parity error counter */
+	__u32 ichar;
+	__u32 filler[7];
+};
+
+
+/*
+ *	BUF_CTRL - This per channel structure contains
+ *	all Tx and Rx buffer control for a given channel.
+ */
+
+struct	BUF_CTRL	{
+	__u32	flag_dma;	/* buffers are in Host memory */
+	__u32	tx_bufaddr;	/* address of the tx buffer */
+	__u32	tx_bufsize;	/* tx buffer size */
+	__u32	tx_threshold;	/* tx low water mark */
+	__u32	tx_get;		/* tail index tx buf */
+	__u32	tx_put;		/* head index tx buf */
+	__u32	rx_bufaddr;	/* address of the rx buffer */
+	__u32	rx_bufsize;	/* rx buffer size */
+	__u32	rx_threshold;	/* rx high water mark */
+	__u32	rx_get;		/* tail index rx buf */
+	__u32	rx_put;		/* head index rx buf */
+	__u32	filler[5];	/* filler to align structures */
+};
+
+/*
+ *	BOARD_CTRL - This per board structure contains all global 
+ *	control fields related to the board.
+ */
+
+struct BOARD_CTRL {
+
+	/* static info provided by the on-board CPU */
+	__u32	n_channel;	/* number of channels */
+	__u32	fw_version;	/* firmware version */
+
+	/* static info provided by the driver */
+	__u32	op_system;	/* op_system id */
+	__u32	dr_version;	/* driver version */
+
+	/* board control area */
+	__u32	inactivity;	/* inactivity control */
+
+	/* host to FW commands */
+	__u32	hcmd_channel;	/* channel number */
+	__u32	hcmd_param;	/* pointer to parameters */
+
+	/* FW to Host commands */
+	__u32	fwcmd_channel;	/* channel number */
+	__u32	fwcmd_param;	/* pointer to parameters */
+	__u32	zf_int_queue_addr; /* offset for INT_QUEUE structure */
+
+	/* filler so the structures are aligned */
+	__u32	filler[6];
+};
+
+/* Host Interrupt Queue */
+
+#define QUEUE_SIZE	(10*MAX_CHAN)
+
+struct	INT_QUEUE {
+	unsigned char	intr_code[QUEUE_SIZE];
+	unsigned long	channel[QUEUE_SIZE];
+	unsigned long	param[QUEUE_SIZE];
+	unsigned long	put;
+	unsigned long	get;
+};
+
+/*
+ *	ZFW_CTRL - This is the data structure that includes all other
+ *	data structures used by the Firmware.
+ */
+ 
+struct ZFW_CTRL {
+	struct BOARD_CTRL	board_ctrl;
+	struct CH_CTRL		ch_ctrl[MAX_CHAN];
+	struct BUF_CTRL		buf_ctrl[MAX_CHAN];
+};
+
+/****************** ****************** *******************/
+#endif
 
 #endif /* _UAPI_LINUX_CYCLADES_H */
diff --git a/original/uapi/linux/devlink.h b/original/uapi/linux/devlink.h
index b897b80..f6008b2 100644
--- a/original/uapi/linux/devlink.h
+++ b/original/uapi/linux/devlink.h
@@ -126,11 +126,6 @@
 
 	DEVLINK_CMD_HEALTH_REPORTER_TEST,
 
-	DEVLINK_CMD_RATE_GET,		/* can dump */
-	DEVLINK_CMD_RATE_SET,
-	DEVLINK_CMD_RATE_NEW,
-	DEVLINK_CMD_RATE_DEL,
-
 	/* add new commands above here */
 	__DEVLINK_CMD_MAX,
 	DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
@@ -211,11 +206,6 @@
 				      */
 };
 
-enum devlink_rate_type {
-	DEVLINK_RATE_TYPE_LEAF,
-	DEVLINK_RATE_TYPE_NODE,
-};
-
 enum devlink_param_cmode {
 	DEVLINK_PARAM_CMODE_RUNTIME,
 	DEVLINK_PARAM_CMODE_DRIVERINIT,
@@ -544,15 +534,6 @@
 	DEVLINK_ATTR_RELOAD_ACTION_STATS,       /* nested */
 
 	DEVLINK_ATTR_PORT_PCI_SF_NUMBER,	/* u32 */
-
-	DEVLINK_ATTR_RATE_TYPE,			/* u16 */
-	DEVLINK_ATTR_RATE_TX_SHARE,		/* u64 */
-	DEVLINK_ATTR_RATE_TX_MAX,		/* u64 */
-	DEVLINK_ATTR_RATE_NODE_NAME,		/* string */
-	DEVLINK_ATTR_RATE_PARENT_NODE_NAME,	/* string */
-
-	DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,	/* u32 */
-
 	/* add new attributes above here, update the policy in devlink.c */
 
 	__DEVLINK_ATTR_MAX,
diff --git a/original/uapi/linux/dlm_device.h b/original/uapi/linux/dlm_device.h
index e83954c..f880d28 100644
--- a/original/uapi/linux/dlm_device.h
+++ b/original/uapi/linux/dlm_device.h
@@ -45,13 +45,13 @@
 	void __user *bastaddr;
 	struct dlm_lksb __user *lksb;
 	char lvb[DLM_USER_LVB_LEN];
-	char name[];
+	char name[0];
 };
 
 struct dlm_lspace_params {
 	__u32 flags;
 	__u32 minor;
-	char name[];
+	char name[0];
 };
 
 struct dlm_purge_params {
diff --git a/original/uapi/linux/dm-ioctl.h b/original/uapi/linux/dm-ioctl.h
index c12ce30..fcff666 100644
--- a/original/uapi/linux/dm-ioctl.h
+++ b/original/uapi/linux/dm-ioctl.h
@@ -193,22 +193,8 @@
 	__u32 next;		/* offset to the next record from
 				   the _start_ of this */
 	char name[0];
-
-	/*
-	 * The following members can be accessed by taking a pointer that
-	 * points immediately after the terminating zero character in "name"
-	 * and aligning this pointer to next 8-byte boundary.
-	 * Uuid is present if the flag DM_NAME_LIST_FLAG_HAS_UUID is set.
-	 *
-	 * __u32 event_nr;
-	 * __u32 flags;
-	 * char uuid[0];
-	 */
 };
 
-#define DM_NAME_LIST_FLAG_HAS_UUID		1
-#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID	2
-
 /*
  * Used to retrieve the target versions
  */
@@ -286,9 +272,9 @@
 #define DM_DEV_SET_GEOMETRY	_IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 
 #define DM_VERSION_MAJOR	4
-#define DM_VERSION_MINOR	45
+#define DM_VERSION_MINOR	44
 #define DM_VERSION_PATCHLEVEL	0
-#define DM_VERSION_EXTRA	"-ioctl (2021-03-22)"
+#define DM_VERSION_EXTRA	"-ioctl (2021-02-01)"
 
 /* Status bits */
 #define DM_READONLY_FLAG	(1 << 0) /* In/Out */
@@ -376,10 +362,4 @@
  */
 #define DM_INTERNAL_SUSPEND_FLAG	(1 << 18) /* Out */
 
-/*
- * If set, returns in the in buffer passed by UM, the raw table information
- * that would be measured by IMA subsystem on device state change.
- */
-#define DM_IMA_MEASUREMENT_FLAG	(1 << 19) /* In */
-
 #endif				/* _LINUX_DM_IOCTL_H */
diff --git a/original/uapi/linux/dma-buf.h b/original/uapi/linux/dma-buf.h
index 8e4a2ca..7f30393 100644
--- a/original/uapi/linux/dma-buf.h
+++ b/original/uapi/linux/dma-buf.h
@@ -22,56 +22,8 @@
 
 #include <linux/types.h>
 
-/**
- * struct dma_buf_sync - Synchronize with CPU access.
- *
- * When a DMA buffer is accessed from the CPU via mmap, it is not always
- * possible to guarantee coherency between the CPU-visible map and underlying
- * memory.  To manage coherency, DMA_BUF_IOCTL_SYNC must be used to bracket
- * any CPU access to give the kernel the chance to shuffle memory around if
- * needed.
- *
- * Prior to accessing the map, the client must call DMA_BUF_IOCTL_SYNC
- * with DMA_BUF_SYNC_START and the appropriate read/write flags.  Once the
- * access is complete, the client should call DMA_BUF_IOCTL_SYNC with
- * DMA_BUF_SYNC_END and the same read/write flags.
- *
- * The synchronization provided via DMA_BUF_IOCTL_SYNC only provides cache
- * coherency.  It does not prevent other processes or devices from
- * accessing the memory at the same time.  If synchronization with a GPU or
- * other device driver is required, it is the client's responsibility to
- * wait for buffer to be ready for reading or writing before calling this
- * ioctl with DMA_BUF_SYNC_START.  Likewise, the client must ensure that
- * follow-up work is not submitted to GPU or other device driver until
- * after this ioctl has been called with DMA_BUF_SYNC_END?
- *
- * If the driver or API with which the client is interacting uses implicit
- * synchronization, waiting for prior work to complete can be done via
- * poll() on the DMA buffer file descriptor.  If the driver or API requires
- * explicit synchronization, the client may have to wait on a sync_file or
- * other synchronization primitive outside the scope of the DMA buffer API.
- */
+/* begin/end dma-buf functions used for userspace mmap. */
 struct dma_buf_sync {
-	/**
-	 * @flags: Set of access flags
-	 *
-	 * DMA_BUF_SYNC_START:
-	 *     Indicates the start of a map access session.
-	 *
-	 * DMA_BUF_SYNC_END:
-	 *     Indicates the end of a map access session.
-	 *
-	 * DMA_BUF_SYNC_READ:
-	 *     Indicates that the mapped DMA buffer will be read by the
-	 *     client via the CPU map.
-	 *
-	 * DMA_BUF_SYNC_WRITE:
-	 *     Indicates that the mapped DMA buffer will be written by the
-	 *     client via the CPU map.
-	 *
-	 * DMA_BUF_SYNC_RW:
-	 *     An alias for DMA_BUF_SYNC_READ | DMA_BUF_SYNC_WRITE.
-	 */
 	__u64 flags;
 };
 
diff --git a/original/uapi/linux/dqblk_xfs.h b/original/uapi/linux/dqblk_xfs.h
index 8cda3e6..c71d909 100644
--- a/original/uapi/linux/dqblk_xfs.h
+++ b/original/uapi/linux/dqblk_xfs.h
@@ -219,10 +219,7 @@
 	__s32			qs_rtbtimelimit;/* limit for rt blks timer */
 	__u16			qs_bwarnlimit;	/* limit for num warnings */
 	__u16			qs_iwarnlimit;	/* limit for num warnings */
-	__u16			qs_rtbwarnlimit;/* limit for rt blks warnings */
-	__u16			qs_pad3;
-	__u32			qs_pad4;
-	__u64			qs_pad2[7];	/* for future proofing */
+	__u64			qs_pad2[8];	/* for future proofing */
 };
 
 #endif	/* _LINUX_DQBLK_XFS_H */
diff --git a/original/uapi/linux/elf.h b/original/uapi/linux/elf.h
index 61bf477..30f68b4 100644
--- a/original/uapi/linux/elf.h
+++ b/original/uapi/linux/elf.h
@@ -426,7 +426,6 @@
 #define NT_ARM_PACA_KEYS	0x407	/* ARM pointer authentication address keys */
 #define NT_ARM_PACG_KEYS	0x408	/* ARM pointer authentication generic key */
 #define NT_ARM_TAGGED_ADDR_CTRL	0x409	/* arm64 tagged address control (prctl()) */
-#define NT_ARM_PAC_ENABLED_KEYS	0x40a	/* arm64 ptr auth enabled keys (prctl()) */
 #define NT_ARC_V2	0x600		/* ARCv2 accumulator/extra registers */
 #define NT_VMCOREDD	0x700		/* Vmcore Device Dump Note */
 #define NT_MIPS_DSP	0x800		/* MIPS DSP ASE registers */
diff --git a/original/uapi/linux/ethtool.h b/original/uapi/linux/ethtool.h
index 7bc4b8d..5afea69 100644
--- a/original/uapi/linux/ethtool.h
+++ b/original/uapi/linux/ethtool.h
@@ -231,10 +231,9 @@
 	ETHTOOL_RX_COPYBREAK,
 	ETHTOOL_TX_COPYBREAK,
 	ETHTOOL_PFC_PREVENTION_TOUT, /* timeout in msecs */
-	ETHTOOL_TX_COPYBREAK_BUF_SIZE,
 	/*
 	 * Add your fresh new tunable attribute above and remember to update
-	 * tunable_strings[] in net/ethtool/common.c
+	 * tunable_strings[] in net/core/ethtool.c
 	 */
 	__ETHTOOL_TUNABLE_COUNT,
 };
@@ -298,7 +297,7 @@
 	ETHTOOL_PHY_EDPD,
 	/*
 	 * Add your fresh new phy tunable attribute above and remember to update
-	 * phy_tunable_strings[] in net/ethtool/common.c
+	 * phy_tunable_strings[] in net/core/ethtool.c
 	 */
 	__ETHTOOL_PHY_TUNABLE_COUNT,
 };
@@ -604,7 +603,6 @@
 	ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
 	ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
 	ETHTOOL_LINK_EXT_STATE_OVERHEAT,
-	ETHTOOL_LINK_EXT_STATE_MODULE,
 };
 
 /* More information in addition to ETHTOOL_LINK_EXT_STATE_AUTONEG. */
@@ -641,8 +639,6 @@
 enum ethtool_link_ext_substate_bad_signal_integrity {
 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
 	ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
-	ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
-	ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
 };
 
 /* More information in addition to ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE. */
@@ -651,11 +647,6 @@
 	ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
 };
 
-/* More information in addition to ETHTOOL_LINK_EXT_STATE_MODULE. */
-enum ethtool_link_ext_substate_module {
-	ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
-};
-
 #define ETH_GSTRING_LEN		32
 
 /**
@@ -678,11 +669,6 @@
  * @ETH_SS_TS_TX_TYPES: timestamping Tx types
  * @ETH_SS_TS_RX_FILTERS: timestamping Rx filters
  * @ETH_SS_UDP_TUNNEL_TYPES: UDP tunnel types
- * @ETH_SS_STATS_STD: standardized stats
- * @ETH_SS_STATS_ETH_PHY: names of IEEE 802.3 PHY statistics
- * @ETH_SS_STATS_ETH_MAC: names of IEEE 802.3 MAC statistics
- * @ETH_SS_STATS_ETH_CTRL: names of IEEE 802.3 MAC Control statistics
- * @ETH_SS_STATS_RMON: names of RMON statistics
  *
  * @ETH_SS_COUNT: number of defined string sets
  */
@@ -703,40 +689,12 @@
 	ETH_SS_TS_TX_TYPES,
 	ETH_SS_TS_RX_FILTERS,
 	ETH_SS_UDP_TUNNEL_TYPES,
-	ETH_SS_STATS_STD,
-	ETH_SS_STATS_ETH_PHY,
-	ETH_SS_STATS_ETH_MAC,
-	ETH_SS_STATS_ETH_CTRL,
-	ETH_SS_STATS_RMON,
 
 	/* add new constants above here */
 	ETH_SS_COUNT
 };
 
 /**
- * enum ethtool_module_power_mode_policy - plug-in module power mode policy
- * @ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH: Module is always in high power mode.
- * @ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO: Module is transitioned by the host
- *	to high power mode when the first port using it is put administratively
- *	up and to low power mode when the last port using it is put
- *	administratively down.
- */
-enum ethtool_module_power_mode_policy {
-	ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
-	ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
-};
-
-/**
- * enum ethtool_module_power_mode - plug-in module power mode
- * @ETHTOOL_MODULE_POWER_MODE_LOW: Module is in low power mode.
- * @ETHTOOL_MODULE_POWER_MODE_HIGH: Module is in high power mode.
- */
-enum ethtool_module_power_mode {
-	ETHTOOL_MODULE_POWER_MODE_LOW = 1,
-	ETHTOOL_MODULE_POWER_MODE_HIGH,
-};
-
-/**
  * struct ethtool_gstrings - string set for data tagging
  * @cmd: Command number = %ETHTOOL_GSTRINGS
  * @string_set: String set ID; one of &enum ethtool_stringset
@@ -1425,33 +1383,15 @@
 };
 
 /**
- * struct ethtool_fecparam - Ethernet Forward Error Correction parameters
+ * struct ethtool_fecparam - Ethernet forward error correction(fec) parameters
  * @cmd: Command number = %ETHTOOL_GFECPARAM or %ETHTOOL_SFECPARAM
- * @active_fec: FEC mode which is active on the port, single bit set, GET only.
- * @fec: Bitmask of configured FEC modes.
- * @reserved: Reserved for future extensions, ignore on GET, write 0 for SET.
+ * @active_fec: FEC mode which is active on porte
+ * @fec: Bitmask of supported/configured FEC modes
+ * @rsvd: Reserved for future extensions. i.e FEC bypass feature.
  *
- * Note that @reserved was never validated on input and ethtool user space
- * left it uninitialized when calling SET. Hence going forward it can only be
- * used to return a value to userspace with GET.
+ * Drivers should reject a non-zero setting of @autoneg when
+ * autoneogotiation is disabled (or not supported) for the link.
  *
- * FEC modes supported by the device can be read via %ETHTOOL_GLINKSETTINGS.
- * FEC settings are configured by link autonegotiation whenever it's enabled.
- * With autoneg on %ETHTOOL_GFECPARAM can be used to read the current mode.
- *
- * When autoneg is disabled %ETHTOOL_SFECPARAM controls the FEC settings.
- * It is recommended that drivers only accept a single bit set in @fec.
- * When multiple bits are set in @fec drivers may pick mode in an implementation
- * dependent way. Drivers should reject mixing %ETHTOOL_FEC_AUTO_BIT with other
- * FEC modes, because it's unclear whether in this case other modes constrain
- * AUTO or are independent choices.
- * Drivers must reject SET requests if they support none of the requested modes.
- *
- * If device does not support FEC drivers may use %ETHTOOL_FEC_NONE instead
- * of returning %EOPNOTSUPP from %ETHTOOL_GFECPARAM.
- *
- * See enum ethtool_fec_config_bits for definition of valid bits for both
- * @fec and @active_fec.
  */
 struct ethtool_fecparam {
 	__u32   cmd;
@@ -1463,16 +1403,11 @@
 
 /**
  * enum ethtool_fec_config_bits - flags definition of ethtool_fec_configuration
- * @ETHTOOL_FEC_NONE_BIT: FEC mode configuration is not supported. Should not
- *			be used together with other bits. GET only.
- * @ETHTOOL_FEC_AUTO_BIT: Select default/best FEC mode automatically, usually
- *			based link mode and SFP parameters read from module's
- *			EEPROM. This bit does _not_ mean autonegotiation.
- * @ETHTOOL_FEC_OFF_BIT: No FEC Mode
- * @ETHTOOL_FEC_RS_BIT: Reed-Solomon FEC Mode
- * @ETHTOOL_FEC_BASER_BIT: Base-R/Reed-Solomon FEC Mode
- * @ETHTOOL_FEC_LLRS_BIT: Low Latency Reed Solomon FEC Mode (25G/50G Ethernet
- *			Consortium)
+ * @ETHTOOL_FEC_NONE: FEC mode configuration is not supported
+ * @ETHTOOL_FEC_AUTO: Default/Best FEC mode provided by driver
+ * @ETHTOOL_FEC_OFF: No FEC Mode
+ * @ETHTOOL_FEC_RS: Reed-Solomon Forward Error Detection mode
+ * @ETHTOOL_FEC_BASER: Base-R/Reed-Solomon Forward Error Detection mode
  */
 enum ethtool_fec_config_bits {
 	ETHTOOL_FEC_NONE_BIT,
diff --git a/original/uapi/linux/ethtool_netlink.h b/original/uapi/linux/ethtool_netlink.h
index cca6e47..a286635 100644
--- a/original/uapi/linux/ethtool_netlink.h
+++ b/original/uapi/linux/ethtool_netlink.h
@@ -42,13 +42,6 @@
 	ETHTOOL_MSG_CABLE_TEST_ACT,
 	ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
 	ETHTOOL_MSG_TUNNEL_INFO_GET,
-	ETHTOOL_MSG_FEC_GET,
-	ETHTOOL_MSG_FEC_SET,
-	ETHTOOL_MSG_MODULE_EEPROM_GET,
-	ETHTOOL_MSG_STATS_GET,
-	ETHTOOL_MSG_PHC_VCLOCKS_GET,
-	ETHTOOL_MSG_MODULE_GET,
-	ETHTOOL_MSG_MODULE_SET,
 
 	/* add new constants above here */
 	__ETHTOOL_MSG_USER_CNT,
@@ -87,13 +80,6 @@
 	ETHTOOL_MSG_CABLE_TEST_NTF,
 	ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
 	ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
-	ETHTOOL_MSG_FEC_GET_REPLY,
-	ETHTOOL_MSG_FEC_NTF,
-	ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
-	ETHTOOL_MSG_STATS_GET_REPLY,
-	ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
-	ETHTOOL_MSG_MODULE_GET_REPLY,
-	ETHTOOL_MSG_MODULE_NTF,
 
 	/* add new constants above here */
 	__ETHTOOL_MSG_KERNEL_CNT,
@@ -329,7 +315,6 @@
 	ETHTOOL_A_RINGS_RX_MINI,			/* u32 */
 	ETHTOOL_A_RINGS_RX_JUMBO,			/* u32 */
 	ETHTOOL_A_RINGS_TX,				/* u32 */
-	ETHTOOL_A_RINGS_RX_BUF_LEN,                     /* u32 */
 
 	/* add new constants above here */
 	__ETHTOOL_A_RINGS_CNT,
@@ -382,8 +367,6 @@
 	ETHTOOL_A_COALESCE_TX_USECS_HIGH,		/* u32 */
 	ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,		/* u32 */
 	ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,	/* u32 */
-	ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,		/* u8 */
-	ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,		/* u8 */
 
 	/* add new constants above here */
 	__ETHTOOL_A_COALESCE_CNT,
@@ -412,9 +395,7 @@
 	ETHTOOL_A_PAUSE_STAT_TX_FRAMES,
 	ETHTOOL_A_PAUSE_STAT_RX_FRAMES,
 
-	/* add new constants above here
-	 * adjust ETHTOOL_PAUSE_STAT_CNT if adding non-stats!
-	 */
+	/* add new constants above here */
 	__ETHTOOL_A_PAUSE_STAT_CNT,
 	ETHTOOL_A_PAUSE_STAT_MAX = (__ETHTOOL_A_PAUSE_STAT_CNT - 1)
 };
@@ -451,19 +432,6 @@
 	ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 
-/* PHC VCLOCKS */
-
-enum {
-	ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
-	ETHTOOL_A_PHC_VCLOCKS_HEADER,			/* nest - _A_HEADER_* */
-	ETHTOOL_A_PHC_VCLOCKS_NUM,			/* u32 */
-	ETHTOOL_A_PHC_VCLOCKS_INDEX,			/* array, s32 */
-
-	/* add new constants above here */
-	__ETHTOOL_A_PHC_VCLOCKS_CNT,
-	ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
-};
-
 /* CABLE TEST */
 
 enum {
@@ -661,198 +629,6 @@
 	ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
 };
 
-/* FEC */
-
-enum {
-	ETHTOOL_A_FEC_UNSPEC,
-	ETHTOOL_A_FEC_HEADER,				/* nest - _A_HEADER_* */
-	ETHTOOL_A_FEC_MODES,				/* bitset */
-	ETHTOOL_A_FEC_AUTO,				/* u8 */
-	ETHTOOL_A_FEC_ACTIVE,				/* u32 */
-	ETHTOOL_A_FEC_STATS,				/* nest - _A_FEC_STAT */
-
-	__ETHTOOL_A_FEC_CNT,
-	ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
-};
-
-enum {
-	ETHTOOL_A_FEC_STAT_UNSPEC,
-	ETHTOOL_A_FEC_STAT_PAD,
-
-	ETHTOOL_A_FEC_STAT_CORRECTED,			/* array, u64 */
-	ETHTOOL_A_FEC_STAT_UNCORR,			/* array, u64 */
-	ETHTOOL_A_FEC_STAT_CORR_BITS,			/* array, u64 */
-
-	/* add new constants above here */
-	__ETHTOOL_A_FEC_STAT_CNT,
-	ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
-};
-
-/* MODULE EEPROM */
-
-enum {
-	ETHTOOL_A_MODULE_EEPROM_UNSPEC,
-	ETHTOOL_A_MODULE_EEPROM_HEADER,			/* nest - _A_HEADER_* */
-
-	ETHTOOL_A_MODULE_EEPROM_OFFSET,			/* u32 */
-	ETHTOOL_A_MODULE_EEPROM_LENGTH,			/* u32 */
-	ETHTOOL_A_MODULE_EEPROM_PAGE,			/* u8 */
-	ETHTOOL_A_MODULE_EEPROM_BANK,			/* u8 */
-	ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,		/* u8 */
-	ETHTOOL_A_MODULE_EEPROM_DATA,			/* binary */
-
-	__ETHTOOL_A_MODULE_EEPROM_CNT,
-	ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
-};
-
-/* STATS */
-
-enum {
-	ETHTOOL_A_STATS_UNSPEC,
-	ETHTOOL_A_STATS_PAD,
-	ETHTOOL_A_STATS_HEADER,			/* nest - _A_HEADER_* */
-	ETHTOOL_A_STATS_GROUPS,			/* bitset */
-
-	ETHTOOL_A_STATS_GRP,			/* nest - _A_STATS_GRP_* */
-
-	/* add new constants above here */
-	__ETHTOOL_A_STATS_CNT,
-	ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
-};
-
-enum {
-	ETHTOOL_STATS_ETH_PHY,
-	ETHTOOL_STATS_ETH_MAC,
-	ETHTOOL_STATS_ETH_CTRL,
-	ETHTOOL_STATS_RMON,
-
-	/* add new constants above here */
-	__ETHTOOL_STATS_CNT
-};
-
-enum {
-	ETHTOOL_A_STATS_GRP_UNSPEC,
-	ETHTOOL_A_STATS_GRP_PAD,
-
-	ETHTOOL_A_STATS_GRP_ID,			/* u32 */
-	ETHTOOL_A_STATS_GRP_SS_ID,		/* u32 */
-
-	ETHTOOL_A_STATS_GRP_STAT,		/* nest */
-
-	ETHTOOL_A_STATS_GRP_HIST_RX,		/* nest */
-	ETHTOOL_A_STATS_GRP_HIST_TX,		/* nest */
-
-	ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,	/* u32 */
-	ETHTOOL_A_STATS_GRP_HIST_BKT_HI,	/* u32 */
-	ETHTOOL_A_STATS_GRP_HIST_VAL,		/* u64 */
-
-	/* add new constants above here */
-	__ETHTOOL_A_STATS_GRP_CNT,
-	ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
-};
-
-enum {
-	/* 30.3.2.1.5 aSymbolErrorDuringCarrier */
-	ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
-
-	/* add new constants above here */
-	__ETHTOOL_A_STATS_ETH_PHY_CNT,
-	ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
-};
-
-enum {
-	/* 30.3.1.1.2 aFramesTransmittedOK */
-	ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
-	/* 30.3.1.1.3 aSingleCollisionFrames */
-	ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
-	/* 30.3.1.1.4 aMultipleCollisionFrames */
-	ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
-	/* 30.3.1.1.5 aFramesReceivedOK */
-	ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
-	/* 30.3.1.1.6 aFrameCheckSequenceErrors */
-	ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
-	/* 30.3.1.1.7 aAlignmentErrors */
-	ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
-	/* 30.3.1.1.8 aOctetsTransmittedOK */
-	ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
-	/* 30.3.1.1.9 aFramesWithDeferredXmissions */
-	ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
-	/* 30.3.1.1.10 aLateCollisions */
-	ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
-	/* 30.3.1.1.11 aFramesAbortedDueToXSColls */
-	ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
-	/* 30.3.1.1.12 aFramesLostDueToIntMACXmitError */
-	ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
-	/* 30.3.1.1.13 aCarrierSenseErrors */
-	ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
-	/* 30.3.1.1.14 aOctetsReceivedOK */
-	ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
-	/* 30.3.1.1.15 aFramesLostDueToIntMACRcvError */
-	ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
-
-	/* 30.3.1.1.18 aMulticastFramesXmittedOK */
-	ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
-	/* 30.3.1.1.19 aBroadcastFramesXmittedOK */
-	ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
-	/* 30.3.1.1.20 aFramesWithExcessiveDeferral */
-	ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
-	/* 30.3.1.1.21 aMulticastFramesReceivedOK */
-	ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
-	/* 30.3.1.1.22 aBroadcastFramesReceivedOK */
-	ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
-	/* 30.3.1.1.23 aInRangeLengthErrors */
-	ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
-	/* 30.3.1.1.24 aOutOfRangeLengthField */
-	ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
-	/* 30.3.1.1.25 aFrameTooLongErrors */
-	ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
-
-	/* add new constants above here */
-	__ETHTOOL_A_STATS_ETH_MAC_CNT,
-	ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
-};
-
-enum {
-	/* 30.3.3.3 aMACControlFramesTransmitted */
-	ETHTOOL_A_STATS_ETH_CTRL_3_TX,
-	/* 30.3.3.4 aMACControlFramesReceived */
-	ETHTOOL_A_STATS_ETH_CTRL_4_RX,
-	/* 30.3.3.5 aUnsupportedOpcodesReceived */
-	ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
-
-	/* add new constants above here */
-	__ETHTOOL_A_STATS_ETH_CTRL_CNT,
-	ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
-};
-
-enum {
-	/* etherStatsUndersizePkts */
-	ETHTOOL_A_STATS_RMON_UNDERSIZE,
-	/* etherStatsOversizePkts */
-	ETHTOOL_A_STATS_RMON_OVERSIZE,
-	/* etherStatsFragments */
-	ETHTOOL_A_STATS_RMON_FRAG,
-	/* etherStatsJabbers */
-	ETHTOOL_A_STATS_RMON_JABBER,
-
-	/* add new constants above here */
-	__ETHTOOL_A_STATS_RMON_CNT,
-	ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
-};
-
-/* MODULE */
-
-enum {
-	ETHTOOL_A_MODULE_UNSPEC,
-	ETHTOOL_A_MODULE_HEADER,		/* nest - _A_HEADER_* */
-	ETHTOOL_A_MODULE_POWER_MODE_POLICY,	/* u8 */
-	ETHTOOL_A_MODULE_POWER_MODE,		/* u8 */
-
-	/* add new constants above here */
-	__ETHTOOL_A_MODULE_CNT,
-	ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
-};
-
 /* generic netlink info */
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
diff --git a/original/uapi/linux/fanotify.h b/original/uapi/linux/fanotify.h
index e8ac38c..fbf9c5c 100644
--- a/original/uapi/linux/fanotify.h
+++ b/original/uapi/linux/fanotify.h
@@ -20,7 +20,6 @@
 #define FAN_OPEN_EXEC		0x00001000	/* File was opened for exec */
 
 #define FAN_Q_OVERFLOW		0x00004000	/* Event queued overflowed */
-#define FAN_FS_ERROR		0x00008000	/* Filesystem error */
 
 #define FAN_OPEN_PERM		0x00010000	/* File open in perm check */
 #define FAN_ACCESS_PERM		0x00020000	/* File accessed in perm check */
@@ -28,8 +27,6 @@
 
 #define FAN_EVENT_ON_CHILD	0x08000000	/* Interested in child events */
 
-#define FAN_RENAME		0x10000000	/* File was renamed */
-
 #define FAN_ONDIR		0x40000000	/* Event occurred against dir */
 
 /* helper events */
@@ -54,18 +51,13 @@
 #define FAN_ENABLE_AUDIT	0x00000040
 
 /* Flags to determine fanotify event format */
-#define FAN_REPORT_PIDFD	0x00000080	/* Report pidfd for event->pid */
 #define FAN_REPORT_TID		0x00000100	/* event->pid is thread id */
 #define FAN_REPORT_FID		0x00000200	/* Report unique file id */
 #define FAN_REPORT_DIR_FID	0x00000400	/* Report unique directory id */
 #define FAN_REPORT_NAME		0x00000800	/* Report events with name */
-#define FAN_REPORT_TARGET_FID	0x00001000	/* Report dirent target id  */
 
 /* Convenience macro - FAN_REPORT_NAME requires FAN_REPORT_DIR_FID */
 #define FAN_REPORT_DFID_NAME	(FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
-/* Convenience macro - FAN_REPORT_TARGET_FID requires all other FID flags */
-#define FAN_REPORT_DFID_NAME_TARGET (FAN_REPORT_DFID_NAME | \
-				     FAN_REPORT_FID | FAN_REPORT_TARGET_FID)
 
 /* Deprecated - do not use this in programs and do not add new flags here! */
 #define FAN_ALL_INIT_FLAGS	(FAN_CLOEXEC | FAN_NONBLOCK | \
@@ -131,14 +123,6 @@
 #define FAN_EVENT_INFO_TYPE_FID		1
 #define FAN_EVENT_INFO_TYPE_DFID_NAME	2
 #define FAN_EVENT_INFO_TYPE_DFID	3
-#define FAN_EVENT_INFO_TYPE_PIDFD	4
-#define FAN_EVENT_INFO_TYPE_ERROR	5
-
-/* Special info types for FAN_RENAME */
-#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME	10
-/* Reserved for FAN_EVENT_INFO_TYPE_OLD_DFID	11 */
-#define FAN_EVENT_INFO_TYPE_NEW_DFID_NAME	12
-/* Reserved for FAN_EVENT_INFO_TYPE_NEW_DFID	13 */
 
 /* Variable length info record following event metadata */
 struct fanotify_event_info_header {
@@ -164,21 +148,6 @@
 	unsigned char handle[0];
 };
 
-/*
- * This structure is used for info records of type FAN_EVENT_INFO_TYPE_PIDFD.
- * It holds a pidfd for the pid that was responsible for generating an event.
- */
-struct fanotify_event_info_pidfd {
-	struct fanotify_event_info_header hdr;
-	__s32 pidfd;
-};
-
-struct fanotify_event_info_error {
-	struct fanotify_event_info_header hdr;
-	__s32 error;
-	__u32 error_count;
-};
-
 struct fanotify_response {
 	__s32 fd;
 	__u32 response;
@@ -191,8 +160,6 @@
 
 /* No fd set in event */
 #define FAN_NOFD	-1
-#define FAN_NOPIDFD	FAN_NOFD
-#define FAN_EPIDFD	-2
 
 /* Helper functions to deal with fanotify_event_metadata buffers */
 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
diff --git a/original/uapi/linux/fd.h b/original/uapi/linux/fd.h
index 7022e34..8b80c63 100644
--- a/original/uapi/linux/fd.h
+++ b/original/uapi/linux/fd.h
@@ -49,11 +49,11 @@
 #define FDCLRPRM _IO(2, 0x41)
 /* clear user-defined parameters */
 
-#define FDSETPRM _IOW(2, 0x42, struct floppy_struct)
+#define FDSETPRM _IOW(2, 0x42, struct floppy_struct) 
 #define FDSETMEDIAPRM FDSETPRM
 /* set user-defined parameters for current media */
 
-#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct)
+#define FDDEFPRM _IOW(2, 0x43, struct floppy_struct) 
 #define FDGETPRM _IOR(2, 0x04, struct floppy_struct)
 #define FDDEFMEDIAPRM FDDEFPRM
 #define FDGETMEDIAPRM FDGETPRM
@@ -65,7 +65,7 @@
 /* issue/don't issue kernel messages on media type change */
 
 
-/*
+/* 
  * Formatting (obsolete)
  */
 #define FD_FILL_BYTE 0xF6 /* format fill byte. */
@@ -126,13 +126,13 @@
  */
 struct floppy_drive_params {
 	signed char cmos;		/* CMOS type */
-
-	/* Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms
+	
+	/* Spec2 is (HLD<<1 | ND), where HLD is head load time (1=2ms, 2=4 ms 
 	 * etc) and ND is set means no DMA. Hardcoded to 6 (HLD=6ms, use DMA).
 	 */
 	unsigned long max_dtr;		/* Step rate, usec */
 	unsigned long hlt;     		/* Head load/settle time, msec */
-	unsigned long hut;     		/* Head unload time (remnant of
+	unsigned long hut;     		/* Head unload time (remnant of 
 					 * 8" drives) */
 	unsigned long srt;     		/* Step rate, usec */
 
@@ -145,12 +145,12 @@
 	unsigned char rps;		/* rotations per second */
 	unsigned char tracks;		/* maximum number of tracks */
 	unsigned long timeout;		/* timeout for interrupt requests */
-
-	unsigned char interleave_sect;	/* if there are more sectors, use
+	
+	unsigned char interleave_sect;	/* if there are more sectors, use 
 					 * interleave */
-
+	
 	struct floppy_max_errors max_errors;
-
+	
 	char flags;			/* various flags, including ftd_msg */
 /*
  * Announce successful media type detection and media information loss after
@@ -162,7 +162,7 @@
 #define FD_BROKEN_DCL 0x20
 #define FD_DEBUG 0x02
 #define FD_SILENT_DCL_CLEAR 0x4
-#define FD_INVERTED_DCL 0x80 /* must be 0x80, because of hardware
+#define FD_INVERTED_DCL 0x80 /* must be 0x80, because of hardware 
 				considerations */
 
 	char read_track;		/* use readtrack during probing? */
@@ -176,8 +176,8 @@
 #define FD_AUTODETECT_SIZE 8
 
 	short autodetect[FD_AUTODETECT_SIZE]; /* autodetected formats */
-
-	int checkfreq; /* how often should the drive be checked for disk
+	
+	int checkfreq; /* how often should the drive be checked for disk 
 			* changes */
 	int native_format; /* native format of this drive */
 };
@@ -225,13 +225,13 @@
  * decremented after each probe.
  */
 	int keep_data;
-
+	
 	/* Prevent "aliased" accesses. */
 	int fd_ref;
 	int fd_device;
-	unsigned long last_checked; /* when was the drive last checked for a disk
+	unsigned long last_checked; /* when was the drive last checked for a disk 
 			   * change? */
-
+	
 	char *dmabuf;
 	int bufblocks;
 };
@@ -255,7 +255,7 @@
 /*
  * FDC state
  */
-struct floppy_fdc_state {
+struct floppy_fdc_state {	
 	int spec1;		/* spec1 value last used */
 	int spec2;		/* spec2 value last used */
 	int dtr;
@@ -302,16 +302,16 @@
 	 * to the user process are not counted.
 	 */
 
-	unsigned int write_errors;  /* number of physical write errors
+	unsigned int write_errors;  /* number of physical write errors 
 				     * encountered */
-
+	
 	/* position of first and last write errors */
 	unsigned long first_error_sector;
 	int           first_error_generation;
 	unsigned long last_error_sector;
 	int           last_error_generation;
-
-	unsigned int badness; /* highest retry count for a read or write
+	
+	unsigned int badness; /* highest retry count for a read or write 
 			       * operation */
 };
 
@@ -335,7 +335,7 @@
 #define FD_RAW_DISK_CHANGE 4 /* out: disk change flag was set */
 #define FD_RAW_INTR 8    /* wait for an interrupt */
 #define FD_RAW_SPIN 0x10 /* spin up the disk for this command */
-#define FD_RAW_NO_MOTOR_AFTER 0x20 /* switch the motor off after command
+#define FD_RAW_NO_MOTOR_AFTER 0x20 /* switch the motor off after command 
 				    * completion */
 #define FD_RAW_NEED_DISK 0x40  /* this command needs a disk to be present */
 #define FD_RAW_NEED_SEEK 0x80  /* this command uses an implied seek (soft) */
@@ -353,7 +353,7 @@
 
 	void __user *data;
 	char *kernel_data; /* location of data buffer in the kernel */
-	struct floppy_raw_cmd *next; /* used for chaining of raw cmd's
+	struct floppy_raw_cmd *next; /* used for chaining of raw cmd's 
 				      * within the kernel */
 	long length; /* in: length of dma transfer. out: remaining bytes */
 	long phys_length; /* physical length, if different from dma length */
diff --git a/original/uapi/linux/fs.h b/original/uapi/linux/fs.h
index bdf7b40..f44eb0a 100644
--- a/original/uapi/linux/fs.h
+++ b/original/uapi/linux/fs.h
@@ -184,9 +184,8 @@
 #define BLKSECDISCARD _IO(0x12,125)
 #define BLKROTATIONAL _IO(0x12,126)
 #define BLKZEROOUT _IO(0x12,127)
-#define BLKGETDISKSEQ _IOR(0x12,128,__u64)
 /*
- * A jump here: 130-136 are reserved for zoned block devices
+ * A jump here: 130-131 are reserved for zoned block devices
  * (see uapi/linux/blkzoned.h)
  */
 
diff --git a/original/uapi/linux/fuse.h b/original/uapi/linux/fuse.h
index 69a9d97..8fa26a2 100644
--- a/original/uapi/linux/fuse.h
+++ b/original/uapi/linux/fuse.h
@@ -179,21 +179,6 @@
  *  7.33
  *  - add FUSE_HANDLE_KILLPRIV_V2, FUSE_WRITE_KILL_SUIDGID, FATTR_KILL_SUIDGID
  *  - add FUSE_OPEN_KILL_SUIDGID
- *  - extend fuse_setxattr_in, add FUSE_SETXATTR_EXT
- *  - add FUSE_SETXATTR_ACL_KILL_SGID
- *
- *  7.34
- *  - add FUSE_SYNCFS
- *
- *  7.35
- *  - add FOPEN_NOFLUSH
- *
- *  7.36
- *  - extend fuse_init_in with reserved fields, add FUSE_INIT_EXT init flag
- *  - add flags2 to fuse_init_in and fuse_init_out
- *  - add FUSE_SECURITY_CTX init flag
- *  - add security context to create, mkdir, symlink, and mknod requests
- *  - add FUSE_HAS_INODE_DAX, FUSE_ATTR_DAX
  */
 
 #ifndef _LINUX_FUSE_H
@@ -229,7 +214,7 @@
 #define FUSE_KERNEL_VERSION 7
 
 /** Minor version number of this interface */
-#define FUSE_KERNEL_MINOR_VERSION 36
+#define FUSE_KERNEL_MINOR_VERSION 33
 
 /** The node ID of the root inode */
 #define FUSE_ROOT_ID 1
@@ -300,14 +285,12 @@
  * FOPEN_NONSEEKABLE: the file is not seekable
  * FOPEN_CACHE_DIR: allow caching this directory
  * FOPEN_STREAM: the file is stream-like (no file position at all)
- * FOPEN_NOFLUSH: don't flush data cache on close (unless FUSE_WRITEBACK_CACHE)
  */
 #define FOPEN_DIRECT_IO		(1 << 0)
 #define FOPEN_KEEP_CACHE	(1 << 1)
 #define FOPEN_NONSEEKABLE	(1 << 2)
 #define FOPEN_CACHE_DIR		(1 << 3)
 #define FOPEN_STREAM		(1 << 4)
-#define FOPEN_NOFLUSH		(1 << 5)
 
 /**
  * INIT request/reply flags
@@ -347,12 +330,6 @@
  *			does not have CAP_FSETID. Additionally upon
  *			write/truncate sgid is killed only if file has group
  *			execute permission. (Same as Linux VFS behavior).
- * FUSE_SETXATTR_EXT:	Server supports extended struct fuse_setxattr_in
- * FUSE_INIT_EXT: extended fuse_init_in request
- * FUSE_INIT_RESERVED: reserved, do not use
- * FUSE_SECURITY_CTX:	add security context to create, mkdir, symlink, and
- *			mknod
- * FUSE_HAS_INODE_DAX:  use per inode DAX
  */
 #define FUSE_ASYNC_READ		(1 << 0)
 #define FUSE_POSIX_LOCKS	(1 << 1)
@@ -383,24 +360,7 @@
 #define FUSE_MAP_ALIGNMENT	(1 << 26)
 #define FUSE_SUBMOUNTS		(1 << 27)
 #define FUSE_HANDLE_KILLPRIV_V2	(1 << 28)
-#define FUSE_SETXATTR_EXT	(1 << 29)
-#define FUSE_INIT_EXT		(1 << 30)
-#define FUSE_INIT_RESERVED	(1 << 31)
-/* bits 32..63 get shifted down 32 bits into the flags2 field */
-#define FUSE_SECURITY_CTX	(1ULL << 32)
-#define FUSE_HAS_INODE_DAX	(1ULL << 33)
-
-/*
- * For FUSE < 7.36 FUSE_PASSTHROUGH has value (1 << 31).
- * This condition check is not really required, but would prevent having a
- * broken commit in the tree.
- */
-#if FUSE_KERNEL_VERSION > 7 ||                                                 \
-	(FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36)
-#define FUSE_PASSTHROUGH (1ULL << 63)
-#else
-#define FUSE_PASSTHROUGH (1 << 31)
-#endif
+#define FUSE_PASSTHROUGH	(1 << 31)
 
 /**
  * CUSE INIT request/reply flags
@@ -483,10 +443,8 @@
  * fuse_attr flags
  *
  * FUSE_ATTR_SUBMOUNT: Object is a submount root
- * FUSE_ATTR_DAX: Enable DAX for this file in per inode DAX mode
  */
 #define FUSE_ATTR_SUBMOUNT      (1 << 0)
-#define FUSE_ATTR_DAX		(1 << 1)
 
 /**
  * Open flags
@@ -494,12 +452,6 @@
  */
 #define FUSE_OPEN_KILL_SUIDGID	(1 << 0)
 
-/**
- * setxattr flags
- * FUSE_SETXATTR_ACL_KILL_SGID: Clear SGID when system.posix_acl_access is set
- */
-#define FUSE_SETXATTR_ACL_KILL_SGID	(1 << 0)
-
 enum fuse_opcode {
 	FUSE_LOOKUP		= 1,
 	FUSE_FORGET		= 2,  /* no reply */
@@ -548,7 +500,6 @@
 	FUSE_COPY_FILE_RANGE	= 47,
 	FUSE_SETUPMAPPING	= 48,
 	FUSE_REMOVEMAPPING	= 49,
-	FUSE_SYNCFS		= 50,
 	FUSE_CANONICAL_PATH	= 2016,
 
 	/* CUSE specific operations */
@@ -732,13 +683,9 @@
 	uint32_t	padding;
 };
 
-#define FUSE_COMPAT_SETXATTR_IN_SIZE 8
-
 struct fuse_setxattr_in {
 	uint32_t	size;
 	uint32_t	flags;
-	uint32_t	setxattr_flags;
-	uint32_t	padding;
 };
 
 struct fuse_getxattr_in {
@@ -773,8 +720,6 @@
 	uint32_t	minor;
 	uint32_t	max_readahead;
 	uint32_t	flags;
-	uint32_t	flags2;
-	uint32_t	unused[11];
 };
 
 #define FUSE_COMPAT_INIT_OUT_SIZE 8
@@ -791,8 +736,7 @@
 	uint32_t	time_gran;
 	uint16_t	max_pages;
 	uint16_t	map_alignment;
-	uint32_t	flags2;
-	uint32_t	unused[7];
+	uint32_t	unused[8];
 };
 
 #define CUSE_INIT_INFO_MAX 4096
@@ -886,6 +830,14 @@
 	uint32_t	padding;
 };
 
+/* fuse_passthrough_out for passthrough V1 */
+struct fuse_passthrough_out {
+	uint32_t	fd;
+	/* For future implementation */
+	uint32_t	len;
+	void		*vec;
+};
+
 struct fuse_out_header {
 	uint32_t	len;
 	int32_t		error;
@@ -900,12 +852,9 @@
 	char name[];
 };
 
-/* Align variable length records to 64bit boundary */
-#define FUSE_REC_ALIGN(x) \
-	(((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
-
 #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x)
+#define FUSE_DIRENT_ALIGN(x) \
+	(((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
 #define FUSE_DIRENT_SIZE(d) \
 	FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
 
@@ -966,9 +915,8 @@
 /* Device ioctls: */
 #define FUSE_DEV_IOC_MAGIC		229
 #define FUSE_DEV_IOC_CLONE		_IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-/* 127 is reserved for the V1 interface implementation in Android (deprecated) */
-/* 126 is reserved for the V2 interface implementation in Android */
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN	_IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t)
+/* 127 is reserved for the V1 interface implementation in Android */
+#define FUSE_DEV_IOC_PASSTHROUGH_OPEN	_IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out)
 
 struct fuse_lseek_in {
 	uint64_t	fh;
@@ -1021,30 +969,4 @@
 #define FUSE_REMOVEMAPPING_MAX_ENTRY   \
 		(PAGE_SIZE / sizeof(struct fuse_removemapping_one))
 
-struct fuse_syncfs_in {
-	uint64_t	padding;
-};
-
-/*
- * For each security context, send fuse_secctx with size of security context
- * fuse_secctx will be followed by security context name and this in turn
- * will be followed by actual context label.
- * fuse_secctx, name, context
- */
-struct fuse_secctx {
-	uint32_t	size;
-	uint32_t	padding;
-};
-
-/*
- * Contains the information about how many fuse_secctx structures are being
- * sent and what's the total size of all security contexts (including
- * size of fuse_secctx_header).
- *
- */
-struct fuse_secctx_header {
-	uint32_t	size;
-	uint32_t	nr_secctx;
-};
-
 #endif /* _LINUX_FUSE_H */
diff --git a/original/uapi/linux/futex.h b/original/uapi/linux/futex.h
index 71a5df8..a89eb0a 100644
--- a/original/uapi/linux/futex.h
+++ b/original/uapi/linux/futex.h
@@ -21,7 +21,6 @@
 #define FUTEX_WAKE_BITSET	10
 #define FUTEX_WAIT_REQUEUE_PI	11
 #define FUTEX_CMP_REQUEUE_PI	12
-#define FUTEX_LOCK_PI2		13
 
 #define FUTEX_PRIVATE_FLAG	128
 #define FUTEX_CLOCK_REALTIME	256
@@ -33,7 +32,6 @@
 #define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_OP_PRIVATE	(FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
 #define FUTEX_LOCK_PI_PRIVATE	(FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
-#define FUTEX_LOCK_PI2_PRIVATE	(FUTEX_LOCK_PI2 | FUTEX_PRIVATE_FLAG)
 #define FUTEX_UNLOCK_PI_PRIVATE	(FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_BITSET_PRIVATE	(FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
@@ -44,31 +42,6 @@
 					 FUTEX_PRIVATE_FLAG)
 
 /*
- * Flags to specify the bit length of the futex word for futex2 syscalls.
- * Currently, only 32 is supported.
- */
-#define FUTEX_32		2
-
-/*
- * Max numbers of elements in a futex_waitv array
- */
-#define FUTEX_WAITV_MAX		128
-
-/**
- * struct futex_waitv - A waiter for vectorized wait
- * @val:	Expected value at uaddr
- * @uaddr:	User address to wait on
- * @flags:	Flags for this waiter
- * @__reserved:	Reserved member to preserve data alignment. Should be 0.
- */
-struct futex_waitv {
-	__u64 val;
-	__u64 uaddr;
-	__u32 flags;
-	__u32 __reserved;
-};
-
-/*
  * Support for robust futexes: the kernel cleans up held futexes at
  * thread exit time.
  */
diff --git a/original/uapi/linux/hyperv.h b/original/uapi/linux/hyperv.h
index daf82a2..6135d92 100644
--- a/original/uapi/linux/hyperv.h
+++ b/original/uapi/linux/hyperv.h
@@ -26,7 +26,7 @@
 #ifndef _UAPI_HYPERV_H
 #define _UAPI_HYPERV_H
 
-#include <linux/types.h>
+#include <linux/uuid.h>
 
 /*
  * Framework version for util services.
diff --git a/original/uapi/linux/icmp.h b/original/uapi/linux/icmp.h
index 163c099..fb169a5 100644
--- a/original/uapi/linux/icmp.h
+++ b/original/uapi/linux/icmp.h
@@ -20,8 +20,6 @@
 
 #include <linux/types.h>
 #include <asm/byteorder.h>
-#include <linux/if.h>
-#include <linux/in6.h>
 
 #define ICMP_ECHOREPLY		0	/* Echo Reply			*/
 #define ICMP_DEST_UNREACH	3	/* Destination Unreachable	*/
@@ -68,23 +66,6 @@
 #define ICMP_EXC_TTL		0	/* TTL count exceeded		*/
 #define ICMP_EXC_FRAGTIME	1	/* Fragment Reass time exceeded	*/
 
-/* Codes for EXT_ECHO (PROBE) */
-#define ICMP_EXT_ECHO			42
-#define ICMP_EXT_ECHOREPLY		43
-#define ICMP_EXT_CODE_MAL_QUERY		1	/* Malformed Query */
-#define ICMP_EXT_CODE_NO_IF		2	/* No such Interface */
-#define ICMP_EXT_CODE_NO_TABLE_ENT	3	/* No such Table Entry */
-#define ICMP_EXT_CODE_MULT_IFS		4	/* Multiple Interfaces Satisfy Query */
-
-/* Constants for EXT_ECHO (PROBE) */
-#define ICMP_EXT_ECHOREPLY_ACTIVE	(1 << 2)/* active bit in reply message */
-#define ICMP_EXT_ECHOREPLY_IPV4		(1 << 1)/* ipv4 bit in reply message */
-#define ICMP_EXT_ECHOREPLY_IPV6		1	/* ipv6 bit in reply message */
-#define ICMP_EXT_ECHO_CTYPE_NAME	1
-#define ICMP_EXT_ECHO_CTYPE_INDEX	2
-#define ICMP_EXT_ECHO_CTYPE_ADDR	3
-#define ICMP_AFI_IP			1	/* Address Family Identifier for ipv4 */
-#define ICMP_AFI_IP6			2	/* Address Family Identifier for ipv6 */
 
 struct icmphdr {
   __u8		type;
@@ -137,26 +118,4 @@
 	__u8		class_type;
 };
 
-/* RFC 8335: 2.1 Header for c-type 3 payload */
-struct icmp_ext_echo_ctype3_hdr {
-	__be16		afi;
-	__u8		addrlen;
-	__u8		reserved;
-};
-
-/* RFC 8335: 2.1 Interface Identification Object */
-struct icmp_ext_echo_iio {
-	struct icmp_extobj_hdr extobj_hdr;
-	union {
-		char name[IFNAMSIZ];
-		__be32 ifindex;
-		struct {
-			struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
-			union {
-				__be32		ipv4_addr;
-				struct in6_addr	ipv6_addr;
-			} ip_addr;
-		} addr;
-	} ident;
-};
 #endif /* _UAPI_LINUX_ICMP_H */
diff --git a/original/uapi/linux/icmpv6.h b/original/uapi/linux/icmpv6.h
index ecaece3..0564fd7 100644
--- a/original/uapi/linux/icmpv6.h
+++ b/original/uapi/linux/icmpv6.h
@@ -140,9 +140,6 @@
 #define ICMPV6_UNK_OPTION		2
 #define ICMPV6_HDR_INCOMP		3
 
-/* Codes for EXT_ECHO (PROBE) */
-#define ICMPV6_EXT_ECHO_REQUEST		160
-#define ICMPV6_EXT_ECHO_REPLY		161
 /*
  *	constants for (set|get)sockopt
  */
diff --git a/original/uapi/linux/idxd.h b/original/uapi/linux/idxd.h
index a8f0ff7..e33997b 100644
--- a/original/uapi/linux/idxd.h
+++ b/original/uapi/linux/idxd.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: LGPL-2.1 WITH Linux-syscall-note */
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 /* Copyright(c) 2019 Intel Corporation. All rights rsvd. */
 #ifndef _USR_IDXD_H_
 #define _USR_IDXD_H_
@@ -9,31 +9,6 @@
 #include <stdint.h>
 #endif
 
-/* Driver command error status */
-enum idxd_scmd_stat {
-	IDXD_SCMD_DEV_ENABLED = 0x80000010,
-	IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020,
-	IDXD_SCMD_WQ_ENABLED = 0x80000021,
-	IDXD_SCMD_DEV_DMA_ERR = 0x80020000,
-	IDXD_SCMD_WQ_NO_GRP = 0x80030000,
-	IDXD_SCMD_WQ_NO_NAME = 0x80040000,
-	IDXD_SCMD_WQ_NO_SVM = 0x80050000,
-	IDXD_SCMD_WQ_NO_THRESH = 0x80060000,
-	IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000,
-	IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000,
-	IDXD_SCMD_PERCPU_ERR = 0x80090000,
-	IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000,
-	IDXD_SCMD_CDEV_ERR = 0x800b0000,
-	IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000,
-	IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000,
-	IDXD_SCMD_WQ_NO_SIZE = 0x800e0000,
-	IDXD_SCMD_WQ_NO_PRIV = 0x800f0000,
-	IDXD_SCMD_WQ_IRQ_ERR = 0x80100000,
-};
-
-#define IDXD_SCMD_SOFTERR_MASK	0x80000000
-#define IDXD_SCMD_SOFTERR_SHIFT	16
-
 /* Descriptor flags */
 #define IDXD_OP_FLAG_FENCE	0x0001
 #define IDXD_OP_FLAG_BOF	0x0002
diff --git a/original/uapi/linux/if_arp.h b/original/uapi/linux/if_arp.h
index 4783af9..c3cc5a9 100644
--- a/original/uapi/linux/if_arp.h
+++ b/original/uapi/linux/if_arp.h
@@ -54,7 +54,6 @@
 #define ARPHRD_X25	271		/* CCITT X.25			*/
 #define ARPHRD_HWX25	272		/* Boards with X.25 in firmware	*/
 #define ARPHRD_CAN	280		/* Controller Area Network      */
-#define ARPHRD_MCTP	290
 #define ARPHRD_PPP	512
 #define ARPHRD_CISCO	513		/* Cisco HDLC	 		*/
 #define ARPHRD_HDLC	ARPHRD_CISCO
diff --git a/original/uapi/linux/if_bonding.h b/original/uapi/linux/if_bonding.h
index d174914..e8eb4ad 100644
--- a/original/uapi/linux/if_bonding.h
+++ b/original/uapi/linux/if_bonding.h
@@ -153,3 +153,14 @@
 #define BOND_3AD_STAT_MAX (__BOND_3AD_STAT_MAX - 1)
 
 #endif /* _LINUX_IF_BONDING_H */
+
+/*
+ * Local variables:
+ *  version-control: t
+ *  kept-new-versions: 5
+ *  c-indent-level: 8
+ *  c-basic-offset: 8
+ *  tab-width: 8
+ * End:
+ */
+
diff --git a/original/uapi/linux/if_bridge.h b/original/uapi/linux/if_bridge.h
index 2711c35..13d59c5 100644
--- a/original/uapi/linux/if_bridge.h
+++ b/original/uapi/linux/if_bridge.h
@@ -479,22 +479,16 @@
 
 /* flags used in BRIDGE_VLANDB_DUMP_FLAGS attribute to affect dumps */
 #define BRIDGE_VLANDB_DUMPF_STATS	(1 << 0) /* Include stats in the dump */
-#define BRIDGE_VLANDB_DUMPF_GLOBAL	(1 << 1) /* Dump global vlan options only */
 
 /* Bridge vlan RTM attributes
  * [BRIDGE_VLANDB_ENTRY] = {
  *     [BRIDGE_VLANDB_ENTRY_INFO]
  *     ...
  * }
- * [BRIDGE_VLANDB_GLOBAL_OPTIONS] = {
- *     [BRIDGE_VLANDB_GOPTS_ID]
- *     ...
- * }
  */
 enum {
 	BRIDGE_VLANDB_UNSPEC,
 	BRIDGE_VLANDB_ENTRY,
-	BRIDGE_VLANDB_GLOBAL_OPTIONS,
 	__BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -506,7 +500,6 @@
 	BRIDGE_VLANDB_ENTRY_STATE,
 	BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
 	BRIDGE_VLANDB_ENTRY_STATS,
-	BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
 	__BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -545,29 +538,6 @@
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 
-enum {
-	BRIDGE_VLANDB_GOPTS_UNSPEC,
-	BRIDGE_VLANDB_GOPTS_ID,
-	BRIDGE_VLANDB_GOPTS_RANGE,
-	BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
-	BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
-	BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
-	BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
-	BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
-	BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
-	BRIDGE_VLANDB_GOPTS_PAD,
-	BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
-	BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
-	BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
-	BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
-	BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
-	BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
-	BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
-	BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
-	__BRIDGE_VLANDB_GOPTS_MAX
-};
-#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
-
 /* Bridge multicast database attributes
  * [MDBA_MDB] = {
  *     [MDBA_MDB_ENTRY] = {
@@ -657,9 +627,6 @@
 	MDBA_ROUTER_PATTR_UNSPEC,
 	MDBA_ROUTER_PATTR_TIMER,
 	MDBA_ROUTER_PATTR_TYPE,
-	MDBA_ROUTER_PATTR_INET_TIMER,
-	MDBA_ROUTER_PATTR_INET6_TIMER,
-	MDBA_ROUTER_PATTR_VID,
 	__MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -751,14 +718,12 @@
 
 /* bridge boolean options
  * BR_BOOLOPT_NO_LL_LEARN - disable learning from link-local packets
- * BR_BOOLOPT_MCAST_VLAN_SNOOPING - control vlan multicast snooping
  *
  * IMPORTANT: if adding a new option do not forget to handle
  *            it in br_boolopt_toggle/get and bridge sysfs
  */
 enum br_boolopt_id {
 	BR_BOOLOPT_NO_LL_LEARN,
-	BR_BOOLOPT_MCAST_VLAN_SNOOPING,
 	BR_BOOLOPT_MAX
 };
 
@@ -771,17 +736,4 @@
 	__u32 optval;
 	__u32 optmask;
 };
-
-enum {
-	BRIDGE_QUERIER_UNSPEC,
-	BRIDGE_QUERIER_IP_ADDRESS,
-	BRIDGE_QUERIER_IP_PORT,
-	BRIDGE_QUERIER_IP_OTHER_TIMER,
-	BRIDGE_QUERIER_PAD,
-	BRIDGE_QUERIER_IPV6_ADDRESS,
-	BRIDGE_QUERIER_IPV6_PORT,
-	BRIDGE_QUERIER_IPV6_OTHER_TIMER,
-	__BRIDGE_QUERIER_MAX
-};
-#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
 #endif /* _UAPI_LINUX_IF_BRIDGE_H */
diff --git a/original/uapi/linux/if_ether.h b/original/uapi/linux/if_ether.h
index c0c2f3e..a0b6379 100644
--- a/original/uapi/linux/if_ether.h
+++ b/original/uapi/linux/if_ether.h
@@ -86,7 +86,6 @@
 					 * over Ethernet
 					 */
 #define ETH_P_PAE	0x888E		/* Port Access Entity (IEEE 802.1X) */
-#define ETH_P_REALTEK	0x8899          /* Multiple proprietary protocols */
 #define ETH_P_AOE	0x88A2		/* ATA over Ethernet		*/
 #define ETH_P_8021AD	0x88A8          /* 802.1ad Service VLAN		*/
 #define ETH_P_802_EX1	0x88B5		/* 802.1 Local Experimental 1.  */
@@ -117,7 +116,7 @@
 #define ETH_P_IFE	0xED3E		/* ForCES inter-FE LFB type */
 #define ETH_P_AF_IUCV   0xFBFB		/* IBM af_iucv [ NOT AN OFFICIALLY REGISTERED ID ] */
 
-#define ETH_P_802_3_MIN	0x0600		/* If the value in the ethernet type is more than this value
+#define ETH_P_802_3_MIN	0x0600		/* If the value in the ethernet type is less than this value
 					 * then the frame is Ethernet II. Else it is 802.3 */
 
 /*
@@ -152,9 +151,6 @@
 #define ETH_P_MAP	0x00F9		/* Qualcomm multiplexing and
 					 * aggregation protocol
 					 */
-#define ETH_P_MCTP	0x00FA		/* Management component transport
-					 * protocol packets
-					 */
 
 /*
  *	This is an Ethernet frame header.
diff --git a/original/uapi/linux/if_fddi.h b/original/uapi/linux/if_fddi.h
index 8df2d99..7239aa9 100644
--- a/original/uapi/linux/if_fddi.h
+++ b/original/uapi/linux/if_fddi.h
@@ -9,7 +9,7 @@
  * Version:	@(#)if_fddi.h	1.0.3	Oct  6 2018
  *
  * Author:	Lawrence V. Stefani, <stefani@yahoo.com>
- * Maintainer:	Maciej W. Rozycki, <macro@orcam.me.uk>
+ * Maintainer:	Maciej W. Rozycki, <macro@linux-mips.org>
  *
  *		if_fddi.h is based on previous if_ether.h and if_tr.h work by
  *			Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
diff --git a/original/uapi/linux/if_link.h b/original/uapi/linux/if_link.h
index 6218f93..91c8dda 100644
--- a/original/uapi/linux/if_link.h
+++ b/original/uapi/linux/if_link.h
@@ -341,14 +341,6 @@
 	IFLA_ALT_IFNAME, /* Alternative ifname */
 	IFLA_PERM_ADDRESS,
 	IFLA_PROTO_DOWN_REASON,
-
-	/* device (sysfs) name as parent, used instead
-	 * of IFLA_LINK where there's no parent netdev
-	 */
-	IFLA_PARENT_DEV_NAME,
-	IFLA_PARENT_DEV_BUS_NAME,
-	IFLA_GRO_MAX_SIZE,
-
 	__IFLA_MAX
 };
 
@@ -418,7 +410,6 @@
 	IFLA_INET6_ICMP6STATS,	/* statistics (icmpv6)		*/
 	IFLA_INET6_TOKEN,	/* device token			*/
 	IFLA_INET6_ADDR_GEN_MODE, /* implicit address generator mode */
-	IFLA_INET6_RA_MTU,	/* mtu carried in the RA message */
 	__IFLA_INET6_MAX
 };
 
@@ -481,7 +472,6 @@
 	IFLA_BR_MCAST_MLD_VERSION,
 	IFLA_BR_VLAN_STATS_PER_PORT,
 	IFLA_BR_MULTI_BOOLOPT,
-	IFLA_BR_MCAST_QUERIER_STATE,
 	__IFLA_BR_MAX,
 };
 
@@ -624,7 +614,6 @@
 };
 
 #define MACVLAN_FLAG_NOPROMISC	1
-#define MACVLAN_FLAG_NODST	2 /* skip dst macvlan if matching src macvlan */
 
 /* VRF section */
 enum {
@@ -858,8 +847,6 @@
 	IFLA_BOND_AD_ACTOR_SYSTEM,
 	IFLA_BOND_TLB_DYNAMIC_LB,
 	IFLA_BOND_PEER_NOTIF_DELAY,
-	IFLA_BOND_AD_LACP_ACTIVE,
-	IFLA_BOND_MISSED_MAX,
 	__IFLA_BOND_MAX,
 };
 
@@ -1248,8 +1235,6 @@
 #define RMNET_FLAGS_INGRESS_MAP_COMMANDS          (1U << 1)
 #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4           (1U << 2)
 #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4            (1U << 3)
-#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5           (1U << 4)
-#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5            (1U << 5)
 
 enum {
 	IFLA_RMNET_UNSPEC,
@@ -1265,14 +1250,4 @@
 	__u32	mask;
 };
 
-/* MCTP section */
-
-enum {
-	IFLA_MCTP_UNSPEC,
-	IFLA_MCTP_NET,
-	__IFLA_MCTP_MAX,
-};
-
-#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
-
 #endif /* _UAPI_LINUX_IF_LINK_H */
diff --git a/original/uapi/linux/iio/buffer.h b/original/uapi/linux/iio/buffer.h
deleted file mode 100644
index 1393903..0000000
--- a/original/uapi/linux/iio/buffer.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/* industrial I/O buffer definitions needed both in and out of kernel
- */
-
-#ifndef _UAPI_IIO_BUFFER_H_
-#define _UAPI_IIO_BUFFER_H_
-
-#define IIO_BUFFER_GET_FD_IOCTL			_IOWR('i', 0x91, int)
-
-#endif /* _UAPI_IIO_BUFFER_H_ */
diff --git a/original/uapi/linux/in.h b/original/uapi/linux/in.h
index 1416822..7d66876 100644
--- a/original/uapi/linux/in.h
+++ b/original/uapi/linux/in.h
@@ -188,22 +188,11 @@
 };
 
 struct ip_msfilter {
-	union {
-		struct {
-			__be32		imsf_multiaddr_aux;
-			__be32		imsf_interface_aux;
-			__u32		imsf_fmode_aux;
-			__u32		imsf_numsrc_aux;
-			__be32		imsf_slist[1];
-		};
-		struct {
-			__be32		imsf_multiaddr;
-			__be32		imsf_interface;
-			__u32		imsf_fmode;
-			__u32		imsf_numsrc;
-			__be32		imsf_slist_flex[];
-		};
-	};
+	__be32		imsf_multiaddr;
+	__be32		imsf_interface;
+	__u32		imsf_fmode;
+	__u32		imsf_numsrc;
+	__be32		imsf_slist[1];
 };
 
 #define IP_MSFILTER_SIZE(numsrc) \
@@ -222,22 +211,11 @@
 };
 
 struct group_filter {
-	union {
-		struct {
-			__u32				 gf_interface_aux; /* interface index */
-			struct __kernel_sockaddr_storage gf_group_aux;	   /* multicast address */
-			__u32				 gf_fmode_aux;	   /* filter mode */
-			__u32				 gf_numsrc_aux;	   /* number of sources */
-			struct __kernel_sockaddr_storage gf_slist[1];	   /* interface index */
-		};
-		struct {
-			__u32				 gf_interface;	  /* interface index */
-			struct __kernel_sockaddr_storage gf_group;	  /* multicast address */
-			__u32				 gf_fmode;	  /* filter mode */
-			__u32				 gf_numsrc;	  /* number of sources */
-			struct __kernel_sockaddr_storage gf_slist_flex[]; /* interface index */
-		};
-	};
+	__u32				 gf_interface;	/* interface index */
+	struct __kernel_sockaddr_storage gf_group;	/* multicast address */
+	__u32				 gf_fmode;	/* filter mode */
+	__u32				 gf_numsrc;	/* number of sources */
+	struct __kernel_sockaddr_storage gf_slist[1];	/* interface index */
 };
 
 #define GROUP_FILTER_SIZE(numsrc) \
@@ -311,9 +289,6 @@
 /* Address indicating an error return. */
 #define	INADDR_NONE		((unsigned long int) 0xffffffff)
 
-/* Dummy address for src of ICMP replies if no real address is set (RFC7600). */
-#define	INADDR_DUMMY		((unsigned long int) 0xc0000008)
-
 /* Network number for local host loopback. */
 #define	IN_LOOPBACKNET		127
 
diff --git a/original/uapi/linux/in6.h b/original/uapi/linux/in6.h
index c4c53a9..5ad396a 100644
--- a/original/uapi/linux/in6.h
+++ b/original/uapi/linux/in6.h
@@ -145,7 +145,6 @@
 #define IPV6_TLV_PADN		1
 #define IPV6_TLV_ROUTERALERT	5
 #define IPV6_TLV_CALIPSO	7	/* RFC 5570 */
-#define IPV6_TLV_IOAM		49	/* TEMPORARY IANA allocation for IOAM */
 #define IPV6_TLV_JUMBO		194
 #define IPV6_TLV_HAO		201	/* home address option */
 
diff --git a/original/uapi/linux/incrementalfs.h b/original/uapi/linux/incrementalfs.h
index f8338af..f1a6199 100644
--- a/original/uapi/linux/incrementalfs.h
+++ b/original/uapi/linux/incrementalfs.h
@@ -580,11 +580,7 @@
 	/* errno of last read error */
 	__u32	errno_out;
 
-	/* uid of last read error */
-	__u32	uid_out;
-
-	__u32	reserved1;
-	__u64	reserved2;
+	__u64	reserved;
 };
 
 #endif /* _UAPI_LINUX_INCREMENTALFS_H */
diff --git a/original/uapi/linux/input-event-codes.h b/original/uapi/linux/input-event-codes.h
index 7989d94..ee93428 100644
--- a/original/uapi/linux/input-event-codes.h
+++ b/original/uapi/linux/input-event-codes.h
@@ -278,8 +278,7 @@
 #define KEY_PAUSECD		201
 #define KEY_PROG3		202
 #define KEY_PROG4		203
-#define KEY_ALL_APPLICATIONS	204	/* AC Desktop Show All Applications */
-#define KEY_DASHBOARD		KEY_ALL_APPLICATIONS
+#define KEY_DASHBOARD		204	/* AL Dashboard */
 #define KEY_SUSPEND		205
 #define KEY_CLOSE		206	/* AC Close */
 #define KEY_PLAY		207
@@ -612,8 +611,6 @@
 #define KEY_VOICECOMMAND		0x246	/* Listening Voice Command */
 #define KEY_ASSISTANT		0x247	/* AL Context-aware desktop assistant */
 #define KEY_KBD_LAYOUT_NEXT	0x248	/* AC Next Keyboard Layout Select */
-#define KEY_EMOJI_PICKER	0x249	/* Show/hide emoji picker (HUTRR101) */
-#define KEY_DICTATE		0x24a	/* Start or Stop Voice Dictation Session (HUTRR99) */
 
 #define KEY_BRIGHTNESS_MIN		0x250	/* Set Brightness to Minimum */
 #define KEY_BRIGHTNESS_MAX		0x251	/* Set Brightness to Maximum */
diff --git a/original/uapi/linux/io_uring.h b/original/uapi/linux/io_uring.h
index 787f491..2514eb6 100644
--- a/original/uapi/linux/io_uring.h
+++ b/original/uapi/linux/io_uring.h
@@ -44,23 +44,23 @@
 		__u32		splice_flags;
 		__u32		rename_flags;
 		__u32		unlink_flags;
-		__u32		hardlink_flags;
 	};
 	__u64	user_data;	/* data to be passed back at completion time */
-	/* pack this to avoid bogus arm OABI complaints */
 	union {
-		/* index into fixed buffers, if used */
-		__u16	buf_index;
-		/* for grouped buffer selection */
-		__u16	buf_group;
-	} __attribute__((packed));
-	/* personality to use, if used */
-	__u16	personality;
-	union {
-		__s32	splice_fd_in;
-		__u32	file_index;
+		struct {
+			/* pack this to avoid bogus arm OABI complaints */
+			union {
+				/* index into fixed buffers, if used */
+				__u16	buf_index;
+				/* for grouped buffer selection */
+				__u16	buf_group;
+			} __attribute__((packed));
+			/* personality to use, if used */
+			__u16	personality;
+			__s32	splice_fd_in;
+		};
+		__u64	__pad2[3];
 	};
-	__u64	__pad2[2];
 };
 
 enum {
@@ -70,7 +70,6 @@
 	IOSQE_IO_HARDLINK_BIT,
 	IOSQE_ASYNC_BIT,
 	IOSQE_BUFFER_SELECT_BIT,
-	IOSQE_CQE_SKIP_SUCCESS_BIT,
 };
 
 /*
@@ -88,8 +87,6 @@
 #define IOSQE_ASYNC		(1U << IOSQE_ASYNC_BIT)
 /* select buffer from sqe->buf_group */
 #define IOSQE_BUFFER_SELECT	(1U << IOSQE_BUFFER_SELECT_BIT)
-/* don't post CQE if request succeeded */
-#define IOSQE_CQE_SKIP_SUCCESS	(1U << IOSQE_CQE_SKIP_SUCCESS_BIT)
 
 /*
  * io_uring_setup() flags
@@ -140,9 +137,6 @@
 	IORING_OP_SHUTDOWN,
 	IORING_OP_RENAMEAT,
 	IORING_OP_UNLINKAT,
-	IORING_OP_MKDIRAT,
-	IORING_OP_SYMLINKAT,
-	IORING_OP_LINKAT,
 
 	/* this goes last, obviously */
 	IORING_OP_LAST,
@@ -156,14 +150,9 @@
 /*
  * sqe->timeout_flags
  */
-#define IORING_TIMEOUT_ABS		(1U << 0)
-#define IORING_TIMEOUT_UPDATE		(1U << 1)
-#define IORING_TIMEOUT_BOOTTIME		(1U << 2)
-#define IORING_TIMEOUT_REALTIME		(1U << 3)
-#define IORING_LINK_TIMEOUT_UPDATE	(1U << 4)
-#define IORING_TIMEOUT_ETIME_SUCCESS	(1U << 5)
-#define IORING_TIMEOUT_CLOCK_MASK	(IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
-#define IORING_TIMEOUT_UPDATE_MASK	(IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
+#define IORING_TIMEOUT_ABS	(1U << 0)
+#define IORING_TIMEOUT_UPDATE	(1U << 1)
+
 /*
  * sqe->splice_flags
  * extends splice(2) flags
@@ -171,21 +160,6 @@
 #define SPLICE_F_FD_IN_FIXED	(1U << 31) /* the last bit of __u32 */
 
 /*
- * POLL_ADD flags. Note that since sqe->poll_events is the flag space, the
- * command flags for POLL_ADD are stored in sqe->len.
- *
- * IORING_POLL_ADD_MULTI	Multishot poll. Sets IORING_CQE_F_MORE if
- *				the poll handler will continue to report
- *				CQEs on behalf of the same SQE.
- *
- * IORING_POLL_UPDATE		Update existing poll request, matching
- *				sqe->addr as the old user_data field.
- */
-#define IORING_POLL_ADD_MULTI	(1U << 0)
-#define IORING_POLL_UPDATE_EVENTS	(1U << 1)
-#define IORING_POLL_UPDATE_USER_DATA	(1U << 2)
-
-/*
  * IO completion data structure (Completion Queue Entry)
  */
 struct io_uring_cqe {
@@ -198,10 +172,8 @@
  * cqe->flags
  *
  * IORING_CQE_F_BUFFER	If set, the upper 16 bits are the buffer ID
- * IORING_CQE_F_MORE	If set, parent SQE will generate more CQE entries
  */
 #define IORING_CQE_F_BUFFER		(1U << 0)
-#define IORING_CQE_F_MORE		(1U << 1)
 
 enum {
 	IORING_CQE_BUFFER_SHIFT		= 16,
@@ -291,8 +263,6 @@
 #define IORING_FEAT_SQPOLL_NONFIXED	(1U << 7)
 #define IORING_FEAT_EXT_ARG		(1U << 8)
 #define IORING_FEAT_NATIVE_WORKERS	(1U << 9)
-#define IORING_FEAT_RSRC_TAGS		(1U << 10)
-#define IORING_FEAT_CQE_SKIP		(1U << 11)
 
 /*
  * io_uring_register(2) opcodes and arguments
@@ -312,29 +282,10 @@
 	IORING_REGISTER_RESTRICTIONS		= 11,
 	IORING_REGISTER_ENABLE_RINGS		= 12,
 
-	/* extended with tagging */
-	IORING_REGISTER_FILES2			= 13,
-	IORING_REGISTER_FILES_UPDATE2		= 14,
-	IORING_REGISTER_BUFFERS2		= 15,
-	IORING_REGISTER_BUFFERS_UPDATE		= 16,
-
-	/* set/clear io-wq thread affinities */
-	IORING_REGISTER_IOWQ_AFF		= 17,
-	IORING_UNREGISTER_IOWQ_AFF		= 18,
-
-	/* set/get max number of io-wq workers */
-	IORING_REGISTER_IOWQ_MAX_WORKERS	= 19,
-
 	/* this goes last */
 	IORING_REGISTER_LAST
 };
 
-/* io-wq worker categories */
-enum {
-	IO_WQ_BOUND,
-	IO_WQ_UNBOUND,
-};
-
 /* deprecated, see struct io_uring_rsrc_update */
 struct io_uring_files_update {
 	__u32 offset;
@@ -342,29 +293,12 @@
 	__aligned_u64 /* __s32 * */ fds;
 };
 
-struct io_uring_rsrc_register {
-	__u32 nr;
-	__u32 resv;
-	__u64 resv2;
-	__aligned_u64 data;
-	__aligned_u64 tags;
-};
-
 struct io_uring_rsrc_update {
 	__u32 offset;
 	__u32 resv;
 	__aligned_u64 data;
 };
 
-struct io_uring_rsrc_update2 {
-	__u32 offset;
-	__u32 resv;
-	__aligned_u64 data;
-	__aligned_u64 tags;
-	__u32 nr;
-	__u32 resv2;
-};
-
 /* Skip updating fd indexes set to this value in the fd table */
 #define IORING_REGISTER_FILES_SKIP	(-2)
 
diff --git a/original/uapi/linux/ioam6.h b/original/uapi/linux/ioam6.h
deleted file mode 100644
index ac4de37..0000000
--- a/original/uapi/linux/ioam6.h
+++ /dev/null
@@ -1,133 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- *  IPv6 IOAM implementation
- *
- *  Author:
- *  Justin Iurman <justin.iurman@uliege.be>
- */
-
-#ifndef _UAPI_LINUX_IOAM6_H
-#define _UAPI_LINUX_IOAM6_H
-
-#include <asm/byteorder.h>
-#include <linux/types.h>
-
-#define IOAM6_U16_UNAVAILABLE U16_MAX
-#define IOAM6_U32_UNAVAILABLE U32_MAX
-#define IOAM6_U64_UNAVAILABLE U64_MAX
-
-#define IOAM6_DEFAULT_ID (IOAM6_U32_UNAVAILABLE >> 8)
-#define IOAM6_DEFAULT_ID_WIDE (IOAM6_U64_UNAVAILABLE >> 8)
-#define IOAM6_DEFAULT_IF_ID IOAM6_U16_UNAVAILABLE
-#define IOAM6_DEFAULT_IF_ID_WIDE IOAM6_U32_UNAVAILABLE
-
-/*
- * IPv6 IOAM Option Header
- */
-struct ioam6_hdr {
-	__u8 opt_type;
-	__u8 opt_len;
-	__u8 :8;				/* reserved */
-#define IOAM6_TYPE_PREALLOC 0
-	__u8 type;
-} __attribute__((packed));
-
-/*
- * IOAM Trace Header
- */
-struct ioam6_trace_hdr {
-	__be16	namespace_id;
-
-#if defined(__LITTLE_ENDIAN_BITFIELD)
-
-	__u8	:1,				/* unused */
-		:1,				/* unused */
-		overflow:1,
-		nodelen:5;
-
-	__u8	remlen:7,
-		:1;				/* unused */
-
-	union {
-		__be32 type_be32;
-
-		struct {
-			__u32	bit7:1,
-				bit6:1,
-				bit5:1,
-				bit4:1,
-				bit3:1,
-				bit2:1,
-				bit1:1,
-				bit0:1,
-				bit15:1,	/* unused */
-				bit14:1,	/* unused */
-				bit13:1,	/* unused */
-				bit12:1,	/* unused */
-				bit11:1,
-				bit10:1,
-				bit9:1,
-				bit8:1,
-				bit23:1,	/* reserved */
-				bit22:1,
-				bit21:1,	/* unused */
-				bit20:1,	/* unused */
-				bit19:1,	/* unused */
-				bit18:1,	/* unused */
-				bit17:1,	/* unused */
-				bit16:1,	/* unused */
-				:8;		/* reserved */
-		} type;
-	};
-
-#elif defined(__BIG_ENDIAN_BITFIELD)
-
-	__u8	nodelen:5,
-		overflow:1,
-		:1,				/* unused */
-		:1;				/* unused */
-
-	__u8	:1,				/* unused */
-		remlen:7;
-
-	union {
-		__be32 type_be32;
-
-		struct {
-			__u32	bit0:1,
-				bit1:1,
-				bit2:1,
-				bit3:1,
-				bit4:1,
-				bit5:1,
-				bit6:1,
-				bit7:1,
-				bit8:1,
-				bit9:1,
-				bit10:1,
-				bit11:1,
-				bit12:1,	/* unused */
-				bit13:1,	/* unused */
-				bit14:1,	/* unused */
-				bit15:1,	/* unused */
-				bit16:1,	/* unused */
-				bit17:1,	/* unused */
-				bit18:1,	/* unused */
-				bit19:1,	/* unused */
-				bit20:1,	/* unused */
-				bit21:1,	/* unused */
-				bit22:1,
-				bit23:1,	/* reserved */
-				:8;		/* reserved */
-		} type;
-	};
-
-#else
-#error "Please fix <asm/byteorder.h>"
-#endif
-
-#define IOAM6_TRACE_DATA_SIZE_MAX 244
-	__u8	data[0];
-} __attribute__((packed));
-
-#endif /* _UAPI_LINUX_IOAM6_H */
diff --git a/original/uapi/linux/ioam6_genl.h b/original/uapi/linux/ioam6_genl.h
deleted file mode 100644
index ca4b228..0000000
--- a/original/uapi/linux/ioam6_genl.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- *  IPv6 IOAM Generic Netlink API
- *
- *  Author:
- *  Justin Iurman <justin.iurman@uliege.be>
- */
-
-#ifndef _UAPI_LINUX_IOAM6_GENL_H
-#define _UAPI_LINUX_IOAM6_GENL_H
-
-#define IOAM6_GENL_NAME "IOAM6"
-#define IOAM6_GENL_VERSION 0x1
-
-enum {
-	IOAM6_ATTR_UNSPEC,
-
-	IOAM6_ATTR_NS_ID,	/* u16 */
-	IOAM6_ATTR_NS_DATA,	/* u32 */
-	IOAM6_ATTR_NS_DATA_WIDE,/* u64 */
-
-#define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4)
-	IOAM6_ATTR_SC_ID,	/* u32 */
-	IOAM6_ATTR_SC_DATA,	/* Binary */
-	IOAM6_ATTR_SC_NONE,	/* Flag */
-
-	IOAM6_ATTR_PAD,
-
-	__IOAM6_ATTR_MAX,
-};
-
-#define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1)
-
-enum {
-	IOAM6_CMD_UNSPEC,
-
-	IOAM6_CMD_ADD_NAMESPACE,
-	IOAM6_CMD_DEL_NAMESPACE,
-	IOAM6_CMD_DUMP_NAMESPACES,
-
-	IOAM6_CMD_ADD_SCHEMA,
-	IOAM6_CMD_DEL_SCHEMA,
-	IOAM6_CMD_DUMP_SCHEMAS,
-
-	IOAM6_CMD_NS_SET_SCHEMA,
-
-	__IOAM6_CMD_MAX,
-};
-
-#define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1)
-
-#endif /* _UAPI_LINUX_IOAM6_GENL_H */
diff --git a/original/uapi/linux/ioam6_iptunnel.h b/original/uapi/linux/ioam6_iptunnel.h
deleted file mode 100644
index 829ffdf..0000000
--- a/original/uapi/linux/ioam6_iptunnel.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- *  IPv6 IOAM Lightweight Tunnel API
- *
- *  Author:
- *  Justin Iurman <justin.iurman@uliege.be>
- */
-
-#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
-#define _UAPI_LINUX_IOAM6_IPTUNNEL_H
-
-/* Encap modes:
- *  - inline: direct insertion
- *  - encap: ip6ip6 encapsulation
- *  - auto: inline for local packets, encap for in-transit packets
- */
-enum {
-	__IOAM6_IPTUNNEL_MODE_MIN,
-
-	IOAM6_IPTUNNEL_MODE_INLINE,
-	IOAM6_IPTUNNEL_MODE_ENCAP,
-	IOAM6_IPTUNNEL_MODE_AUTO,
-
-	__IOAM6_IPTUNNEL_MODE_MAX,
-};
-
-#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1)
-#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1)
-
-enum {
-	IOAM6_IPTUNNEL_UNSPEC,
-
-	/* Encap mode */
-	IOAM6_IPTUNNEL_MODE,		/* u8 */
-
-	/* Tunnel dst address.
-	 * For encap,auto modes.
-	 */
-	IOAM6_IPTUNNEL_DST,		/* struct in6_addr */
-
-	/* IOAM Trace Header */
-	IOAM6_IPTUNNEL_TRACE,		/* struct ioam6_trace_hdr */
-
-	__IOAM6_IPTUNNEL_MAX,
-};
-
-#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1)
-
-#endif /* _UAPI_LINUX_IOAM6_IPTUNNEL_H */
diff --git a/original/uapi/linux/iommu.h b/original/uapi/linux/iommu.h
index 59178fc..e1d9e75 100644
--- a/original/uapi/linux/iommu.h
+++ b/original/uapi/linux/iommu.h
@@ -288,8 +288,7 @@
 #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 */
-#define IOMMU_SVA_VTD_GPASID_WPE	(1 << 6) /* Write protect enable */
-#define IOMMU_SVA_VTD_GPASID_LAST	(1 << 7)
+#define IOMMU_SVA_VTD_GPASID_LAST	(1 << 6)
 	__u64 flags;
 	__u32 pat;
 	__u32 emt;
diff --git a/original/uapi/linux/ioprio.h b/original/uapi/linux/ioprio.h
deleted file mode 100644
index f70f259..0000000
--- a/original/uapi/linux/ioprio.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_LINUX_IOPRIO_H
-#define _UAPI_LINUX_IOPRIO_H
-
-/*
- * Gives us 8 prio classes with 13-bits of data for each class
- */
-#define IOPRIO_CLASS_SHIFT	13
-#define IOPRIO_CLASS_MASK	0x07
-#define IOPRIO_PRIO_MASK	((1UL << IOPRIO_CLASS_SHIFT) - 1)
-
-#define IOPRIO_PRIO_CLASS(ioprio)	\
-	(((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK)
-#define IOPRIO_PRIO_DATA(ioprio)	((ioprio) & IOPRIO_PRIO_MASK)
-#define IOPRIO_PRIO_VALUE(class, data)	\
-	((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | \
-	 ((data) & IOPRIO_PRIO_MASK))
-
-/*
- * These are the io priority groups as implemented by the BFQ and mq-deadline
- * schedulers. RT is the realtime class, it always gets premium service. For
- * ATA disks supporting NCQ IO priority, RT class IOs will be processed using
- * high priority NCQ commands. BE is the best-effort scheduling class, the
- * default for any process. IDLE is the idle scheduling class, it is only
- * served when no one else is using the disk.
- */
-enum {
-	IOPRIO_CLASS_NONE,
-	IOPRIO_CLASS_RT,
-	IOPRIO_CLASS_BE,
-	IOPRIO_CLASS_IDLE,
-};
-
-/*
- * The RT and BE priority classes both support up to 8 priority levels.
- */
-#define IOPRIO_NR_LEVELS	8
-#define IOPRIO_BE_NR		IOPRIO_NR_LEVELS
-
-enum {
-	IOPRIO_WHO_PROCESS = 1,
-	IOPRIO_WHO_PGRP,
-	IOPRIO_WHO_USER,
-};
-
-/*
- * Fallback BE priority level.
- */
-#define IOPRIO_NORM	4
-#define IOPRIO_BE_NORM	IOPRIO_NORM
-
-#endif /* _UAPI_LINUX_IOPRIO_H */
diff --git a/original/uapi/linux/ip.h b/original/uapi/linux/ip.h
index e00bbb9..e42d13b 100644
--- a/original/uapi/linux/ip.h
+++ b/original/uapi/linux/ip.h
@@ -169,7 +169,6 @@
 	IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
 	IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
 	IPV4_DEVCONF_BC_FORWARDING,
-	IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
 	__IPV4_DEVCONF_MAX
 };
 
diff --git a/original/uapi/linux/ipmi.h b/original/uapi/linux/ipmi.h
index 966c307..32d1483 100644
--- a/original/uapi/linux/ipmi.h
+++ b/original/uapi/linux/ipmi.h
@@ -81,20 +81,6 @@
 };
 
 /*
- * Used for messages received directly from an IPMB that have not gone
- * through a MC.  This is for systems that sit right on an IPMB so
- * they can receive commands and respond to them.
- */
-#define IPMI_IPMB_DIRECT_ADDR_TYPE	0x81
-struct ipmi_ipmb_direct_addr {
-	int           addr_type;
-	short         channel;
-	unsigned char slave_addr;
-	unsigned char rs_lun;
-	unsigned char rq_lun;
-};
-
-/*
  * A LAN Address.  This is an address to/from a LAN interface bridged
  * by the BMC, not an address actually out on the LAN.
  *
@@ -172,7 +158,7 @@
  * is used for the receive in-kernel interface and in the receive
  * IOCTL.
  *
- * The "IPMI_RESPONSE_RESPONSE_TYPE" is a little strange sounding, but
+ * The "IPMI_RESPONSE_RESPNOSE_TYPE" is a little strange sounding, but
  * it allows you to get the message results when you send a response
  * message.
  */
diff --git a/original/uapi/linux/ipv6.h b/original/uapi/linux/ipv6.h
index d4178da..7060377 100644
--- a/original/uapi/linux/ipv6.h
+++ b/original/uapi/linux/ipv6.h
@@ -190,10 +190,6 @@
 	DEVCONF_NDISC_TCLASS,
 	DEVCONF_RPL_SEG_ENABLED,
 	DEVCONF_RA_DEFRTR_METRIC,
-	DEVCONF_IOAM6_ENABLED,
-	DEVCONF_IOAM6_ID,
-	DEVCONF_IOAM6_ID_WIDE,
-	DEVCONF_NDISC_EVICT_NOCARRIER,
 	DEVCONF_MAX
 };
 
diff --git a/original/uapi/linux/ipx.h b/original/uapi/linux/ipx.h
new file mode 100644
index 0000000..3168137
--- /dev/null
+++ b/original/uapi/linux/ipx.h
@@ -0,0 +1,87 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef _IPX_H_
+#define _IPX_H_
+#include <linux/libc-compat.h>	/* for compatibility with glibc netipx/ipx.h */
+#include <linux/types.h>
+#include <linux/sockios.h>
+#include <linux/socket.h>
+#define IPX_NODE_LEN	6
+#define IPX_MTU		576
+
+#if __UAPI_DEF_SOCKADDR_IPX
+struct sockaddr_ipx {
+	__kernel_sa_family_t sipx_family;
+	__be16		sipx_port;
+	__be32		sipx_network;
+	unsigned char 	sipx_node[IPX_NODE_LEN];
+	__u8		sipx_type;
+	unsigned char	sipx_zero;	/* 16 byte fill */
+};
+#endif /* __UAPI_DEF_SOCKADDR_IPX */
+
+/*
+ * So we can fit the extra info for SIOCSIFADDR into the address nicely
+ */
+#define sipx_special	sipx_port
+#define sipx_action	sipx_zero
+#define IPX_DLTITF	0
+#define IPX_CRTITF	1
+
+#if __UAPI_DEF_IPX_ROUTE_DEFINITION
+struct ipx_route_definition {
+	__be32        ipx_network;
+	__be32        ipx_router_network;
+	unsigned char ipx_router_node[IPX_NODE_LEN];
+};
+#endif /* __UAPI_DEF_IPX_ROUTE_DEFINITION */
+
+#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
+struct ipx_interface_definition {
+	__be32        ipx_network;
+	unsigned char ipx_device[16];
+	unsigned char ipx_dlink_type;
+#define IPX_FRAME_NONE		0
+#define IPX_FRAME_SNAP		1
+#define IPX_FRAME_8022		2
+#define IPX_FRAME_ETHERII	3
+#define IPX_FRAME_8023		4
+#define IPX_FRAME_TR_8022       5 /* obsolete */
+	unsigned char ipx_special;
+#define IPX_SPECIAL_NONE	0
+#define IPX_PRIMARY		1
+#define IPX_INTERNAL		2
+	unsigned char ipx_node[IPX_NODE_LEN];
+};
+#endif /* __UAPI_DEF_IPX_INTERFACE_DEFINITION */
+
+#if __UAPI_DEF_IPX_CONFIG_DATA
+struct ipx_config_data {
+	unsigned char	ipxcfg_auto_select_primary;
+	unsigned char	ipxcfg_auto_create_interfaces;
+};
+#endif /* __UAPI_DEF_IPX_CONFIG_DATA */
+
+/*
+ * OLD Route Definition for backward compatibility.
+ */
+
+#if __UAPI_DEF_IPX_ROUTE_DEF
+struct ipx_route_def {
+	__be32		ipx_network;
+	__be32		ipx_router_network;
+#define IPX_ROUTE_NO_ROUTER	0
+	unsigned char	ipx_router_node[IPX_NODE_LEN];
+	unsigned char	ipx_device[16];
+	unsigned short	ipx_flags;
+#define IPX_RT_SNAP		8
+#define IPX_RT_8022		4
+#define IPX_RT_BLUEBOOK		2
+#define IPX_RT_ROUTED		1
+};
+#endif /* __UAPI_DEF_IPX_ROUTE_DEF */
+
+#define SIOCAIPXITFCRT		(SIOCPROTOPRIVATE)
+#define SIOCAIPXPRISLT		(SIOCPROTOPRIVATE + 1)
+#define SIOCIPXCFGDATA		(SIOCPROTOPRIVATE + 2)
+#define SIOCIPXNCPCONN		(SIOCPROTOPRIVATE + 3)
+#endif /* _IPX_H_ */
diff --git a/original/uapi/linux/kexec.h b/original/uapi/linux/kexec.h
index 778dc19..05669c8 100644
--- a/original/uapi/linux/kexec.h
+++ b/original/uapi/linux/kexec.h
@@ -42,7 +42,6 @@
 #define KEXEC_ARCH_MIPS_LE (10 << 16)
 #define KEXEC_ARCH_MIPS    ( 8 << 16)
 #define KEXEC_ARCH_AARCH64 (183 << 16)
-#define KEXEC_ARCH_RISCV   (243 << 16)
 
 /* The artificial cap on the number of segments passed to kexec_load. */
 #define KEXEC_SEGMENT_MAX 16
diff --git a/original/uapi/linux/kfd_ioctl.h b/original/uapi/linux/kfd_ioctl.h
index af96af1..695b606 100644
--- a/original/uapi/linux/kfd_ioctl.h
+++ b/original/uapi/linux/kfd_ioctl.h
@@ -29,12 +29,9 @@
 /*
  * - 1.1 - initial version
  * - 1.3 - Add SMI events support
- * - 1.4 - Indicate new SRAM EDC bit in device properties
- * - 1.5 - Add SVM API
- * - 1.6 - Query clear flags in SVM get_attr API
  */
 #define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 6
+#define KFD_IOCTL_MINOR_VERSION 3
 
 struct kfd_ioctl_get_version_args {
 	__u32 major_version;	/* from KFD */
@@ -354,7 +351,6 @@
 #define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE	(1 << 28)
 #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM	(1 << 27)
 #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT	(1 << 26)
-#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED	(1 << 25)
 
 /* Allocate memory for later SVM (shared virtual memory) mapping.
  *
@@ -475,168 +471,6 @@
 	KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
 };
 
-/* Guarantee host access to memory */
-#define KFD_IOCTL_SVM_FLAG_HOST_ACCESS 0x00000001
-/* Fine grained coherency between all devices with access */
-#define KFD_IOCTL_SVM_FLAG_COHERENT    0x00000002
-/* Use any GPU in same hive as preferred device */
-#define KFD_IOCTL_SVM_FLAG_HIVE_LOCAL  0x00000004
-/* GPUs only read, allows replication */
-#define KFD_IOCTL_SVM_FLAG_GPU_RO      0x00000008
-/* Allow execution on GPU */
-#define KFD_IOCTL_SVM_FLAG_GPU_EXEC    0x00000010
-/* GPUs mostly read, may allow similar optimizations as RO, but writes fault */
-#define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY     0x00000020
-
-/**
- * kfd_ioctl_svm_op - SVM ioctl operations
- *
- * @KFD_IOCTL_SVM_OP_SET_ATTR: Modify one or more attributes
- * @KFD_IOCTL_SVM_OP_GET_ATTR: Query one or more attributes
- */
-enum kfd_ioctl_svm_op {
-	KFD_IOCTL_SVM_OP_SET_ATTR,
-	KFD_IOCTL_SVM_OP_GET_ATTR
-};
-
-/** kfd_ioctl_svm_location - Enum for preferred and prefetch locations
- *
- * GPU IDs are used to specify GPUs as preferred and prefetch locations.
- * Below definitions are used for system memory or for leaving the preferred
- * location unspecified.
- */
-enum kfd_ioctl_svm_location {
-	KFD_IOCTL_SVM_LOCATION_SYSMEM = 0,
-	KFD_IOCTL_SVM_LOCATION_UNDEFINED = 0xffffffff
-};
-
-/**
- * kfd_ioctl_svm_attr_type - SVM attribute types
- *
- * @KFD_IOCTL_SVM_ATTR_PREFERRED_LOC: gpuid of the preferred location, 0 for
- *                                    system memory
- * @KFD_IOCTL_SVM_ATTR_PREFETCH_LOC: gpuid of the prefetch location, 0 for
- *                                   system memory. Setting this triggers an
- *                                   immediate prefetch (migration).
- * @KFD_IOCTL_SVM_ATTR_ACCESS:
- * @KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE:
- * @KFD_IOCTL_SVM_ATTR_NO_ACCESS: specify memory access for the gpuid given
- *                                by the attribute value
- * @KFD_IOCTL_SVM_ATTR_SET_FLAGS: bitmask of flags to set (see
- *                                KFD_IOCTL_SVM_FLAG_...)
- * @KFD_IOCTL_SVM_ATTR_CLR_FLAGS: bitmask of flags to clear
- * @KFD_IOCTL_SVM_ATTR_GRANULARITY: migration granularity
- *                                  (log2 num pages)
- */
-enum kfd_ioctl_svm_attr_type {
-	KFD_IOCTL_SVM_ATTR_PREFERRED_LOC,
-	KFD_IOCTL_SVM_ATTR_PREFETCH_LOC,
-	KFD_IOCTL_SVM_ATTR_ACCESS,
-	KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE,
-	KFD_IOCTL_SVM_ATTR_NO_ACCESS,
-	KFD_IOCTL_SVM_ATTR_SET_FLAGS,
-	KFD_IOCTL_SVM_ATTR_CLR_FLAGS,
-	KFD_IOCTL_SVM_ATTR_GRANULARITY
-};
-
-/**
- * kfd_ioctl_svm_attribute - Attributes as pairs of type and value
- *
- * The meaning of the @value depends on the attribute type.
- *
- * @type: attribute type (see enum @kfd_ioctl_svm_attr_type)
- * @value: attribute value
- */
-struct kfd_ioctl_svm_attribute {
-	__u32 type;
-	__u32 value;
-};
-
-/**
- * kfd_ioctl_svm_args - Arguments for SVM ioctl
- *
- * @op specifies the operation to perform (see enum
- * @kfd_ioctl_svm_op).  @start_addr and @size are common for all
- * operations.
- *
- * A variable number of attributes can be given in @attrs.
- * @nattr specifies the number of attributes. New attributes can be
- * added in the future without breaking the ABI. If unknown attributes
- * are given, the function returns -EINVAL.
- *
- * @KFD_IOCTL_SVM_OP_SET_ATTR sets attributes for a virtual address
- * range. It may overlap existing virtual address ranges. If it does,
- * the existing ranges will be split such that the attribute changes
- * only apply to the specified address range.
- *
- * @KFD_IOCTL_SVM_OP_GET_ATTR returns the intersection of attributes
- * over all memory in the given range and returns the result as the
- * attribute value. If different pages have different preferred or
- * prefetch locations, 0xffffffff will be returned for
- * @KFD_IOCTL_SVM_ATTR_PREFERRED_LOC or
- * @KFD_IOCTL_SVM_ATTR_PREFETCH_LOC resepctively. For
- * @KFD_IOCTL_SVM_ATTR_SET_FLAGS, flags of all pages will be
- * aggregated by bitwise AND. That means, a flag will be set in the
- * output, if that flag is set for all pages in the range. For
- * @KFD_IOCTL_SVM_ATTR_CLR_FLAGS, flags of all pages will be
- * aggregated by bitwise NOR. That means, a flag will be set in the
- * output, if that flag is clear for all pages in the range.
- * The minimum migration granularity throughout the range will be
- * returned for @KFD_IOCTL_SVM_ATTR_GRANULARITY.
- *
- * Querying of accessibility attributes works by initializing the
- * attribute type to @KFD_IOCTL_SVM_ATTR_ACCESS and the value to the
- * GPUID being queried. Multiple attributes can be given to allow
- * querying multiple GPUIDs. The ioctl function overwrites the
- * attribute type to indicate the access for the specified GPU.
- */
-struct kfd_ioctl_svm_args {
-	__u64 start_addr;
-	__u64 size;
-	__u32 op;
-	__u32 nattr;
-	/* Variable length array of attributes */
-	struct kfd_ioctl_svm_attribute attrs[0];
-};
-
-/**
- * kfd_ioctl_set_xnack_mode_args - Arguments for set_xnack_mode
- *
- * @xnack_enabled:       [in/out] Whether to enable XNACK mode for this process
- *
- * @xnack_enabled indicates whether recoverable page faults should be
- * enabled for the current process. 0 means disabled, positive means
- * enabled, negative means leave unchanged. If enabled, virtual address
- * translations on GFXv9 and later AMD GPUs can return XNACK and retry
- * the access until a valid PTE is available. This is used to implement
- * device page faults.
- *
- * On output, @xnack_enabled returns the (new) current mode (0 or
- * positive). Therefore, a negative input value can be used to query
- * the current mode without changing it.
- *
- * The XNACK mode fundamentally changes the way SVM managed memory works
- * in the driver, with subtle effects on application performance and
- * functionality.
- *
- * Enabling XNACK mode requires shader programs to be compiled
- * differently. Furthermore, not all GPUs support changing the mode
- * per-process. Therefore changing the mode is only allowed while no
- * user mode queues exist in the process. This ensure that no shader
- * code is running that may be compiled for the wrong mode. And GPUs
- * that cannot change to the requested mode will prevent the XNACK
- * mode from occurring. All GPUs used by the process must be in the
- * same XNACK mode.
- *
- * GFXv8 or older GPUs do not support 48 bit virtual addresses or SVM.
- * Therefore those GPUs are not considered for the XNACK mode switch.
- *
- * Return: 0 on success, -errno on failure
- */
-struct kfd_ioctl_set_xnack_mode_args {
-	__s32 xnack_enabled;
-};
-
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr)			_IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr, type)		_IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -737,12 +571,7 @@
 #define AMDKFD_IOC_SMI_EVENTS			\
 		AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
 
-#define AMDKFD_IOC_SVM	AMDKFD_IOWR(0x20, struct kfd_ioctl_svm_args)
-
-#define AMDKFD_IOC_SET_XNACK_MODE		\
-		AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
-
 #define AMDKFD_COMMAND_START		0x01
-#define AMDKFD_COMMAND_END		0x22
+#define AMDKFD_COMMAND_END		0x20
 
 #endif
diff --git a/original/uapi/linux/kfd_sysfs.h b/original/uapi/linux/kfd_sysfs.h
deleted file mode 100644
index 3e330f3..0000000
--- a/original/uapi/linux/kfd_sysfs.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR MIT */
-/*
- * Copyright 2021 Advanced Micro Devices, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * 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 COPYRIGHT HOLDER(S) OR AUTHOR(S) 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 KFD_SYSFS_H_INCLUDED
-#define KFD_SYSFS_H_INCLUDED
-
-/* Capability bits in node properties */
-#define HSA_CAP_HOT_PLUGGABLE			0x00000001
-#define HSA_CAP_ATS_PRESENT			0x00000002
-#define HSA_CAP_SHARED_WITH_GRAPHICS		0x00000004
-#define HSA_CAP_QUEUE_SIZE_POW2			0x00000008
-#define HSA_CAP_QUEUE_SIZE_32BIT		0x00000010
-#define HSA_CAP_QUEUE_IDLE_EVENT		0x00000020
-#define HSA_CAP_VA_LIMIT			0x00000040
-#define HSA_CAP_WATCH_POINTS_SUPPORTED		0x00000080
-#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK	0x00000f00
-#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT	8
-#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK	0x00003000
-#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT	12
-
-#define HSA_CAP_DOORBELL_TYPE_PRE_1_0		0x0
-#define HSA_CAP_DOORBELL_TYPE_1_0		0x1
-#define HSA_CAP_DOORBELL_TYPE_2_0		0x2
-#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP		0x00004000
-
-/* Old buggy user mode depends on this being 0 */
-#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED	0x00080000
-
-#define HSA_CAP_MEM_EDCSUPPORTED		0x00100000
-#define HSA_CAP_RASEVENTNOTIFY			0x00200000
-#define HSA_CAP_ASIC_REVISION_MASK		0x03c00000
-#define HSA_CAP_ASIC_REVISION_SHIFT		22
-#define HSA_CAP_SRAM_EDCSUPPORTED		0x04000000
-#define HSA_CAP_SVMAPI_SUPPORTED		0x08000000
-#define HSA_CAP_FLAGS_COHERENTHOSTACCESS	0x10000000
-#define HSA_CAP_RESERVED			0xe00f8000
-
-/* Heap types in memory properties */
-#define HSA_MEM_HEAP_TYPE_SYSTEM	0
-#define HSA_MEM_HEAP_TYPE_FB_PUBLIC	1
-#define HSA_MEM_HEAP_TYPE_FB_PRIVATE	2
-#define HSA_MEM_HEAP_TYPE_GPU_GDS	3
-#define HSA_MEM_HEAP_TYPE_GPU_LDS	4
-#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH	5
-
-/* Flag bits in memory properties */
-#define HSA_MEM_FLAGS_HOT_PLUGGABLE		0x00000001
-#define HSA_MEM_FLAGS_NON_VOLATILE		0x00000002
-#define HSA_MEM_FLAGS_RESERVED			0xfffffffc
-
-/* Cache types in cache properties */
-#define HSA_CACHE_TYPE_DATA		0x00000001
-#define HSA_CACHE_TYPE_INSTRUCTION	0x00000002
-#define HSA_CACHE_TYPE_CPU		0x00000004
-#define HSA_CACHE_TYPE_HSACU		0x00000008
-#define HSA_CACHE_TYPE_RESERVED		0xfffffff0
-
-/* Link types in IO link properties (matches CRAT link types) */
-#define HSA_IOLINK_TYPE_UNDEFINED	0
-#define HSA_IOLINK_TYPE_HYPERTRANSPORT	1
-#define HSA_IOLINK_TYPE_PCIEXPRESS	2
-#define HSA_IOLINK_TYPE_AMBA		3
-#define HSA_IOLINK_TYPE_MIPI		4
-#define HSA_IOLINK_TYPE_QPI_1_1	5
-#define HSA_IOLINK_TYPE_RESERVED1	6
-#define HSA_IOLINK_TYPE_RESERVED2	7
-#define HSA_IOLINK_TYPE_RAPID_IO	8
-#define HSA_IOLINK_TYPE_INFINIBAND	9
-#define HSA_IOLINK_TYPE_RESERVED3	10
-#define HSA_IOLINK_TYPE_XGMI		11
-#define HSA_IOLINK_TYPE_XGOP		12
-#define HSA_IOLINK_TYPE_GZ		13
-#define HSA_IOLINK_TYPE_ETHERNET_RDMA	14
-#define HSA_IOLINK_TYPE_RDMA_OTHER	15
-#define HSA_IOLINK_TYPE_OTHER		16
-
-/* Flag bits in IO link properties (matches CRAT flags, excluding the
- * bi-directional flag, which is not offially part of the CRAT spec, and
- * only used internally in KFD)
- */
-#define HSA_IOLINK_FLAGS_ENABLED		(1 << 0)
-#define HSA_IOLINK_FLAGS_NON_COHERENT		(1 << 1)
-#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT	(1 << 2)
-#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT	(1 << 3)
-#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA	(1 << 4)
-#define HSA_IOLINK_FLAGS_RESERVED		0xffffffe0
-
-#endif
diff --git a/original/uapi/linux/kvm.h b/original/uapi/linux/kvm.h
index 507ee1f..f6afee2 100644
--- a/original/uapi/linux/kvm.h
+++ b/original/uapi/linux/kvm.h
@@ -8,7 +8,6 @@
  * Note: you must update KVM_API_VERSION if you change this interface.
  */
 
-#include <linux/const.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <linux/ioctl.h>
@@ -269,7 +268,6 @@
 #define KVM_EXIT_AP_RESET_HOLD    32
 #define KVM_EXIT_X86_BUS_LOCK     33
 #define KVM_EXIT_XEN              34
-#define KVM_EXIT_RISCV_SBI        35
 
 /* For KVM_EXIT_INTERNAL_ERROR */
 /* Emulate instruction failed. */
@@ -281,9 +279,6 @@
 /* Encounter unexpected vm-exit reason */
 #define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON	4
 
-/* Flags that describe what fields in emulation_failure hold valid data. */
-#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
-
 /* for KVM_RUN, returned by mmap(vcpu_fd, offset=0) */
 struct kvm_run {
 	/* in */
@@ -387,35 +382,6 @@
 			__u32 ndata;
 			__u64 data[16];
 		} internal;
-		/*
-		 * KVM_INTERNAL_ERROR_EMULATION
-		 *
-		 * "struct emulation_failure" is an overlay of "struct internal"
-		 * that is used for the KVM_INTERNAL_ERROR_EMULATION sub-type of
-		 * KVM_EXIT_INTERNAL_ERROR.  Note, unlike other internal error
-		 * sub-types, this struct is ABI!  It also needs to be backwards
-		 * compatible with "struct internal".  Take special care that
-		 * "ndata" is correct, that new fields are enumerated in "flags",
-		 * and that each flag enumerates fields that are 64-bit aligned
-		 * and sized (so that ndata+internal.data[] is valid/accurate).
-		 *
-		 * Space beyond the defined fields may be used to store arbitrary
-		 * debug information relating to the emulation failure. It is
-		 * accounted for in "ndata" but the format is unspecified and is
-		 * not represented in "flags". Any such information is *not* ABI!
-		 */
-		struct {
-			__u32 suberror;
-			__u32 ndata;
-			__u64 flags;
-			union {
-				struct {
-					__u8  insn_size;
-					__u8  insn_bytes[15];
-				};
-			};
-			/* Arbitrary debug data may follow. */
-		} emulation_failure;
 		/* KVM_EXIT_OSI */
 		struct {
 			__u64 gprs[32];
@@ -480,13 +446,6 @@
 		} msr;
 		/* KVM_EXIT_XEN */
 		struct kvm_xen_exit xen;
-		/* KVM_EXIT_RISCV_SBI */
-		struct {
-			unsigned long extension_id;
-			unsigned long function_id;
-			unsigned long args[6];
-			unsigned long ret[2];
-		} riscv_sbi;
 		/* Fix the size of the union. */
 		char padding[256];
 	};
@@ -1119,22 +1078,6 @@
 #define KVM_CAP_DIRTY_LOG_RING 192
 #define KVM_CAP_X86_BUS_LOCK_EXIT 193
 #define KVM_CAP_PPC_DAWR1 194
-#define KVM_CAP_SET_GUEST_DEBUG2 195
-#define KVM_CAP_SGX_ATTRIBUTE 196
-#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
-#define KVM_CAP_PTP_KVM 198
-#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
-#define KVM_CAP_SREGS2 200
-#define KVM_CAP_EXIT_HYPERCALL 201
-#define KVM_CAP_PPC_RPT_INVALIDATE 202
-#define KVM_CAP_BINARY_STATS_FD 203
-#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
-#define KVM_CAP_ARM_MTE 205
-#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
-#define KVM_CAP_VM_GPA_BITS 207
-#define KVM_CAP_XSAVE2 208
-#define KVM_CAP_SYS_ATTRIBUTES 209
-#define KVM_CAP_PPC_AIL_MODE_3 210
 
 #ifdef KVM_CAP_IRQ_ROUTING
 
@@ -1166,20 +1109,11 @@
 	__u32 sint;
 };
 
-struct kvm_irq_routing_xen_evtchn {
-	__u32 port;
-	__u32 vcpu;
-	__u32 priority;
-};
-
-#define KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL ((__u32)(-1))
-
 /* gsi routing entry types */
 #define KVM_IRQ_ROUTING_IRQCHIP 1
 #define KVM_IRQ_ROUTING_MSI 2
 #define KVM_IRQ_ROUTING_S390_ADAPTER 3
 #define KVM_IRQ_ROUTING_HV_SINT 4
-#define KVM_IRQ_ROUTING_XEN_EVTCHN 5
 
 struct kvm_irq_routing_entry {
 	__u32 gsi;
@@ -1191,7 +1125,6 @@
 		struct kvm_irq_routing_msi msi;
 		struct kvm_irq_routing_s390_adapter adapter;
 		struct kvm_irq_routing_hv_sint hv_sint;
-		struct kvm_irq_routing_xen_evtchn xen_evtchn;
 		__u32 pad[8];
 	} u;
 };
@@ -1222,7 +1155,6 @@
 #define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL	(1 << 1)
 #define KVM_XEN_HVM_CONFIG_SHARED_INFO		(1 << 2)
 #define KVM_XEN_HVM_CONFIG_RUNSTATE		(1 << 3)
-#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL	(1 << 4)
 
 struct kvm_xen_hvm_config {
 	__u32 flags;
@@ -1257,16 +1189,11 @@
 
 /* Do not use 1, KVM_CHECK_EXTENSION returned it before we had flags.  */
 #define KVM_CLOCK_TSC_STABLE		2
-#define KVM_CLOCK_REALTIME		(1 << 2)
-#define KVM_CLOCK_HOST_TSC		(1 << 3)
 
 struct kvm_clock_data {
 	__u64 clock;
 	__u32 flags;
-	__u32 pad0;
-	__u64 realtime;
-	__u64 host_tsc;
-	__u32 pad[4];
+	__u32 pad[9];
 };
 
 /* For KVM_CAP_SW_TLB */
@@ -1496,7 +1423,6 @@
 /* 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)
-#define KVM_ARM_MTE_COPY_TAGS	  _IOR(KVMIO,  0xb4, struct kvm_arm_copy_mte_tags)
 
 /* ioctl for vm fd */
 #define KVM_CREATE_DEVICE	  _IOWR(KVMIO,  0xe0, struct kvm_create_device)
@@ -1690,9 +1616,6 @@
 #define KVM_XEN_VCPU_GET_ATTR	_IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR	_IOW(KVMIO,  0xcb, struct kvm_xen_vcpu_attr)
 
-#define KVM_GET_SREGS2             _IOR(KVMIO,  0xcc, struct kvm_sregs2)
-#define KVM_SET_SREGS2             _IOW(KVMIO,  0xcd, struct kvm_sregs2)
-
 struct kvm_xen_vcpu_attr {
 	__u16 type;
 	__u16 pad[3];
@@ -1748,8 +1671,6 @@
 	KVM_SEV_CERT_EXPORT,
 	/* Attestation report */
 	KVM_SEV_GET_ATTESTATION_REPORT,
-	/* Guest Migration Extension */
-	KVM_SEV_SEND_CANCEL,
 
 	KVM_SEV_NR_MAX,
 };
@@ -1808,45 +1729,6 @@
 	__u32 len;
 };
 
-struct kvm_sev_send_start {
-	__u32 policy;
-	__u64 pdh_cert_uaddr;
-	__u32 pdh_cert_len;
-	__u64 plat_certs_uaddr;
-	__u32 plat_certs_len;
-	__u64 amd_certs_uaddr;
-	__u32 amd_certs_len;
-	__u64 session_uaddr;
-	__u32 session_len;
-};
-
-struct kvm_sev_send_update_data {
-	__u64 hdr_uaddr;
-	__u32 hdr_len;
-	__u64 guest_uaddr;
-	__u32 guest_len;
-	__u64 trans_uaddr;
-	__u32 trans_len;
-};
-
-struct kvm_sev_receive_start {
-	__u32 handle;
-	__u32 policy;
-	__u64 pdh_uaddr;
-	__u32 pdh_len;
-	__u64 session_uaddr;
-	__u32 session_len;
-};
-
-struct kvm_sev_receive_update_data {
-	__u64 hdr_uaddr;
-	__u32 hdr_len;
-	__u64 guest_uaddr;
-	__u32 guest_len;
-	__u64 trans_uaddr;
-	__u32 trans_len;
-};
-
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU	(1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3		(1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX	(1 << 2)
@@ -1952,8 +1834,8 @@
  * conversion after harvesting an entry.  Also, it must not skip any
  * dirty bits, so that dirty bits are always harvested in sequence.
  */
-#define KVM_DIRTY_GFN_F_DIRTY           _BITUL(0)
-#define KVM_DIRTY_GFN_F_RESET           _BITUL(1)
+#define KVM_DIRTY_GFN_F_DIRTY           BIT(0)
+#define KVM_DIRTY_GFN_F_RESET           BIT(1)
 #define KVM_DIRTY_GFN_F_MASK            0x3
 
 /*
@@ -1971,82 +1853,4 @@
 #define KVM_BUS_LOCK_DETECTION_OFF             (1 << 0)
 #define KVM_BUS_LOCK_DETECTION_EXIT            (1 << 1)
 
-/**
- * struct kvm_stats_header - Header of per vm/vcpu binary statistics data.
- * @flags: Some extra information for header, always 0 for now.
- * @name_size: The size in bytes of the memory which contains statistics
- *             name string including trailing '\0'. The memory is allocated
- *             at the send of statistics descriptor.
- * @num_desc: The number of statistics the vm or vcpu has.
- * @id_offset: The offset of the vm/vcpu stats' id string in the file pointed
- *             by vm/vcpu stats fd.
- * @desc_offset: The offset of the vm/vcpu stats' descriptor block in the file
- *               pointd by vm/vcpu stats fd.
- * @data_offset: The offset of the vm/vcpu stats' data block in the file
- *               pointed by vm/vcpu stats fd.
- *
- * This is the header userspace needs to read from stats fd before any other
- * readings. It is used by userspace to discover all the information about the
- * vm/vcpu's binary statistics.
- * Userspace reads this header from the start of the vm/vcpu's stats fd.
- */
-struct kvm_stats_header {
-	__u32 flags;
-	__u32 name_size;
-	__u32 num_desc;
-	__u32 id_offset;
-	__u32 desc_offset;
-	__u32 data_offset;
-};
-
-#define KVM_STATS_TYPE_SHIFT		0
-#define KVM_STATS_TYPE_MASK		(0xF << KVM_STATS_TYPE_SHIFT)
-#define KVM_STATS_TYPE_CUMULATIVE	(0x0 << KVM_STATS_TYPE_SHIFT)
-#define KVM_STATS_TYPE_INSTANT		(0x1 << KVM_STATS_TYPE_SHIFT)
-#define KVM_STATS_TYPE_PEAK		(0x2 << KVM_STATS_TYPE_SHIFT)
-#define KVM_STATS_TYPE_LINEAR_HIST	(0x3 << KVM_STATS_TYPE_SHIFT)
-#define KVM_STATS_TYPE_LOG_HIST		(0x4 << KVM_STATS_TYPE_SHIFT)
-#define KVM_STATS_TYPE_MAX		KVM_STATS_TYPE_LOG_HIST
-
-#define KVM_STATS_UNIT_SHIFT		4
-#define KVM_STATS_UNIT_MASK		(0xF << KVM_STATS_UNIT_SHIFT)
-#define KVM_STATS_UNIT_NONE		(0x0 << KVM_STATS_UNIT_SHIFT)
-#define KVM_STATS_UNIT_BYTES		(0x1 << KVM_STATS_UNIT_SHIFT)
-#define KVM_STATS_UNIT_SECONDS		(0x2 << KVM_STATS_UNIT_SHIFT)
-#define KVM_STATS_UNIT_CYCLES		(0x3 << KVM_STATS_UNIT_SHIFT)
-#define KVM_STATS_UNIT_MAX		KVM_STATS_UNIT_CYCLES
-
-#define KVM_STATS_BASE_SHIFT		8
-#define KVM_STATS_BASE_MASK		(0xF << KVM_STATS_BASE_SHIFT)
-#define KVM_STATS_BASE_POW10		(0x0 << KVM_STATS_BASE_SHIFT)
-#define KVM_STATS_BASE_POW2		(0x1 << KVM_STATS_BASE_SHIFT)
-#define KVM_STATS_BASE_MAX		KVM_STATS_BASE_POW2
-
-/**
- * struct kvm_stats_desc - Descriptor of a KVM statistics.
- * @flags: Annotations of the stats, like type, unit, etc.
- * @exponent: Used together with @flags to determine the unit.
- * @size: The number of data items for this stats.
- *        Every data item is of type __u64.
- * @offset: The offset of the stats to the start of stat structure in
- *          structure kvm or kvm_vcpu.
- * @bucket_size: A parameter value used for histogram stats. It is only used
- *		for linear histogram stats, specifying the size of the bucket;
- * @name: The name string for the stats. Its size is indicated by the
- *        &kvm_stats_header->name_size.
- */
-struct kvm_stats_desc {
-	__u32 flags;
-	__s16 exponent;
-	__u16 size;
-	__u32 offset;
-	__u32 bucket_size;
-	char name[];
-};
-
-#define KVM_GET_STATS_FD  _IO(KVMIO,  0xce)
-
-/* Available with KVM_CAP_XSAVE2 */
-#define KVM_GET_XSAVE2		  _IOR(KVMIO,  0xcf, struct kvm_xsave)
-
 #endif /* __LINUX_KVM_H */
diff --git a/original/uapi/linux/kvm_para.h b/original/uapi/linux/kvm_para.h
index 960c7e9..8b86609 100644
--- a/original/uapi/linux/kvm_para.h
+++ b/original/uapi/linux/kvm_para.h
@@ -29,7 +29,6 @@
 #define KVM_HC_CLOCK_PAIRING		9
 #define KVM_HC_SEND_IPI		10
 #define KVM_HC_SCHED_YIELD		11
-#define KVM_HC_MAP_GPA_RANGE		12
 
 /*
  * hypercalls use architecture specific
diff --git a/original/uapi/linux/landlock.h b/original/uapi/linux/landlock.h
deleted file mode 100644
index b3d9520..0000000
--- a/original/uapi/linux/landlock.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Landlock - User space API
- *
- * Copyright © 2017-2020 Mickaël Salaün <mic@digikod.net>
- * Copyright © 2018-2020 ANSSI
- */
-
-#ifndef _UAPI_LINUX_LANDLOCK_H
-#define _UAPI_LINUX_LANDLOCK_H
-
-#include <linux/types.h>
-
-/**
- * struct landlock_ruleset_attr - Ruleset definition
- *
- * Argument of sys_landlock_create_ruleset().  This structure can grow in
- * future versions.
- */
-struct landlock_ruleset_attr {
-	/**
-	 * @handled_access_fs: Bitmask of actions (cf. `Filesystem flags`_)
-	 * that is handled by this ruleset and should then be forbidden if no
-	 * rule explicitly allow them.  This is needed for backward
-	 * compatibility reasons.
-	 */
-	__u64 handled_access_fs;
-};
-
-/*
- * sys_landlock_create_ruleset() flags:
- *
- * - %LANDLOCK_CREATE_RULESET_VERSION: Get the highest supported Landlock ABI
- *   version.
- */
-#define LANDLOCK_CREATE_RULESET_VERSION			(1U << 0)
-
-/**
- * enum landlock_rule_type - Landlock rule type
- *
- * Argument of sys_landlock_add_rule().
- */
-enum landlock_rule_type {
-	/**
-	 * @LANDLOCK_RULE_PATH_BENEATH: Type of a &struct
-	 * landlock_path_beneath_attr .
-	 */
-	LANDLOCK_RULE_PATH_BENEATH = 1,
-};
-
-/**
- * struct landlock_path_beneath_attr - Path hierarchy definition
- *
- * Argument of sys_landlock_add_rule().
- */
-struct landlock_path_beneath_attr {
-	/**
-	 * @allowed_access: Bitmask of allowed actions for this file hierarchy
-	 * (cf. `Filesystem flags`_).
-	 */
-	__u64 allowed_access;
-	/**
-	 * @parent_fd: File descriptor, open with ``O_PATH``, which identifies
-	 * the parent directory of a file hierarchy, or just a file.
-	 */
-	__s32 parent_fd;
-	/*
-	 * This struct is packed to avoid trailing reserved members.
-	 * Cf. security/landlock/syscalls.c:build_check_abi()
-	 */
-} __attribute__((packed));
-
-/**
- * DOC: fs_access
- *
- * A set of actions on kernel objects may be defined by an attribute (e.g.
- * &struct landlock_path_beneath_attr) including a bitmask of access.
- *
- * Filesystem flags
- * ~~~~~~~~~~~~~~~~
- *
- * These flags enable to restrict a sandboxed process to a set of actions on
- * files and directories.  Files or directories opened before the sandboxing
- * are not subject to these restrictions.
- *
- * A file can only receive these access rights:
- *
- * - %LANDLOCK_ACCESS_FS_EXECUTE: Execute a file.
- * - %LANDLOCK_ACCESS_FS_WRITE_FILE: Open a file with write access.
- * - %LANDLOCK_ACCESS_FS_READ_FILE: Open a file with read access.
- *
- * A directory can receive access rights related to files or directories.  The
- * following access right is applied to the directory itself, and the
- * directories beneath it:
- *
- * - %LANDLOCK_ACCESS_FS_READ_DIR: Open a directory or list its content.
- *
- * However, the following access rights only apply to the content of a
- * directory, not the directory itself:
- *
- * - %LANDLOCK_ACCESS_FS_REMOVE_DIR: Remove an empty directory or rename one.
- * - %LANDLOCK_ACCESS_FS_REMOVE_FILE: Unlink (or rename) a file.
- * - %LANDLOCK_ACCESS_FS_MAKE_CHAR: Create (or rename or link) a character
- *   device.
- * - %LANDLOCK_ACCESS_FS_MAKE_DIR: Create (or rename) a directory.
- * - %LANDLOCK_ACCESS_FS_MAKE_REG: Create (or rename or link) a regular file.
- * - %LANDLOCK_ACCESS_FS_MAKE_SOCK: Create (or rename or link) a UNIX domain
- *   socket.
- * - %LANDLOCK_ACCESS_FS_MAKE_FIFO: Create (or rename or link) a named pipe.
- * - %LANDLOCK_ACCESS_FS_MAKE_BLOCK: Create (or rename or link) a block device.
- * - %LANDLOCK_ACCESS_FS_MAKE_SYM: Create (or rename or link) a symbolic link.
- *
- * .. warning::
- *
- *   It is currently not possible to restrict some file-related actions
- *   accessible through these syscall families: :manpage:`chdir(2)`,
- *   :manpage:`truncate(2)`, :manpage:`stat(2)`, :manpage:`flock(2)`,
- *   :manpage:`chmod(2)`, :manpage:`chown(2)`, :manpage:`setxattr(2)`,
- *   :manpage:`utime(2)`, :manpage:`ioctl(2)`, :manpage:`fcntl(2)`,
- *   :manpage:`access(2)`.
- *   Future Landlock evolutions will enable to restrict them.
- */
-#define LANDLOCK_ACCESS_FS_EXECUTE			(1ULL << 0)
-#define LANDLOCK_ACCESS_FS_WRITE_FILE			(1ULL << 1)
-#define LANDLOCK_ACCESS_FS_READ_FILE			(1ULL << 2)
-#define LANDLOCK_ACCESS_FS_READ_DIR			(1ULL << 3)
-#define LANDLOCK_ACCESS_FS_REMOVE_DIR			(1ULL << 4)
-#define LANDLOCK_ACCESS_FS_REMOVE_FILE			(1ULL << 5)
-#define LANDLOCK_ACCESS_FS_MAKE_CHAR			(1ULL << 6)
-#define LANDLOCK_ACCESS_FS_MAKE_DIR			(1ULL << 7)
-#define LANDLOCK_ACCESS_FS_MAKE_REG			(1ULL << 8)
-#define LANDLOCK_ACCESS_FS_MAKE_SOCK			(1ULL << 9)
-#define LANDLOCK_ACCESS_FS_MAKE_FIFO			(1ULL << 10)
-#define LANDLOCK_ACCESS_FS_MAKE_BLOCK			(1ULL << 11)
-#define LANDLOCK_ACCESS_FS_MAKE_SYM			(1ULL << 12)
-
-#endif /* _UAPI_LINUX_LANDLOCK_H */
diff --git a/original/uapi/linux/lightnvm.h b/original/uapi/linux/lightnvm.h
new file mode 100644
index 0000000..ead2e72
--- /dev/null
+++ b/original/uapi/linux/lightnvm.h
@@ -0,0 +1,225 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * Copyright (C) 2015 CNEX Labs.  All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version
+ * 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING.  If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139,
+ * USA.
+ */
+
+#ifndef _UAPI_LINUX_LIGHTNVM_H
+#define _UAPI_LINUX_LIGHTNVM_H
+
+#ifdef __KERNEL__
+#include <linux/const.h>
+#include <linux/ioctl.h>
+#else /* __KERNEL__ */
+#include <stdio.h>
+#include <sys/ioctl.h>
+#define DISK_NAME_LEN 32
+#endif /* __KERNEL__ */
+
+#include <linux/types.h>
+#include <linux/ioctl.h>
+
+#define NVM_TTYPE_NAME_MAX 48
+#define NVM_TTYPE_MAX 63
+#define NVM_MMTYPE_LEN 8
+
+#define NVM_CTRL_FILE "/dev/lightnvm/control"
+
+struct nvm_ioctl_info_tgt {
+	__u32 version[3];
+	__u32 reserved;
+	char tgtname[NVM_TTYPE_NAME_MAX];
+};
+
+struct nvm_ioctl_info {
+	__u32 version[3];	/* in/out - major, minor, patch */
+	__u16 tgtsize;		/* number of targets */
+	__u16 reserved16;	/* pad to 4K page */
+	__u32 reserved[12];
+	struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX];
+};
+
+enum {
+	NVM_DEVICE_ACTIVE = 1 << 0,
+};
+
+struct nvm_ioctl_device_info {
+	char devname[DISK_NAME_LEN];
+	char bmname[NVM_TTYPE_NAME_MAX];
+	__u32 bmversion[3];
+	__u32 flags;
+	__u32 reserved[8];
+};
+
+struct nvm_ioctl_get_devices {
+	__u32 nr_devices;
+	__u32 reserved[31];
+	struct nvm_ioctl_device_info info[31];
+};
+
+struct nvm_ioctl_create_simple {
+	__u32 lun_begin;
+	__u32 lun_end;
+};
+
+struct nvm_ioctl_create_extended {
+	__u16 lun_begin;
+	__u16 lun_end;
+	__u16 op;
+	__u16 rsv;
+};
+
+enum {
+	NVM_CONFIG_TYPE_SIMPLE = 0,
+	NVM_CONFIG_TYPE_EXTENDED = 1,
+};
+
+struct nvm_ioctl_create_conf {
+	__u32 type;
+	union {
+		struct nvm_ioctl_create_simple s;
+		struct nvm_ioctl_create_extended e;
+	};
+};
+
+enum {
+	NVM_TARGET_FACTORY = 1 << 0,	/* Init target in factory mode */
+};
+
+struct nvm_ioctl_create {
+	char dev[DISK_NAME_LEN];		/* open-channel SSD device */
+	char tgttype[NVM_TTYPE_NAME_MAX];	/* target type name */
+	char tgtname[DISK_NAME_LEN];		/* dev to expose target as */
+
+	__u32 flags;
+
+	struct nvm_ioctl_create_conf conf;
+};
+
+struct nvm_ioctl_remove {
+	char tgtname[DISK_NAME_LEN];
+
+	__u32 flags;
+};
+
+struct nvm_ioctl_dev_init {
+	char dev[DISK_NAME_LEN];		/* open-channel SSD device */
+	char mmtype[NVM_MMTYPE_LEN];		/* register to media manager */
+
+	__u32 flags;
+};
+
+enum {
+	NVM_FACTORY_ERASE_ONLY_USER	= 1 << 0, /* erase only blocks used as
+						   * host blks or grown blks */
+	NVM_FACTORY_RESET_HOST_BLKS	= 1 << 1, /* remove host blk marks */
+	NVM_FACTORY_RESET_GRWN_BBLKS	= 1 << 2, /* remove grown blk marks */
+	NVM_FACTORY_NR_BITS		= 1 << 3, /* stops here */
+};
+
+struct nvm_ioctl_dev_factory {
+	char dev[DISK_NAME_LEN];
+
+	__u32 flags;
+};
+
+struct nvm_user_vio {
+	__u8 opcode;
+	__u8 flags;
+	__u16 control;
+	__u16 nppas;
+	__u16 rsvd;
+	__u64 metadata;
+	__u64 addr;
+	__u64 ppa_list;
+	__u32 metadata_len;
+	__u32 data_len;
+	__u64 status;
+	__u32 result;
+	__u32 rsvd3[3];
+};
+
+struct nvm_passthru_vio {
+	__u8 opcode;
+	__u8 flags;
+	__u8 rsvd[2];
+	__u32 nsid;
+	__u32 cdw2;
+	__u32 cdw3;
+	__u64 metadata;
+	__u64 addr;
+	__u32 metadata_len;
+	__u32 data_len;
+	__u64 ppa_list;
+	__u16 nppas;
+	__u16 control;
+	__u32 cdw13;
+	__u32 cdw14;
+	__u32 cdw15;
+	__u64 status;
+	__u32 result;
+	__u32 timeout_ms;
+};
+
+/* The ioctl type, 'L', 0x20 - 0x2F documented in ioctl-number.txt */
+enum {
+	/* top level cmds */
+	NVM_INFO_CMD = 0x20,
+	NVM_GET_DEVICES_CMD,
+
+	/* device level cmds */
+	NVM_DEV_CREATE_CMD,
+	NVM_DEV_REMOVE_CMD,
+
+	/* Init a device to support LightNVM media managers */
+	NVM_DEV_INIT_CMD,
+
+	/* Factory reset device */
+	NVM_DEV_FACTORY_CMD,
+
+	/* Vector user I/O */
+	NVM_DEV_VIO_ADMIN_CMD = 0x41,
+	NVM_DEV_VIO_CMD = 0x42,
+	NVM_DEV_VIO_USER_CMD = 0x43,
+};
+
+#define NVM_IOCTL 'L' /* 0x4c */
+
+#define NVM_INFO		_IOWR(NVM_IOCTL, NVM_INFO_CMD, \
+						struct nvm_ioctl_info)
+#define NVM_GET_DEVICES		_IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, \
+						struct nvm_ioctl_get_devices)
+#define NVM_DEV_CREATE		_IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, \
+						struct nvm_ioctl_create)
+#define NVM_DEV_REMOVE		_IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, \
+						struct nvm_ioctl_remove)
+#define NVM_DEV_INIT		_IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, \
+						struct nvm_ioctl_dev_init)
+#define NVM_DEV_FACTORY		_IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, \
+						struct nvm_ioctl_dev_factory)
+
+#define NVME_NVM_IOCTL_IO_VIO		_IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, \
+						struct nvm_passthru_vio)
+#define NVME_NVM_IOCTL_ADMIN_VIO	_IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD,\
+						struct nvm_passthru_vio)
+#define NVME_NVM_IOCTL_SUBMIT_VIO	_IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD,\
+						struct nvm_user_vio)
+
+#define NVM_VERSION_MAJOR	1
+#define NVM_VERSION_MINOR	0
+#define NVM_VERSION_PATCHLEVEL	0
+
+#endif
diff --git a/original/uapi/linux/lirc.h b/original/uapi/linux/lirc.h
index 9919f20..c45a4ea 100644
--- a/original/uapi/linux/lirc.h
+++ b/original/uapi/linux/lirc.h
@@ -1,6 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 /*
  * lirc.h - linux infrared remote control header file
+ * last modified 2010/07/13 by Jarod Wilson
  */
 
 #ifndef _LINUX_LIRC_H
diff --git a/original/uapi/linux/lwtunnel.h b/original/uapi/linux/lwtunnel.h
index 2e20691..568a430 100644
--- a/original/uapi/linux/lwtunnel.h
+++ b/original/uapi/linux/lwtunnel.h
@@ -14,7 +14,6 @@
 	LWTUNNEL_ENCAP_BPF,
 	LWTUNNEL_ENCAP_SEG6_LOCAL,
 	LWTUNNEL_ENCAP_RPL,
-	LWTUNNEL_ENCAP_IOAM6,
 	__LWTUNNEL_ENCAP_MAX,
 };
 
diff --git a/original/uapi/linux/magic.h b/original/uapi/linux/magic.h
index f724129..f3956fc 100644
--- a/original/uapi/linux/magic.h
+++ b/original/uapi/linux/magic.h
@@ -6,7 +6,6 @@
 #define AFFS_SUPER_MAGIC	0xadff
 #define AFS_SUPER_MAGIC                0x5346414F
 #define AUTOFS_SUPER_MAGIC	0x0187
-#define CEPH_SUPER_MAGIC	0x00c36400
 #define CODA_SUPER_MAGIC	0x73757245
 #define CRAMFS_MAGIC		0x28cd3d45	/* some random number */
 #define CRAMFS_MAGIC_WEND	0x453dcd28	/* magic number with the wrong endianess */
@@ -36,7 +35,6 @@
 #define EFIVARFS_MAGIC		0xde5e81e4
 #define HOSTFS_SUPER_MAGIC	0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC	0x794c7630
-#define FUSE_SUPER_MAGIC	0x65735546
 
 #define MINIX_SUPER_MAGIC	0x137F		/* minix v1 fs, 14 char names */
 #define MINIX_SUPER_MAGIC2	0x138F		/* minix v1 fs, 30 char names */
@@ -45,7 +43,6 @@
 #define MINIX3_SUPER_MAGIC	0x4d5a		/* minix v3 fs, 60 char names */
 
 #define MSDOS_SUPER_MAGIC	0x4d44		/* MD */
-#define EXFAT_SUPER_MAGIC	0x2011BAB0
 #define NCP_SUPER_MAGIC		0x564c		/* Guess, what 0x564c is :-) */
 #define NFS_SUPER_MAGIC		0x6969
 #define OCFS2_SUPER_MAGIC	0x7461636f
@@ -54,7 +51,6 @@
 #define QNX6_SUPER_MAGIC	0x68191122	/* qnx6 fs detection */
 #define AFS_FS_MAGIC		0x6B414653
 
-
 #define REISERFS_SUPER_MAGIC	0x52654973	/* used by gcc */
 					/* used by file system utilities that
 	                                   look at the superblock, etc.  */
@@ -63,9 +59,6 @@
 #define REISER2FS_JR_SUPER_MAGIC_STRING	"ReIsEr3Fs"
 
 #define SMB_SUPER_MAGIC		0x517B
-#define CIFS_SUPER_MAGIC	0xFF534D42      /* the first four bytes of SMB PDUs */
-#define SMB2_SUPER_MAGIC	0xFE534D42
-
 #define CGROUP_SUPER_MAGIC	0x27e0eb
 #define CGROUP2_SUPER_MAGIC	0x63677270
 
@@ -104,6 +97,5 @@
 #define DEVMEM_MAGIC		0x454d444d	/* "DMEM" */
 #define Z3FOLD_MAGIC		0x33
 #define PPC_CMM_MAGIC		0xc7571590
-#define SECRETMEM_MAGIC		0x5345434d	/* "SECM" */
 
 #endif /* __LINUX_MAGIC_H__ */
diff --git a/original/uapi/linux/major.h b/original/uapi/linux/major.h
index 4e5f2b3..7e5fa8e 100644
--- a/original/uapi/linux/major.h
+++ b/original/uapi/linux/major.h
@@ -34,6 +34,8 @@
 #define GOLDSTAR_CDROM_MAJOR	16
 #define OPTICS_CDROM_MAJOR	17
 #define SANYO_CDROM_MAJOR	18
+#define CYCLADES_MAJOR		19
+#define CYCLADESAUX_MAJOR	20
 #define MITSUMI_X_CDROM_MAJOR	20
 #define MFM_ACORN_MAJOR		21	/* ARM Linux /dev/mfm */
 #define SCSI_GENERIC_MAJOR	21
diff --git a/original/uapi/linux/map_to_14segment.h b/original/uapi/linux/map_to_14segment.h
deleted file mode 100644
index 0346ef7..0000000
--- a/original/uapi/linux/map_to_14segment.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * Copyright (C) 2021 Glider bv
- *
- * Based on include/uapi/linux/map_to_7segment.h:
-
- * Copyright (c) 2005 Henk Vergonet <Henk.Vergonet@gmail.com>
- */
-
-#ifndef MAP_TO_14SEGMENT_H
-#define MAP_TO_14SEGMENT_H
-
-/* This file provides translation primitives and tables for the conversion
- * of (ASCII) characters to a 14-segments notation.
- *
- * The 14 segment's wikipedia notation below is used as standard.
- * See: https://en.wikipedia.org/wiki/Fourteen-segment_display
- *
- * Notation:	+---a---+
- *		|\  |  /|
- *		f h i j b
- *		|  \|/  |
- *		+-g1+-g2+
- *		|  /|\  |
- *		e k l m c
- *		|/  |  \|
- *		+---d---+
- *
- * Usage:
- *
- *   Register a map variable, and fill it with a character set:
- *	static SEG14_DEFAULT_MAP(map_seg14);
- *
- *
- *   Then use for conversion:
- *	seg14 = map_to_seg14(&map_seg14, some_char);
- *	...
- *
- * In device drivers it is recommended, if required, to make the char map
- * accessible via the sysfs interface using the following scheme:
- *
- * static ssize_t map_seg14_show(struct device *dev,
- *				 struct device_attribute *attr, char *buf)
- * {
- *	memcpy(buf, &map_seg14, sizeof(map_seg14));
- *	return sizeof(map_seg14);
- * }
- * static ssize_t map_seg14_store(struct device *dev,
- *				  struct device_attribute *attr,
- *				  const char *buf, size_t cnt)
- * {
- *	if (cnt != sizeof(map_seg14))
- *		return -EINVAL;
- *	memcpy(&map_seg14, buf, cnt);
- *	return cnt;
- * }
- * static DEVICE_ATTR_RW(map_seg14);
- */
-#include <linux/errno.h>
-#include <linux/types.h>
-
-#include <asm/byteorder.h>
-
-#define BIT_SEG14_A		0
-#define BIT_SEG14_B		1
-#define BIT_SEG14_C		2
-#define BIT_SEG14_D		3
-#define BIT_SEG14_E		4
-#define BIT_SEG14_F		5
-#define BIT_SEG14_G1		6
-#define BIT_SEG14_G2		7
-#define BIT_SEG14_H		8
-#define BIT_SEG14_I		9
-#define BIT_SEG14_J		10
-#define BIT_SEG14_K		11
-#define BIT_SEG14_L		12
-#define BIT_SEG14_M		13
-#define BIT_SEG14_RESERVED1	14
-#define BIT_SEG14_RESERVED2	15
-
-struct seg14_conversion_map {
-	__be16 table[128];
-};
-
-static __inline__ int map_to_seg14(struct seg14_conversion_map *map, int c)
-{
-	if (c < 0 || c >= sizeof(map->table) / sizeof(map->table[0]))
-		return -EINVAL;
-
-	return __be16_to_cpu(map->table[c]);
-}
-
-#define SEG14_CONVERSION_MAP(_name, _map)	\
-	struct seg14_conversion_map _name = { .table = { _map } }
-
-/*
- * It is recommended to use a facility that allows user space to redefine
- * custom character sets for LCD devices. Please use a sysfs interface
- * as described above.
- */
-#define MAP_TO_SEG14_SYSFS_FILE	"map_seg14"
-
-/*******************************************************************************
- * ASCII conversion table
- ******************************************************************************/
-
-#define _SEG14(sym, a, b, c, d, e, f, g1, g2, h, j, k, l, m, n)	\
-	__cpu_to_be16( a << BIT_SEG14_A  |  b << BIT_SEG14_B  |	\
-		       c << BIT_SEG14_C  |  d << BIT_SEG14_D  |	\
-		       e << BIT_SEG14_E  |  f << BIT_SEG14_F  |	\
-		      g1 << BIT_SEG14_G1 | g2 << BIT_SEG14_G2 |	\
-		       h << BIT_SEG14_H  |  j << BIT_SEG14_I  |	\
-		       k << BIT_SEG14_J  |  l << BIT_SEG14_K  |	\
-		       m << BIT_SEG14_L  |  n << BIT_SEG14_M )
-
-#define _MAP_0_32_ASCII_SEG14_NON_PRINTABLE				\
-	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-
-#define _MAP_33_47_ASCII_SEG14_SYMBOL				\
-	_SEG14('!', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('"', 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0),	\
-	_SEG14('#', 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0),	\
-	_SEG14('$', 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0),	\
-	_SEG14('%', 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0),	\
-	_SEG14('&', 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1),	\
-	_SEG14('\'',0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0),	\
-	_SEG14('(', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1),	\
-	_SEG14(')', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0),	\
-	_SEG14('*', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1),	\
-	_SEG14('+', 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0),	\
-	_SEG14(',', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0),	\
-	_SEG14('-', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),	\
-	_SEG14('/', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
-
-#define _MAP_48_57_ASCII_SEG14_NUMERIC				\
-	_SEG14('0', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0),	\
-	_SEG14('1', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0),	\
-	_SEG14('2', 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('3', 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('4', 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('5', 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1),	\
-	_SEG14('6', 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('7', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0),	\
-	_SEG14('8', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('9', 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
-
-#define _MAP_58_64_ASCII_SEG14_SYMBOL				\
-	_SEG14(':', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0),	\
-	_SEG14(';', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0),	\
-	_SEG14('<', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1),	\
-	_SEG14('=', 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('>', 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0),	\
-	_SEG14('?', 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0),	\
-	_SEG14('@', 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0),
-
-#define _MAP_65_90_ASCII_SEG14_ALPHA_UPPER			\
-	_SEG14('A', 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('B', 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0),	\
-	_SEG14('C', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('D', 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0),	\
-	_SEG14('E', 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('F', 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('G', 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('H', 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('I', 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0),	\
-	_SEG14('J', 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('K', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1),	\
-	_SEG14('L', 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('M', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0),	\
-	_SEG14('N', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1),	\
-	_SEG14('O', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('P', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('Q', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1),	\
-	_SEG14('R', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1),	\
-	_SEG14('S', 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('T', 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0),	\
-	_SEG14('U', 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('V', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0),	\
-	_SEG14('W', 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1),	\
-	_SEG14('X', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1),	\
-	_SEG14('Y', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0),	\
-	_SEG14('Z', 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
-
-#define _MAP_91_96_ASCII_SEG14_SYMBOL				\
-	_SEG14('[', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('\\',0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1),	\
-	_SEG14(']', 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1),	\
-	_SEG14('_', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('`', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0),
-
-#define _MAP_97_122_ASCII_SEG14_ALPHA_LOWER			\
-	_SEG14('a', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0),	\
-	_SEG14('b', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1),	\
-	_SEG14('c', 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('d', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0),	\
-	_SEG14('e', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0),	\
-	_SEG14('f', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0),	\
-	_SEG14('g', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0),	\
-	_SEG14('h', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0),	\
-	_SEG14('i', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0),	\
-	_SEG14('j', 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0),	\
-	_SEG14('k', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1),	\
-	_SEG14('l', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('m', 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0),	\
-	_SEG14('n', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0),	\
-	_SEG14('o', 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('p', 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0),	\
-	_SEG14('q', 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0),	\
-	_SEG14('r', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('s', 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1),	\
-	_SEG14('t', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('u', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0),	\
-	_SEG14('v', 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0),	\
-	_SEG14('w', 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1),	\
-	_SEG14('x', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1),	\
-	_SEG14('y', 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0),	\
-	_SEG14('z', 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0),
-
-#define _MAP_123_126_ASCII_SEG14_SYMBOL				\
-	_SEG14('{', 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0),	\
-	_SEG14('|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0),	\
-	_SEG14('}', 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1),	\
-	_SEG14('~', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0),
-
-/* Maps */
-#define MAP_ASCII14SEG_ALPHANUM			\
-	_MAP_0_32_ASCII_SEG14_NON_PRINTABLE	\
-	_MAP_33_47_ASCII_SEG14_SYMBOL		\
-	_MAP_48_57_ASCII_SEG14_NUMERIC		\
-	_MAP_58_64_ASCII_SEG14_SYMBOL		\
-	_MAP_65_90_ASCII_SEG14_ALPHA_UPPER	\
-	_MAP_91_96_ASCII_SEG14_SYMBOL		\
-	_MAP_97_122_ASCII_SEG14_ALPHA_LOWER	\
-	_MAP_123_126_ASCII_SEG14_SYMBOL
-
-#define SEG14_DEFAULT_MAP(_name)		\
-	SEG14_CONVERSION_MAP(_name, MAP_ASCII14SEG_ALPHANUM)
-
-#endif	/* MAP_TO_14SEGMENT_H */
diff --git a/original/uapi/linux/map_to_7segment.h b/original/uapi/linux/map_to_7segment.h
index 04c8b55..8b02088 100644
--- a/original/uapi/linux/map_to_7segment.h
+++ b/original/uapi/linux/map_to_7segment.h
@@ -1,6 +1,20 @@
 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
 /*
  * Copyright (c) 2005 Henk Vergonet <Henk.Vergonet@gmail.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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  */
 
 #ifndef MAP_TO_7SEGMENT_H
diff --git a/original/uapi/linux/mctp.h b/original/uapi/linux/mctp.h
deleted file mode 100644
index 07b0318..0000000
--- a/original/uapi/linux/mctp.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Management Component Transport Protocol (MCTP)
- *
- * Copyright (c) 2021 Code Construct
- * Copyright (c) 2021 Google
- */
-
-#ifndef __UAPI_MCTP_H
-#define __UAPI_MCTP_H
-
-#include <linux/types.h>
-#include <linux/socket.h>
-#include <linux/netdevice.h>
-
-typedef __u8			mctp_eid_t;
-
-struct mctp_addr {
-	mctp_eid_t		s_addr;
-};
-
-struct sockaddr_mctp {
-	__kernel_sa_family_t	smctp_family;
-	__u16			__smctp_pad0;
-	unsigned int		smctp_network;
-	struct mctp_addr	smctp_addr;
-	__u8			smctp_type;
-	__u8			smctp_tag;
-	__u8			__smctp_pad1;
-};
-
-struct sockaddr_mctp_ext {
-	struct sockaddr_mctp	smctp_base;
-	int			smctp_ifindex;
-	__u8			smctp_halen;
-	__u8			__smctp_pad0[3];
-	__u8			smctp_haddr[MAX_ADDR_LEN];
-};
-
-#define MCTP_NET_ANY		0x0
-
-#define MCTP_ADDR_NULL		0x00
-#define MCTP_ADDR_ANY		0xff
-
-#define MCTP_TAG_MASK		0x07
-#define MCTP_TAG_OWNER		0x08
-
-#define MCTP_OPT_ADDR_EXT	1
-
-#endif /* __UAPI_MCTP_H */
diff --git a/original/uapi/linux/mdio.h b/original/uapi/linux/mdio.h
index c54e6ea..3f302e2 100644
--- a/original/uapi/linux/mdio.h
+++ b/original/uapi/linux/mdio.h
@@ -53,14 +53,12 @@
 #define MDIO_AN_EEE_LPABLE	61	/* EEE link partner ability */
 #define MDIO_AN_EEE_ADV2	62	/* EEE advertisement 2 */
 #define MDIO_AN_EEE_LPABLE2	63	/* EEE link partner ability 2 */
-#define MDIO_AN_CTRL2		64	/* AN THP bypass request control */
 
 /* Media-dependent registers. */
 #define MDIO_PMA_10GBT_SWAPPOL	130	/* 10GBASE-T pair swap & polarity */
 #define MDIO_PMA_10GBT_TXPWR	131	/* 10GBASE-T TX power control */
 #define MDIO_PMA_10GBT_SNR	133	/* 10GBASE-T SNR margin, lane A.
 					 * Lanes B-D are numbered 134-136. */
-#define MDIO_PMA_10GBR_FSRT_CSR	147	/* 10GBASE-R fast retrain status and control */
 #define MDIO_PMA_10GBR_FECABLE	170	/* 10GBASE-R FEC ability */
 #define MDIO_PCS_10GBX_STAT1	24	/* 10GBASE-X PCS status 1 */
 #define MDIO_PCS_10GBRT_STAT1	32	/* 10GBASE-R/-T PCS status 1 */
@@ -122,8 +120,6 @@
 #define MDIO_PMA_SPEED_100		0x0020	/* 100M capable */
 #define MDIO_PMA_SPEED_10		0x0040	/* 10M capable */
 #define MDIO_PCS_SPEED_10P2B		0x0002	/* 10PASS-TS/2BASE-TL capable */
-#define MDIO_PCS_SPEED_2_5G		0x0040	/* 2.5G capable */
-#define MDIO_PCS_SPEED_5G		0x0080	/* 5G capable */
 
 /* Device present registers. */
 #define MDIO_DEVS_PRESENT(devad)	(1 << (devad))
@@ -241,9 +237,6 @@
 #define MDIO_PMA_10GBR_FECABLE_ABLE	0x0001	/* FEC ability */
 #define MDIO_PMA_10GBR_FECABLE_ERRABLE	0x0002	/* FEC error indic. ability */
 
-/* PMA 10GBASE-R Fast Retrain status and control register. */
-#define MDIO_PMA_10GBR_FSRT_ENABLE	0x0001	/* Fast retrain enable */
-
 /* PCS 10GBASE-R/-T status register 1. */
 #define MDIO_PCS_10GBRT_STAT1_BLKLK	0x0001	/* Block lock attained */
 
@@ -252,7 +245,6 @@
 #define MDIO_PCS_10GBRT_STAT2_BER	0x3f00
 
 /* AN 10GBASE-T control register. */
-#define MDIO_AN_10GBT_CTRL_ADVFSRT2_5G	0x0020	/* Advertise 2.5GBASE-T fast retrain */
 #define MDIO_AN_10GBT_CTRL_ADV2_5G	0x0080	/* Advertise 2.5GBASE-T */
 #define MDIO_AN_10GBT_CTRL_ADV5G	0x0100	/* Advertise 5GBASE-T */
 #define MDIO_AN_10GBT_CTRL_ADV10G	0x1000	/* Advertise 10GBASE-T */
@@ -295,9 +287,6 @@
 #define MDIO_EEE_2_5GT		0x0001	/* 2.5GT EEE cap */
 #define MDIO_EEE_5GT		0x0002	/* 5GT EEE cap */
 
-/* AN MultiGBASE-T AN control 2 */
-#define MDIO_AN_THP_BP2_5GT	0x0008	/* 2.5GT THP bypass request */
-
 /* 2.5G/5G Extended abilities register. */
 #define MDIO_PMA_NG_EXTABLE_2_5GBT	0x0001	/* 2.5GBASET ability */
 #define MDIO_PMA_NG_EXTABLE_5GBT	0x0002	/* 5GBASET ability */
diff --git a/original/uapi/linux/mempolicy.h b/original/uapi/linux/mempolicy.h
index 046d0cc..8948467 100644
--- a/original/uapi/linux/mempolicy.h
+++ b/original/uapi/linux/mempolicy.h
@@ -22,7 +22,6 @@
 	MPOL_BIND,
 	MPOL_INTERLEAVE,
 	MPOL_LOCAL,
-	MPOL_PREFERRED_MANY,
 	MPOL_MAX,	/* always last member of enum */
 };
 
@@ -61,15 +60,9 @@
  * are never OR'ed into the mode in mempolicy API arguments.
  */
 #define MPOL_F_SHARED  (1 << 0)	/* identify shared policies */
+#define MPOL_F_LOCAL   (1 << 1)	/* preferred local allocation */
 #define MPOL_F_MOF	(1 << 3) /* this policy wants migrate on fault */
 #define MPOL_F_MORON	(1 << 4) /* Migrate On protnone Reference On Node */
 
-/*
- * These bit locations are exposed in the vm.zone_reclaim_mode sysctl
- * ABI.  New bits are OK, but existing bits can never change.
- */
-#define RECLAIM_ZONE	(1<<0)	/* Run shrink_inactive_list on the zone */
-#define RECLAIM_WRITE	(1<<1)	/* Writeout pages during reclaim */
-#define RECLAIM_UNMAP	(1<<2)	/* Unmap pages during reclaim */
 
 #endif /* _UAPI_LINUX_MEMPOLICY_H */
diff --git a/original/uapi/linux/module.h b/original/uapi/linux/module.h
index 03a33ff..50d98ec 100644
--- a/original/uapi/linux/module.h
+++ b/original/uapi/linux/module.h
@@ -5,6 +5,5 @@
 /* Flags for sys_finit_module: */
 #define MODULE_INIT_IGNORE_MODVERSIONS	1
 #define MODULE_INIT_IGNORE_VERMAGIC	2
-#define MODULE_INIT_COMPRESSED_FILE	4
 
 #endif /* _UAPI_LINUX_MODULE_H */
diff --git a/original/uapi/linux/mount.h b/original/uapi/linux/mount.h
index 4d93967..e6524ea 100644
--- a/original/uapi/linux/mount.h
+++ b/original/uapi/linux/mount.h
@@ -73,8 +73,7 @@
 #define MOVE_MOUNT_T_SYMLINKS		0x00000010 /* Follow symlinks on to path */
 #define MOVE_MOUNT_T_AUTOMOUNTS		0x00000020 /* Follow automounts on to path */
 #define MOVE_MOUNT_T_EMPTY_PATH		0x00000040 /* Empty to path permitted */
-#define MOVE_MOUNT_SET_GROUP		0x00000100 /* Set sharing group instead */
-#define MOVE_MOUNT__MASK		0x00000177
+#define MOVE_MOUNT__MASK		0x00000077
 
 /*
  * fsopen() flags.
@@ -121,7 +120,6 @@
 #define MOUNT_ATTR_STRICTATIME	0x00000020 /* - Always perform atime updates */
 #define MOUNT_ATTR_NODIRATIME	0x00000080 /* Do not update directory access times */
 #define MOUNT_ATTR_IDMAP	0x00100000 /* Idmap mount to @userns_fd in struct mount_attr. */
-#define MOUNT_ATTR_NOSYMFOLLOW	0x00200000 /* Do not follow symlinks */
 
 /*
  * mount_setattr()
diff --git a/original/uapi/linux/mptcp.h b/original/uapi/linux/mptcp.h
index f106a39..e1172c1 100644
--- a/original/uapi/linux/mptcp.h
+++ b/original/uapi/linux/mptcp.h
@@ -4,13 +4,6 @@
 
 #include <linux/const.h>
 #include <linux/types.h>
-#include <linux/in.h>		/* for sockaddr_in			*/
-#include <linux/in6.h>		/* for sockaddr_in6			*/
-#include <linux/socket.h>	/* for sockaddr_storage and sa_family	*/
-
-#ifndef __KERNEL__
-#include <sys/socket.h>		/* for struct sockaddr			*/
-#endif
 
 #define MPTCP_SUBFLOW_FLAG_MCAP_REM		_BITUL(0)
 #define MPTCP_SUBFLOW_FLAG_MCAP_LOC		_BITUL(1)
@@ -80,7 +73,6 @@
 #define MPTCP_PM_ADDR_FLAG_SIGNAL			(1 << 0)
 #define MPTCP_PM_ADDR_FLAG_SUBFLOW			(1 << 1)
 #define MPTCP_PM_ADDR_FLAG_BACKUP			(1 << 2)
-#define MPTCP_PM_ADDR_FLAG_FULLMESH			(1 << 3)
 
 enum {
 	MPTCP_PM_CMD_UNSPEC,
@@ -113,7 +105,6 @@
 	__u64	mptcpi_rcv_nxt;
 	__u8	mptcpi_local_addr_used;
 	__u8	mptcpi_local_addr_max;
-	__u8	mptcpi_csum_enabled;
 };
 
 /*
@@ -136,21 +127,19 @@
  * MPTCP_EVENT_REMOVED: token, rem_id
  * An address has been lost by the peer.
  *
- * MPTCP_EVENT_SUB_ESTABLISHED: token, family, loc_id, rem_id,
- *                              saddr4 | saddr6, daddr4 | daddr6, sport,
- *                              dport, backup, if_idx [, error]
+ * MPTCP_EVENT_SUB_ESTABLISHED: token, family, saddr4 | saddr6,
+ *                              daddr4 | daddr6, sport, dport, backup,
+ *                              if_idx [, error]
  * A new subflow has been established. 'error' should not be set.
  *
- * MPTCP_EVENT_SUB_CLOSED: token, family, loc_id, rem_id, saddr4 | saddr6,
- *                         daddr4 | daddr6, sport, dport, backup, if_idx
- *                         [, error]
+ * MPTCP_EVENT_SUB_CLOSED: token, family, saddr4 | saddr6, daddr4 | daddr6,
+ *                         sport, dport, backup, if_idx [, error]
  * A subflow has been closed. An error (copy of sk_err) could be set if an
  * error has been detected for this subflow.
  *
- * MPTCP_EVENT_SUB_PRIORITY: token, family, loc_id, rem_id, saddr4 | saddr6,
- *                           daddr4 | daddr6, sport, dport, backup, if_idx
- *                           [, error]
- * The priority of a subflow has changed. 'error' should not be set.
+ * MPTCP_EVENT_SUB_PRIORITY: token, family, saddr4 | saddr6, daddr4 | daddr6,
+ *                           sport, dport, backup, if_idx [, error]
+ *       The priority of a subflow has changed. 'error' should not be set.
  */
 enum mptcp_event_type {
 	MPTCP_EVENT_UNSPEC = 0,
@@ -185,49 +174,10 @@
 	MPTCP_ATTR_FLAGS,	/* u16 */
 	MPTCP_ATTR_TIMEOUT,	/* u32 */
 	MPTCP_ATTR_IF_IDX,	/* s32 */
-	MPTCP_ATTR_RESET_REASON,/* u32 */
-	MPTCP_ATTR_RESET_FLAGS, /* u32 */
 
 	__MPTCP_ATTR_AFTER_LAST
 };
 
 #define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
 
-/* MPTCP Reset reason codes, rfc8684 */
-#define MPTCP_RST_EUNSPEC	0
-#define MPTCP_RST_EMPTCP	1
-#define MPTCP_RST_ERESOURCE	2
-#define MPTCP_RST_EPROHIBIT	3
-#define MPTCP_RST_EWQ2BIG	4
-#define MPTCP_RST_EBADPERF	5
-#define MPTCP_RST_EMIDDLEBOX	6
-
-struct mptcp_subflow_data {
-	__u32		size_subflow_data;		/* size of this structure in userspace */
-	__u32		num_subflows;			/* must be 0, set by kernel */
-	__u32		size_kernel;			/* must be 0, set by kernel */
-	__u32		size_user;			/* size of one element in data[] */
-} __attribute__((aligned(8)));
-
-struct mptcp_subflow_addrs {
-	union {
-		__kernel_sa_family_t sa_family;
-		struct sockaddr sa_local;
-		struct sockaddr_in sin_local;
-		struct sockaddr_in6 sin6_local;
-		struct __kernel_sockaddr_storage ss_local;
-	};
-	union {
-		struct sockaddr sa_remote;
-		struct sockaddr_in sin_remote;
-		struct sockaddr_in6 sin6_remote;
-		struct __kernel_sockaddr_storage ss_remote;
-	};
-};
-
-/* MPTCP socket options */
-#define MPTCP_INFO		1
-#define MPTCP_TCPINFO		2
-#define MPTCP_SUBFLOW_ADDRS	3
-
 #endif /* _UAPI_MPTCP_H */
diff --git a/original/uapi/linux/n_r3964.h b/original/uapi/linux/n_r3964.h
new file mode 100644
index 0000000..6bbd185
--- /dev/null
+++ b/original/uapi/linux/n_r3964.h
@@ -0,0 +1,99 @@
+/* SPDX-License-Identifier: GPL-1.0+ WITH Linux-syscall-note */
+/* r3964 linediscipline for linux
+ *
+ * -----------------------------------------------------------
+ * Copyright by
+ * Philips Automation Projects
+ * Kassel (Germany)
+ * -----------------------------------------------------------
+ * This software may be used and distributed according to the terms of
+ * the GNU General Public License, incorporated herein by reference.
+ *
+ * Author:
+ * L. Haag
+ *
+ * $Log: r3964.h,v $
+ * Revision 1.4  2005/12/21 19:54:24  Kurt Huwig <kurt huwig de>
+ * Fixed HZ usage on 2.6 kernels
+ * Removed unnecessary include
+ *
+ * Revision 1.3  2001/03/18 13:02:24  dwmw2
+ * Fix timer usage, use spinlocks properly.
+ *
+ * Revision 1.2  2001/03/18 12:53:15  dwmw2
+ * Merge changes in 2.4.2
+ *
+ * Revision 1.1.1.1  1998/10/13 16:43:14  dwmw2
+ * This'll screw the version control
+ *
+ * Revision 1.6  1998/09/30 00:40:38  dwmw2
+ * Updated to use kernel's N_R3964 if available
+ *
+ * Revision 1.4  1998/04/02 20:29:44  lhaag
+ * select, blocking, ...
+ *
+ * Revision 1.3  1998/02/12 18:58:43  root
+ * fixed some memory leaks
+ * calculation of checksum characters
+ *
+ * Revision 1.2  1998/02/07 13:03:17  root
+ * ioctl read_telegram
+ *
+ * Revision 1.1  1998/02/06 19:19:43  root
+ * Initial revision
+ *
+ *
+ */
+
+#ifndef _UAPI__LINUX_N_R3964_H__
+#define _UAPI__LINUX_N_R3964_H__
+
+/* line disciplines for r3964 protocol */
+
+
+/*
+ * Ioctl-commands
+ */
+
+#define R3964_ENABLE_SIGNALS      0x5301
+#define R3964_SETPRIORITY         0x5302
+#define R3964_USE_BCC             0x5303
+#define R3964_READ_TELEGRAM       0x5304
+
+/* Options for R3964_SETPRIORITY */
+#define R3964_MASTER   0
+#define R3964_SLAVE    1
+
+/* Options for R3964_ENABLE_SIGNALS */
+#define R3964_SIG_ACK   0x0001
+#define R3964_SIG_DATA  0x0002
+#define R3964_SIG_ALL   0x000f
+#define R3964_SIG_NONE  0x0000
+#define R3964_USE_SIGIO 0x1000
+
+/*
+ * r3964 operation states:
+ */
+
+/* types for msg_id: */
+enum {R3964_MSG_ACK=1, R3964_MSG_DATA };
+
+#define R3964_MAX_MSG_COUNT 32
+
+/* error codes for client messages */
+#define R3964_OK 0        /* no error. */
+#define R3964_TX_FAIL -1  /* transmission error, block NOT sent */
+#define R3964_OVERFLOW -2 /* msg queue overflow */
+
+/* the client gets this struct when calling read(fd,...): */
+struct r3964_client_message {
+	  int     msg_id;
+	  int     arg;
+	  int     error_code;
+};
+
+#define R3964_MTU      256
+
+
+
+#endif /* _UAPI__LINUX_N_R3964_H__ */
diff --git a/original/uapi/linux/nbd-netlink.h b/original/uapi/linux/nbd-netlink.h
index 2d0b909..c5d0ef7 100644
--- a/original/uapi/linux/nbd-netlink.h
+++ b/original/uapi/linux/nbd-netlink.h
@@ -35,7 +35,6 @@
 	NBD_ATTR_SOCKETS,
 	NBD_ATTR_DEAD_CONN_TIMEOUT,
 	NBD_ATTR_DEVICE_LIST,
-	NBD_ATTR_BACKEND_IDENTIFIER,
 	__NBD_ATTR_MAX,
 };
 #define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
diff --git a/original/uapi/linux/neighbour.h b/original/uapi/linux/neighbour.h
index db05fb5..dc8b722 100644
--- a/original/uapi/linux/neighbour.h
+++ b/original/uapi/linux/neighbour.h
@@ -31,7 +31,6 @@
 	NDA_PROTOCOL,  /* Originator of entry */
 	NDA_NH_ID,
 	NDA_FDB_EXT_ATTRS,
-	NDA_FLAGS_EXT,
 	__NDA_MAX
 };
 
@@ -41,16 +40,14 @@
  *	Neighbor Cache Entry Flags
  */
 
-#define NTF_USE		(1 << 0)
-#define NTF_SELF	(1 << 1)
-#define NTF_MASTER	(1 << 2)
-#define NTF_PROXY	(1 << 3)	/* == ATF_PUBL */
-#define NTF_EXT_LEARNED	(1 << 4)
-#define NTF_OFFLOADED   (1 << 5)
-#define NTF_STICKY	(1 << 6)
-#define NTF_ROUTER	(1 << 7)
-/* Extended flags under NDA_FLAGS_EXT: */
-#define NTF_EXT_MANAGED	(1 << 0)
+#define NTF_USE		0x01
+#define NTF_SELF	0x02
+#define NTF_MASTER	0x04
+#define NTF_PROXY	0x08	/* == ATF_PUBL */
+#define NTF_EXT_LEARNED	0x10
+#define NTF_OFFLOADED   0x20
+#define NTF_STICKY	0x40
+#define NTF_ROUTER	0x80
 
 /*
  *	Neighbor Cache Entry States.
@@ -68,22 +65,9 @@
 #define NUD_PERMANENT	0x80
 #define NUD_NONE	0x00
 
-/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change and make no
- * address resolution or NUD.
- *
- * NUD_PERMANENT also cannot be deleted by garbage collectors. This holds true
- * for dynamic entries with NTF_EXT_LEARNED flag as well. However, upon carrier
- * down event, NUD_PERMANENT entries are not flushed whereas NTF_EXT_LEARNED
- * flagged entries explicitly are (which is also consistent with the routing
- * subsystem).
- *
- * When NTF_EXT_LEARNED is set for a bridge fdb entry the different cache entry
- * states don't make sense and thus are ignored. Such entries don't age and
- * can roam.
- *
- * NTF_EXT_MANAGED flagged neigbor entries are managed by the kernel on behalf
- * of a user space control plane, and automatically refreshed so that (if
- * possible) they remain in NUD_REACHABLE state.
+/* NUD_NOARP & NUD_PERMANENT are pseudostates, they never change
+   and make no address resolution or NUD.
+   NUD_PERMANENT also cannot be deleted by garbage collectors.
  */
 
 struct nda_cacheinfo {
diff --git a/original/uapi/linux/net_tstamp.h b/original/uapi/linux/net_tstamp.h
index 55501e5..7ed0b3d 100644
--- a/original/uapi/linux/net_tstamp.h
+++ b/original/uapi/linux/net_tstamp.h
@@ -13,7 +13,7 @@
 #include <linux/types.h>
 #include <linux/socket.h>   /* for SO_TIMESTAMPING */
 
-/* SO_TIMESTAMPING flags */
+/* SO_TIMESTAMPING gets an integer bit field comprised of these values */
 enum {
 	SOF_TIMESTAMPING_TX_HARDWARE = (1<<0),
 	SOF_TIMESTAMPING_TX_SOFTWARE = (1<<1),
@@ -30,9 +30,8 @@
 	SOF_TIMESTAMPING_OPT_STATS = (1<<12),
 	SOF_TIMESTAMPING_OPT_PKTINFO = (1<<13),
 	SOF_TIMESTAMPING_OPT_TX_SWHW = (1<<14),
-	SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
 
-	SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
+	SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
 	SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) |
 				 SOF_TIMESTAMPING_LAST
 };
@@ -48,21 +47,9 @@
 					 SOF_TIMESTAMPING_TX_ACK)
 
 /**
- * struct so_timestamping - SO_TIMESTAMPING parameter
- *
- * @flags:	SO_TIMESTAMPING flags
- * @bind_phc:	Index of PTP virtual clock bound to sock. This is available
- *		if flag SOF_TIMESTAMPING_BIND_PHC is set.
- */
-struct so_timestamping {
-	int flags;
-	int bind_phc;
-};
-
-/**
  * struct hwtstamp_config - %SIOCGHWTSTAMP and %SIOCSHWTSTAMP parameter
  *
- * @flags:	one of HWTSTAMP_FLAG_*
+ * @flags:	no flags defined right now, must be zero for %SIOCSHWTSTAMP
  * @tx_type:	one of HWTSTAMP_TX_*
  * @rx_filter:	one of HWTSTAMP_FILTER_*
  *
@@ -78,21 +65,6 @@
 	int rx_filter;
 };
 
-/* possible values for hwtstamp_config->flags */
-enum hwtstamp_flags {
-	/*
-	 * With this flag, the user could get bond active interface's
-	 * PHC index. Note this PHC index is not stable as when there
-	 * is a failover, the bond active interface will be changed, so
-	 * will be the PHC index.
-	 */
-	HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1<<0),
-#define HWTSTAMP_FLAG_BONDED_PHC_INDEX	HWTSTAMP_FLAG_BONDED_PHC_INDEX
-
-	HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX,
-	HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST
-};
-
 /* possible values for hwtstamp_config->tx_type */
 enum hwtstamp_tx_types {
 	/*
diff --git a/original/uapi/linux/netfilter.h b/original/uapi/linux/netfilter.h
index 53411cc..ef9a442 100644
--- a/original/uapi/linux/netfilter.h
+++ b/original/uapi/linux/netfilter.h
@@ -51,7 +51,6 @@
 
 enum nf_dev_hooks {
 	NF_NETDEV_INGRESS,
-	NF_NETDEV_EGRESS,
 	NF_NETDEV_NUMHOOKS
 };
 
diff --git a/original/uapi/linux/netfilter/nf_conntrack_common.h b/original/uapi/linux/netfilter/nf_conntrack_common.h
index 2607102..4b33950 100644
--- a/original/uapi/linux/netfilter/nf_conntrack_common.h
+++ b/original/uapi/linux/netfilter/nf_conntrack_common.h
@@ -106,7 +106,7 @@
 	IPS_NAT_CLASH = IPS_UNTRACKED,
 #endif
 
-	/* Conntrack got a helper explicitly attached (ruleset, ctnetlink). */
+	/* Conntrack got a helper explicitly attached via CT target. */
 	IPS_HELPER_BIT = 13,
 	IPS_HELPER = (1 << IPS_HELPER_BIT),
 
diff --git a/original/uapi/linux/netfilter/nf_tables.h b/original/uapi/linux/netfilter/nf_tables.h
index 466fd3f..79bab7a 100644
--- a/original/uapi/linux/netfilter/nf_tables.h
+++ b/original/uapi/linux/netfilter/nf_tables.h
@@ -398,11 +398,9 @@
  * enum nft_set_elem_flags - nf_tables set element flags
  *
  * @NFT_SET_ELEM_INTERVAL_END: element ends the previous interval
- * @NFT_SET_ELEM_CATCHALL: special catch-all element
  */
 enum nft_set_elem_flags {
 	NFT_SET_ELEM_INTERVAL_END	= 0x1,
-	NFT_SET_ELEM_CATCHALL		= 0x2,
 };
 
 /**
@@ -753,13 +751,11 @@
  * @NFT_PAYLOAD_LL_HEADER: link layer header
  * @NFT_PAYLOAD_NETWORK_HEADER: network header
  * @NFT_PAYLOAD_TRANSPORT_HEADER: transport header
- * @NFT_PAYLOAD_INNER_HEADER: inner header / payload
  */
 enum nft_payload_bases {
 	NFT_PAYLOAD_LL_HEADER,
 	NFT_PAYLOAD_NETWORK_HEADER,
 	NFT_PAYLOAD_TRANSPORT_HEADER,
-	NFT_PAYLOAD_INNER_HEADER,
 };
 
 /**
@@ -815,13 +811,11 @@
  * @NFT_EXTHDR_OP_IPV6: match against ipv6 extension headers
  * @NFT_EXTHDR_OP_TCP: match against tcp options
  * @NFT_EXTHDR_OP_IPV4: match against ipv4 options
- * @NFT_EXTHDR_OP_SCTP: match against sctp chunks
  */
 enum nft_exthdr_op {
 	NFT_EXTHDR_OP_IPV6,
 	NFT_EXTHDR_OP_TCPOPT,
 	NFT_EXTHDR_OP_IPV4,
-	NFT_EXTHDR_OP_SCTP,
 	__NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX	(__NFT_EXTHDR_OP_MAX - 1)
@@ -898,8 +892,7 @@
 	NFT_META_OIF,
 	NFT_META_IIFNAME,
 	NFT_META_OIFNAME,
-	NFT_META_IFTYPE,
-#define NFT_META_IIFTYPE	NFT_META_IFTYPE
+	NFT_META_IIFTYPE,
 	NFT_META_OIFTYPE,
 	NFT_META_SKUID,
 	NFT_META_SKGID,
@@ -926,7 +919,6 @@
 	NFT_META_TIME_HOUR,
 	NFT_META_SDIF,
 	NFT_META_SDIFNAME,
-	__NFT_META_IIFTYPE,
 };
 
 /**
@@ -1022,13 +1014,11 @@
  *
  * @NFTA_SOCKET_KEY: socket key to match
  * @NFTA_SOCKET_DREG: destination register
- * @NFTA_SOCKET_LEVEL: cgroups2 ancestor level (only for cgroupsv2)
  */
 enum nft_socket_attributes {
 	NFTA_SOCKET_UNSPEC,
 	NFTA_SOCKET_KEY,
 	NFTA_SOCKET_DREG,
-	NFTA_SOCKET_LEVEL,
 	__NFTA_SOCKET_MAX
 };
 #define NFTA_SOCKET_MAX		(__NFTA_SOCKET_MAX - 1)
@@ -1039,13 +1029,11 @@
  * @NFT_SOCKET_TRANSPARENT: Value of the IP(V6)_TRANSPARENT socket option
  * @NFT_SOCKET_MARK: Value of the socket mark
  * @NFT_SOCKET_WILDCARD: Whether the socket is zero-bound (e.g. 0.0.0.0 or ::0)
- * @NFT_SOCKET_CGROUPV2: Match on cgroups version 2
  */
 enum nft_socket_keys {
 	NFT_SOCKET_TRANSPARENT,
 	NFT_SOCKET_MARK,
 	NFT_SOCKET_WILDCARD,
-	NFT_SOCKET_CGROUPV2,
 	__NFT_SOCKET_MAX
 };
 #define NFT_SOCKET_MAX	(__NFT_SOCKET_MAX - 1)
@@ -1200,21 +1188,6 @@
 #define NFTA_COUNTER_MAX	(__NFTA_COUNTER_MAX - 1)
 
 /**
- * enum nft_last_attributes - nf_tables last expression netlink attributes
- *
- * @NFTA_LAST_SET: last update has been set, zero means never updated (NLA_U32)
- * @NFTA_LAST_MSECS: milliseconds since last update (NLA_U64)
- */
-enum nft_last_attributes {
-	NFTA_LAST_UNSPEC,
-	NFTA_LAST_SET,
-	NFTA_LAST_MSECS,
-	NFTA_LAST_PAD,
-	__NFTA_LAST_MAX
-};
-#define NFTA_LAST_MAX	(__NFTA_LAST_MAX - 1)
-
-/**
  * enum nft_log_attributes - nf_tables log expression netlink attributes
  *
  * @NFTA_LOG_GROUP: netlink group to send messages to (NLA_U32)
diff --git a/original/uapi/linux/netfilter/nfnetlink.h b/original/uapi/linux/netfilter/nfnetlink.h
index 6cd58cd..5bc960f 100644
--- a/original/uapi/linux/netfilter/nfnetlink.h
+++ b/original/uapi/linux/netfilter/nfnetlink.h
@@ -60,8 +60,7 @@
 #define NFNL_SUBSYS_CTHELPER		9
 #define NFNL_SUBSYS_NFTABLES		10
 #define NFNL_SUBSYS_NFT_COMPAT		11
-#define NFNL_SUBSYS_HOOK		12
-#define NFNL_SUBSYS_COUNT		13
+#define NFNL_SUBSYS_COUNT		12
 
 /* Reserved control nfnetlink messages */
 #define NFNL_MSG_BATCH_BEGIN		NLMSG_MIN_TYPE
diff --git a/original/uapi/linux/netfilter/nfnetlink_conntrack.h b/original/uapi/linux/netfilter/nfnetlink_conntrack.h
index c2ac726..d8484be 100644
--- a/original/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/original/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -56,7 +56,6 @@
 	CTA_LABELS_MASK,
 	CTA_SYNPROXY,
 	CTA_FILTER,
-	CTA_STATUS_MASK,
 	__CTA_MAX
 };
 #define CTA_MAX (__CTA_MAX - 1)
@@ -258,7 +257,6 @@
 	CTA_STATS_ERROR,
 	CTA_STATS_SEARCH_RESTART,
 	CTA_STATS_CLASH_RESOLVE,
-	CTA_STATS_CHAIN_TOOLONG,
 	__CTA_STATS_MAX,
 };
 #define CTA_STATS_MAX (__CTA_STATS_MAX - 1)
diff --git a/original/uapi/linux/netfilter/nfnetlink_hook.h b/original/uapi/linux/netfilter/nfnetlink_hook.h
deleted file mode 100644
index bbcd285..0000000
--- a/original/uapi/linux/netfilter/nfnetlink_hook.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _NFNL_HOOK_H_
-#define _NFNL_HOOK_H_
-
-enum nfnl_hook_msg_types {
-	NFNL_MSG_HOOK_GET,
-	NFNL_MSG_HOOK_MAX,
-};
-
-/**
- * enum nfnl_hook_attributes - netfilter hook netlink attributes
- *
- * @NFNLA_HOOK_HOOKNUM: netfilter hook number (NLA_U32)
- * @NFNLA_HOOK_PRIORITY: netfilter hook priority (NLA_U32)
- * @NFNLA_HOOK_DEV: netdevice name (NLA_STRING)
- * @NFNLA_HOOK_FUNCTION_NAME: hook function name (NLA_STRING)
- * @NFNLA_HOOK_MODULE_NAME: kernel module that registered this hook (NLA_STRING)
- * @NFNLA_HOOK_CHAIN_INFO: basechain hook metadata (NLA_NESTED)
- */
-enum nfnl_hook_attributes {
-	NFNLA_HOOK_UNSPEC,
-	NFNLA_HOOK_HOOKNUM,
-	NFNLA_HOOK_PRIORITY,
-	NFNLA_HOOK_DEV,
-	NFNLA_HOOK_FUNCTION_NAME,
-	NFNLA_HOOK_MODULE_NAME,
-	NFNLA_HOOK_CHAIN_INFO,
-	__NFNLA_HOOK_MAX
-};
-#define NFNLA_HOOK_MAX		(__NFNLA_HOOK_MAX - 1)
-
-/**
- * enum nfnl_hook_chain_info_attributes - chain description
- *
- * NFNLA_HOOK_INFO_DESC: nft chain and table name (enum nft_table_attributes) (NLA_NESTED)
- * NFNLA_HOOK_INFO_TYPE: chain type (enum nfnl_hook_chaintype) (NLA_U32)
- */
-enum nfnl_hook_chain_info_attributes {
-	NFNLA_HOOK_INFO_UNSPEC,
-	NFNLA_HOOK_INFO_DESC,
-	NFNLA_HOOK_INFO_TYPE,
-	__NFNLA_HOOK_INFO_MAX,
-};
-#define NFNLA_HOOK_INFO_MAX (__NFNLA_HOOK_INFO_MAX - 1)
-
-enum nfnl_hook_chain_desc_attributes {
-	NFNLA_CHAIN_UNSPEC,
-	NFNLA_CHAIN_TABLE,
-	NFNLA_CHAIN_FAMILY,
-	NFNLA_CHAIN_NAME,
-	__NFNLA_CHAIN_MAX,
-};
-#define NFNLA_CHAIN_MAX (__NFNLA_CHAIN_MAX - 1)
-
-/**
- * enum nfnl_hook_chaintype - chain type
- *
- * @NFNL_HOOK_TYPE_NFTABLES nf_tables base chain
- */
-enum nfnl_hook_chaintype {
-	NFNL_HOOK_TYPE_NFTABLES = 0x1,
-};
-
-#endif /* _NFNL_HOOK_H */
diff --git a/original/uapi/linux/netfilter/nfnetlink_log.h b/original/uapi/linux/netfilter/nfnetlink_log.h
index 0af9c11..45c8d3b 100644
--- a/original/uapi/linux/netfilter/nfnetlink_log.h
+++ b/original/uapi/linux/netfilter/nfnetlink_log.h
@@ -61,7 +61,7 @@
 	NFULA_HWTYPE,			/* hardware type */
 	NFULA_HWHEADER,			/* hardware header */
 	NFULA_HWLEN,			/* hardware header length */
-	NFULA_CT,                       /* nfnetlink_conntrack.h */
+	NFULA_CT,                       /* nf_conntrack_netlink.h */
 	NFULA_CT_INFO,                  /* enum ip_conntrack_info */
 	NFULA_VLAN,			/* nested attribute: packet vlan info */
 	NFULA_L2HDR,			/* full L2 header */
diff --git a/original/uapi/linux/netfilter/nfnetlink_queue.h b/original/uapi/linux/netfilter/nfnetlink_queue.h
index aed90c4..bcb2cb5 100644
--- a/original/uapi/linux/netfilter/nfnetlink_queue.h
+++ b/original/uapi/linux/netfilter/nfnetlink_queue.h
@@ -51,11 +51,11 @@
 	NFQA_IFINDEX_PHYSOUTDEV,	/* __u32 ifindex */
 	NFQA_HWADDR,			/* nfqnl_msg_packet_hw */
 	NFQA_PAYLOAD,			/* opaque data payload */
-	NFQA_CT,			/* nfnetlink_conntrack.h */
+	NFQA_CT,			/* nf_conntrack_netlink.h */
 	NFQA_CT_INFO,			/* enum ip_conntrack_info */
 	NFQA_CAP_LEN,			/* __u32 length of captured packet */
 	NFQA_SKB_INFO,			/* __u32 skb meta information */
-	NFQA_EXP,			/* nfnetlink_conntrack.h */
+	NFQA_EXP,			/* nf_conntrack_netlink.h */
 	NFQA_UID,			/* __u32 sk uid */
 	NFQA_GID,			/* __u32 sk gid */
 	NFQA_SECCTX,			/* security context string */
diff --git a/original/uapi/linux/netfilter/xt_IDLETIMER.h b/original/uapi/linux/netfilter/xt_IDLETIMER.h
index 07ae4e1..49ddcdc 100644
--- a/original/uapi/linux/netfilter/xt_IDLETIMER.h
+++ b/original/uapi/linux/netfilter/xt_IDLETIMER.h
@@ -48,7 +48,7 @@
 
 	char label[MAX_IDLETIMER_LABEL_SIZE];
 
-	__u8 send_nl_msg;
+	__u8 send_nl_msg;   /* unused: for compatibility with Android */
 	__u8 timer_type;
 
 	/* for kernel module internal use only */
diff --git a/original/uapi/linux/netfilter/xt_SECMARK.h b/original/uapi/linux/netfilter/xt_SECMARK.h
index beb2cad..1f2a708 100644
--- a/original/uapi/linux/netfilter/xt_SECMARK.h
+++ b/original/uapi/linux/netfilter/xt_SECMARK.h
@@ -20,10 +20,4 @@
 	char secctx[SECMARK_SECCTX_MAX];
 };
 
-struct xt_secmark_target_info_v1 {
-	__u8 mode;
-	char secctx[SECMARK_SECCTX_MAX];
-	__u32 secid;
-};
-
 #endif /*_XT_SECMARK_H_target */
diff --git a/original/uapi/linux/netlink.h b/original/uapi/linux/netlink.h
index 4c0cde0..3d94269 100644
--- a/original/uapi/linux/netlink.h
+++ b/original/uapi/linux/netlink.h
@@ -91,10 +91,9 @@
 #define NLMSG_HDRLEN	 ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
-#define NLMSG_DATA(nlh)  ((void *)(((char *)nlh) + NLMSG_HDRLEN))
+#define NLMSG_DATA(nlh)  ((void*)(((char*)nlh) + NLMSG_LENGTH(0)))
 #define NLMSG_NEXT(nlh,len)	 ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), \
-				  (struct nlmsghdr *)(((char *)(nlh)) + \
-				  NLMSG_ALIGN((nlh)->nlmsg_len)))
+				  (struct nlmsghdr*)(((char*)(nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
 #define NLMSG_OK(nlh,len) ((len) >= (int)sizeof(struct nlmsghdr) && \
 			   (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && \
 			   (nlh)->nlmsg_len <= (len))
diff --git a/original/uapi/linux/nexthop.h b/original/uapi/linux/nexthop.h
index d8ffa8c..2d4a1e7 100644
--- a/original/uapi/linux/nexthop.h
+++ b/original/uapi/linux/nexthop.h
@@ -21,10 +21,7 @@
 };
 
 enum {
-	NEXTHOP_GRP_TYPE_MPATH,  /* hash-threshold nexthop group
-				  * default type if not specified
-				  */
-	NEXTHOP_GRP_TYPE_RES,    /* resilient nexthop group */
+	NEXTHOP_GRP_TYPE_MPATH,  /* default type if not specified */
 	__NEXTHOP_GRP_TYPE_MAX,
 };
 
@@ -55,50 +52,8 @@
 	NHA_FDB,	/* flag; nexthop belongs to a bridge fdb */
 	/* if NHA_FDB is added, OIF, BLACKHOLE, ENCAP cannot be set */
 
-	/* nested; resilient nexthop group attributes */
-	NHA_RES_GROUP,
-	/* nested; nexthop bucket attributes */
-	NHA_RES_BUCKET,
-
 	__NHA_MAX,
 };
 
 #define NHA_MAX	(__NHA_MAX - 1)
-
-enum {
-	NHA_RES_GROUP_UNSPEC,
-	/* Pad attribute for 64-bit alignment. */
-	NHA_RES_GROUP_PAD = NHA_RES_GROUP_UNSPEC,
-
-	/* u16; number of nexthop buckets in a resilient nexthop group */
-	NHA_RES_GROUP_BUCKETS,
-	/* clock_t as u32; nexthop bucket idle timer (per-group) */
-	NHA_RES_GROUP_IDLE_TIMER,
-	/* clock_t as u32; nexthop unbalanced timer */
-	NHA_RES_GROUP_UNBALANCED_TIMER,
-	/* clock_t as u64; nexthop unbalanced time */
-	NHA_RES_GROUP_UNBALANCED_TIME,
-
-	__NHA_RES_GROUP_MAX,
-};
-
-#define NHA_RES_GROUP_MAX	(__NHA_RES_GROUP_MAX - 1)
-
-enum {
-	NHA_RES_BUCKET_UNSPEC,
-	/* Pad attribute for 64-bit alignment. */
-	NHA_RES_BUCKET_PAD = NHA_RES_BUCKET_UNSPEC,
-
-	/* u16; nexthop bucket index */
-	NHA_RES_BUCKET_INDEX,
-	/* clock_t as u64; nexthop bucket idle time */
-	NHA_RES_BUCKET_IDLE_TIME,
-	/* u32; nexthop id assigned to the nexthop bucket */
-	NHA_RES_BUCKET_NH_ID,
-
-	__NHA_RES_BUCKET_MAX,
-};
-
-#define NHA_RES_BUCKET_MAX	(__NHA_RES_BUCKET_MAX - 1)
-
 #endif
diff --git a/original/uapi/linux/nfc.h b/original/uapi/linux/nfc.h
index 4fa4e97..f6e3c8c 100644
--- a/original/uapi/linux/nfc.h
+++ b/original/uapi/linux/nfc.h
@@ -263,7 +263,7 @@
 #define NFC_SE_ENABLED  0x1
 
 struct sockaddr_nfc {
-	__kernel_sa_family_t sa_family;
+	sa_family_t sa_family;
 	__u32 dev_idx;
 	__u32 target_idx;
 	__u32 nfc_protocol;
@@ -271,14 +271,14 @@
 
 #define NFC_LLCP_MAX_SERVICE_NAME 63
 struct sockaddr_nfc_llcp {
-	__kernel_sa_family_t sa_family;
+	sa_family_t sa_family;
 	__u32 dev_idx;
 	__u32 target_idx;
 	__u32 nfc_protocol;
 	__u8 dsap; /* Destination SAP, if known */
 	__u8 ssap; /* Source SAP to be bound to */
 	char service_name[NFC_LLCP_MAX_SERVICE_NAME]; /* Service name URI */;
-	__kernel_size_t service_name_len;
+	size_t service_name_len;
 };
 
 /* NFC socket protocols */
diff --git a/original/uapi/linux/nfs4.h b/original/uapi/linux/nfs4.h
index 800bb0f..ed5415e 100644
--- a/original/uapi/linux/nfs4.h
+++ b/original/uapi/linux/nfs4.h
@@ -178,3 +178,9 @@
 #define NFS4_MAX_BACK_CHANNEL_OPS 2
 
 #endif /* _UAPI_LINUX_NFS4_H */
+
+/*
+ * Local variables:
+ *  c-basic-offset: 8
+ * End:
+ */
diff --git a/original/uapi/linux/nfsd/nfsfh.h b/original/uapi/linux/nfsd/nfsfh.h
new file mode 100644
index 0000000..ff0ca88
--- /dev/null
+++ b/original/uapi/linux/nfsd/nfsfh.h
@@ -0,0 +1,105 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+/*
+ * This file describes the layout of the file handles as passed
+ * over the wire.
+ *
+ * Copyright (C) 1995, 1996, 1997 Olaf Kirch <okir@monad.swb.de>
+ */
+
+#ifndef _UAPI_LINUX_NFSD_FH_H
+#define _UAPI_LINUX_NFSD_FH_H
+
+#include <linux/types.h>
+#include <linux/nfs.h>
+#include <linux/nfs2.h>
+#include <linux/nfs3.h>
+#include <linux/nfs4.h>
+
+/*
+ * This is the old "dentry style" Linux NFSv2 file handle.
+ *
+ * The xino and xdev fields are currently used to transport the
+ * ino/dev of the exported inode.
+ */
+struct nfs_fhbase_old {
+	__u32		fb_dcookie;	/* dentry cookie - always 0xfeebbaca */
+	__u32		fb_ino;		/* our inode number */
+	__u32		fb_dirino;	/* dir inode number, 0 for directories */
+	__u32		fb_dev;		/* our device */
+	__u32		fb_xdev;
+	__u32		fb_xino;
+	__u32		fb_generation;
+};
+
+/*
+ * This is the new flexible, extensible style NFSv2/v3/v4 file handle.
+ * by Neil Brown <neilb@cse.unsw.edu.au> - March 2000
+ *
+ * The file handle starts with a sequence of four-byte words.
+ * The first word contains a version number (1) and three descriptor bytes
+ * that tell how the remaining 3 variable length fields should be handled.
+ * These three bytes are auth_type, fsid_type and fileid_type.
+ *
+ * All four-byte values are in host-byte-order.
+ *
+ * The auth_type field is deprecated and must be set to 0.
+ *
+ * The fsid_type identifies how the filesystem (or export point) is
+ *    encoded.
+ *  Current values:
+ *     0  - 4 byte device id (ms-2-bytes major, ls-2-bytes minor), 4byte inode number
+ *        NOTE: we cannot use the kdev_t device id value, because kdev_t.h
+ *              says we mustn't.  We must break it up and reassemble.
+ *     1  - 4 byte user specified identifier
+ *     2  - 4 byte major, 4 byte minor, 4 byte inode number - DEPRECATED
+ *     3  - 4 byte device id, encoded for user-space, 4 byte inode number
+ *     4  - 4 byte inode number and 4 byte uuid
+ *     5  - 8 byte uuid
+ *     6  - 16 byte uuid
+ *     7  - 8 byte inode number and 16 byte uuid
+ *
+ * The fileid_type identified how the file within the filesystem is encoded.
+ *   The values for this field are filesystem specific, exccept that
+ *   filesystems must not use the values '0' or '0xff'. 'See enum fid_type'
+ *   in include/linux/exportfs.h for currently registered values.
+ */
+struct nfs_fhbase_new {
+	__u8		fb_version;	/* == 1, even => nfs_fhbase_old */
+	__u8		fb_auth_type;
+	__u8		fb_fsid_type;
+	__u8		fb_fileid_type;
+	__u32		fb_auth[1];
+/*	__u32		fb_fsid[0]; floating */
+/*	__u32		fb_fileid[0]; floating */
+};
+
+struct knfsd_fh {
+	unsigned int	fh_size;	/* significant for NFSv3.
+					 * Points to the current size while building
+					 * a new file handle
+					 */
+	union {
+		struct nfs_fhbase_old	fh_old;
+		__u32			fh_pad[NFS4_FHSIZE/4];
+		struct nfs_fhbase_new	fh_new;
+	} fh_base;
+};
+
+#define ofh_dcookie		fh_base.fh_old.fb_dcookie
+#define ofh_ino			fh_base.fh_old.fb_ino
+#define ofh_dirino		fh_base.fh_old.fb_dirino
+#define ofh_dev			fh_base.fh_old.fb_dev
+#define ofh_xdev		fh_base.fh_old.fb_xdev
+#define ofh_xino		fh_base.fh_old.fb_xino
+#define ofh_generation		fh_base.fh_old.fb_generation
+
+#define	fh_version		fh_base.fh_new.fb_version
+#define	fh_fsid_type		fh_base.fh_new.fb_fsid_type
+#define	fh_auth_type		fh_base.fh_new.fb_auth_type
+#define	fh_fileid_type		fh_base.fh_new.fb_fileid_type
+#define	fh_fsid			fh_base.fh_new.fb_auth
+
+/* Do not use, provided for userspace compatiblity. */
+#define	fh_auth			fh_base.fh_new.fb_auth
+
+#endif /* _UAPI_LINUX_NFSD_FH_H */
diff --git a/original/uapi/linux/nitro_enclaves.h b/original/uapi/linux/nitro_enclaves.h
index e808f5b..b945073 100644
--- a/original/uapi/linux/nitro_enclaves.h
+++ b/original/uapi/linux/nitro_enclaves.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
 /*
- * Copyright 2020-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
  */
 
 #ifndef _UAPI_LINUX_NITRO_ENCLAVES_H_
@@ -60,7 +60,7 @@
  *
  * Context: Process context.
  * Return:
- * * 0					- Logic successfully completed.
+ * * 0					- Logic succesfully completed.
  * *  -1				- There was a failure in the ioctl logic.
  * On failure, errno is set to:
  * * EFAULT				- copy_from_user() / copy_to_user() failure.
@@ -95,7 +95,7 @@
  *
  * Context: Process context.
  * Return:
- * * 0				- Logic successfully completed.
+ * * 0				- Logic succesfully completed.
  * *  -1			- There was a failure in the ioctl logic.
  * On failure, errno is set to:
  * * EFAULT			- copy_from_user() / copy_to_user() failure.
@@ -118,7 +118,7 @@
  *
  * Context: Process context.
  * Return:
- * * 0					- Logic successfully completed.
+ * * 0					- Logic succesfully completed.
  * *  -1				- There was a failure in the ioctl logic.
  * On failure, errno is set to:
  * * EFAULT				- copy_from_user() failure.
@@ -161,7 +161,7 @@
  *
  * Context: Process context.
  * Return:
- * * 0					- Logic successfully completed.
+ * * 0					- Logic succesfully completed.
  * *  -1				- There was a failure in the ioctl logic.
  * On failure, errno is set to:
  * * EFAULT				- copy_from_user() / copy_to_user() failure.
diff --git a/original/uapi/linux/nl80211-vnd-intel.h b/original/uapi/linux/nl80211-vnd-intel.h
deleted file mode 100644
index 4ed7d0b..0000000
--- a/original/uapi/linux/nl80211-vnd-intel.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Copyright (C) 2012-2014, 2018-2021 Intel Corporation
- * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
- * Copyright (C) 2016-2017 Intel Deutschland GmbH
- */
-#ifndef __VENDOR_CMD_INTEL_H__
-#define __VENDOR_CMD_INTEL_H__
-
-#define INTEL_OUI	0x001735
-
-/**
- * enum iwl_mvm_vendor_cmd - supported vendor commands
- * @IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO: reports CSME connection info.
- * @IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP: asks for ownership on the device.
- *	This is useful when the CSME firmware owns the device and the kernel
- *	wants to use it. In case the CSME firmware has no connection active the
- *	kernel will manage on its own to get ownership of the device.
- *	When the CSME firmware has an active connection, the user space
- *	involvement is required. The kernel will assert the RFKILL signal with
- *	the "device not owned" reason so that nobody can touch the device. Then
- *	the user space can run the following flow to be able to get connected
- *	to the very same AP the CSME firmware is currently connected to:
- *
- *	1) The user space (NetworkManager) boots and sees that the device is
- *	    in RFKILL because the host doesn't own the device
- *	2) The user space asks the kernel what AP the CSME firmware is
- *	   connected to (with %IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO)
- *	3) The user space checks if it has a profile that matches the reply
- *	   from the CSME firmware
- *	4) The user space installs a network to the wpa_supplicant with a
- *	   specific BSSID and a specific frequency
- *	5) The user space prevents any type of full scan
- *	6) The user space asks iwlmei to request ownership on the device (with
- *	   this command)
- *	7) iwlmei requests ownership from the CSME firmware
- *	8) The CSME firmware grants ownership
- *	9) iwlmei tells iwlwifi to lift the RFKILL
- *	10) RFKILL OFF is reported to user space
- *	11) The host boots the device, loads the firwmare, and connects to a
- *	    specific BSSID without scanning including IP as fast as it can
- *	12) The host reports to the CSME firmware that there is a connection
- *	13) The TCP connection is preserved and the host has connectivity
- *
- * @IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT: notifies if roaming is allowed.
- *	It contains a &IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN and a
- *	&IWL_MVM_VENDOR_ATTR_VIF_ADDR attributes.
- */
-
-enum iwl_mvm_vendor_cmd {
-	IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO			= 0x2d,
-	IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP			= 0x30,
-	IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT		= 0x32,
-};
-
-enum iwl_vendor_auth_akm_mode {
-	IWL_VENDOR_AUTH_OPEN,
-	IWL_VENDOR_AUTH_RSNA = 0x6,
-	IWL_VENDOR_AUTH_RSNA_PSK,
-	IWL_VENDOR_AUTH_SAE = 0x9,
-	IWL_VENDOR_AUTH_MAX,
-};
-
-/**
- * enum iwl_mvm_vendor_attr - attributes used in vendor commands
- * @__IWL_MVM_VENDOR_ATTR_INVALID: attribute 0 is invalid
- * @IWL_MVM_VENDOR_ATTR_VIF_ADDR: interface MAC address
- * @IWL_MVM_VENDOR_ATTR_ADDR: MAC address
- * @IWL_MVM_VENDOR_ATTR_SSID: SSID (binary attribute, 0..32 octets)
- * @IWL_MVM_VENDOR_ATTR_STA_CIPHER: the cipher to use for the station with the
- *	mac address specified in &IWL_MVM_VENDOR_ATTR_ADDR.
- * @IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN: u8 attribute. Indicates whether
- *	roaming is forbidden or not. Value 1 means roaming is forbidden,
- *	0 mean roaming is allowed.
- * @IWL_MVM_VENDOR_ATTR_AUTH_MODE: u32 attribute. Authentication mode type
- *	as specified in &enum iwl_vendor_auth_akm_mode.
- * @IWL_MVM_VENDOR_ATTR_CHANNEL_NUM: u8 attribute. Contains channel number.
- * @IWL_MVM_VENDOR_ATTR_BAND: u8 attribute.
- *	0 for 2.4 GHz band, 1 for 5.2GHz band and 2 for 6GHz band.
- * @IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL: u32 attribute. Channel number of
- *	collocated AP. Relevant for 6GHz AP info.
- * @IWL_MVM_VENDOR_ATTR_COLLOC_ADDR: MAC address of a collocated AP.
- *	Relevant for 6GHz AP info.
- *
- * @NUM_IWL_MVM_VENDOR_ATTR: number of vendor attributes
- * @MAX_IWL_MVM_VENDOR_ATTR: highest vendor attribute number
-
- */
-enum iwl_mvm_vendor_attr {
-	__IWL_MVM_VENDOR_ATTR_INVALID				= 0x00,
-	IWL_MVM_VENDOR_ATTR_VIF_ADDR				= 0x02,
-	IWL_MVM_VENDOR_ATTR_ADDR				= 0x0a,
-	IWL_MVM_VENDOR_ATTR_SSID				= 0x3d,
-	IWL_MVM_VENDOR_ATTR_STA_CIPHER				= 0x51,
-	IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN			= 0x64,
-	IWL_MVM_VENDOR_ATTR_AUTH_MODE				= 0x65,
-	IWL_MVM_VENDOR_ATTR_CHANNEL_NUM				= 0x66,
-	IWL_MVM_VENDOR_ATTR_BAND				= 0x69,
-	IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL			= 0x70,
-	IWL_MVM_VENDOR_ATTR_COLLOC_ADDR				= 0x71,
-
-	NUM_IWL_MVM_VENDOR_ATTR,
-	MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
-};
-
-#endif /* __VENDOR_CMD_INTEL_H__ */
diff --git a/original/uapi/linux/nl80211.h b/original/uapi/linux/nl80211.h
index 195a238..ac78da9 100644
--- a/original/uapi/linux/nl80211.h
+++ b/original/uapi/linux/nl80211.h
@@ -11,7 +11,7 @@
  * Copyright 2008 Jouni Malinen <jouni.malinen@atheros.com>
  * Copyright 2008 Colin McCabe <colin@cozybit.com>
  * Copyright 2015-2017	Intel Deutschland GmbH
- * Copyright (C) 2018-2021 Intel Corporation
+ * Copyright (C) 2018-2020 Intel Corporation
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -301,29 +301,6 @@
  */
 
 /**
- * DOC: FILS shared key crypto offload
- *
- * This feature is applicable to drivers running in AP mode.
- *
- * FILS shared key crypto offload can be advertised by drivers by setting
- * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD flag. The drivers that support
- * FILS shared key crypto offload should be able to encrypt and decrypt
- * association frames for FILS shared key authentication as per IEEE 802.11ai.
- * With this capability, for FILS key derivation, drivers depend on userspace.
- *
- * After FILS key derivation, userspace shares the FILS AAD details with the
- * driver and the driver stores the same to use in decryption of association
- * request and in encryption of association response. The below parameters
- * should be given to the driver in %NL80211_CMD_SET_FILS_AAD.
- *	%NL80211_ATTR_MAC - STA MAC address, used for storing FILS AAD per STA
- *	%NL80211_ATTR_FILS_KEK - Used for encryption or decryption
- *	%NL80211_ATTR_FILS_NONCES - Used for encryption or decryption
- *			(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
- *
- * Once the association is done, the driver cleans the FILS AAD data.
- */
-
-/**
  * enum nl80211_commands - supported nl80211 commands
  *
  * @NL80211_CMD_UNSPEC: unspecified command to catch errors
@@ -360,10 +337,7 @@
  * @NL80211_CMD_DEL_INTERFACE: Virtual interface was deleted, has attributes
  *	%NL80211_ATTR_IFINDEX and %NL80211_ATTR_WIPHY. Can also be sent from
  *	userspace to request deletion of a virtual interface, then requires
- *	attribute %NL80211_ATTR_IFINDEX. If multiple BSSID advertisements are
- *	enabled using %NL80211_ATTR_MBSSID_CONFIG, %NL80211_ATTR_MBSSID_ELEMS,
- *	and if this command is used for the transmitting interface, then all
- *	the non-transmitting interfaces are deleted as well.
+ *	attribute %NL80211_ATTR_IFINDEX.
  *
  * @NL80211_CMD_GET_KEY: Get sequence counter information for a key specified
  *	by %NL80211_ATTR_KEY_IDX and/or %NL80211_ATTR_MAC.
@@ -681,9 +655,6 @@
  *	When a security association was established on an 802.1X network using
  *	fast transition, this event should be followed by an
  *	%NL80211_CMD_PORT_AUTHORIZED event.
- *	Following a %NL80211_CMD_ROAM event userspace can issue
- *	%NL80211_CMD_GET_SCAN in order to obtain the scan information for the
- *	new BSS the card/driver roamed to.
  * @NL80211_CMD_DISCONNECT: drop a given connection; also used to notify
  *	userspace that a connection was dropped by the AP or due to other
  *	reasons, for this the %NL80211_ATTR_DISCONNECTED_BY_AP and
@@ -1211,32 +1182,6 @@
  *	passed using %NL80211_ATTR_SAR_SPEC. %NL80211_ATTR_WIPHY is used to
  *	specify the wiphy index to be applied to.
  *
- * @NL80211_CMD_OBSS_COLOR_COLLISION: This notification is sent out whenever
- *	mac80211/drv detects a bss color collision.
- *
- * @NL80211_CMD_COLOR_CHANGE_REQUEST: This command is used to indicate that
- *	userspace wants to change the BSS color.
- *
- * @NL80211_CMD_COLOR_CHANGE_STARTED: Notify userland, that a color change has
- *	started
- *
- * @NL80211_CMD_COLOR_CHANGE_ABORTED: Notify userland, that the color change has
- *	been aborted
- *
- * @NL80211_CMD_COLOR_CHANGE_COMPLETED: Notify userland that the color change
- *	has completed
- *
- * @NL80211_CMD_SET_FILS_AAD: Set FILS AAD data to the driver using -
- *	&NL80211_ATTR_MAC - for STA MAC address
- *	&NL80211_ATTR_FILS_KEK - for KEK
- *	&NL80211_ATTR_FILS_NONCES - for FILS Nonces
- *		(STA Nonce 16 bytes followed by AP Nonce 16 bytes)
- *
- * @NL80211_CMD_ASSOC_COMEBACK: notification about an association
- *      temporal rejection with comeback. The event includes %NL80211_ATTR_MAC
- *      to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to
- *      specify the timeout value.
- *
  * @NL80211_CMD_MAX: highest used command number
  * @__NL80211_CMD_AFTER_LAST: internal use
  */
@@ -1469,18 +1414,6 @@
 
 	NL80211_CMD_SET_SAR_SPECS,
 
-	NL80211_CMD_OBSS_COLOR_COLLISION,
-
-	NL80211_CMD_COLOR_CHANGE_REQUEST,
-
-	NL80211_CMD_COLOR_CHANGE_STARTED,
-	NL80211_CMD_COLOR_CHANGE_ABORTED,
-	NL80211_CMD_COLOR_CHANGE_COMPLETED,
-
-	NL80211_CMD_SET_FILS_AAD,
-
-	NL80211_CMD_ASSOC_COMEBACK,
-
 	/* add new commands above here */
 
 	/* used to define NL80211_CMD_MAX below */
@@ -2477,9 +2410,7 @@
  *	space supports external authentication. This attribute shall be used
  *	with %NL80211_CMD_CONNECT and %NL80211_CMD_START_AP request. The driver
  *	may offload authentication processing to user space if this capability
- *	is indicated in the respective requests from the user space. (This flag
- *	attribute deprecated for %NL80211_CMD_START_AP, use
- *	%NL80211_ATTR_AP_SETTINGS_FLAGS)
+ *	is indicated in the respective requests from the user space.
  *
  * @NL80211_ATTR_NSS: Station's New/updated  RX_NSS value notified using this
  *	u8 attribute. This is used with %NL80211_CMD_STA_OPMODE_CHANGED.
@@ -2626,39 +2557,6 @@
  *	disassoc events to indicate that an immediate reconnect to the AP
  *	is desired.
  *
- * @NL80211_ATTR_OBSS_COLOR_BITMAP: bitmap of the u64 BSS colors for the
- *	%NL80211_CMD_OBSS_COLOR_COLLISION event.
- *
- * @NL80211_ATTR_COLOR_CHANGE_COUNT: u8 attribute specifying the number of TBTT's
- *	until the color switch event.
- * @NL80211_ATTR_COLOR_CHANGE_COLOR: u8 attribute specifying the color that we are
- *	switching to
- * @NL80211_ATTR_COLOR_CHANGE_ELEMS: Nested set of attributes containing the IE
- *	information for the time while performing a color switch.
- *
- * @NL80211_ATTR_MBSSID_CONFIG: Nested attribute for multiple BSSID
- *	advertisements (MBSSID) parameters in AP mode.
- *	Kernel uses this attribute to indicate the driver's support for MBSSID
- *	and enhanced multi-BSSID advertisements (EMA AP) to the userspace.
- *	Userspace should use this attribute to configure per interface MBSSID
- *	parameters.
- *	See &enum nl80211_mbssid_config_attributes for details.
- *
- * @NL80211_ATTR_MBSSID_ELEMS: Nested parameter to pass multiple BSSID elements.
- *	Mandatory parameter for the transmitting interface to enable MBSSID.
- *	Optional for the non-transmitting interfaces.
- *
- * @NL80211_ATTR_RADAR_BACKGROUND: Configure dedicated offchannel chain
- *	available for radar/CAC detection on some hw. This chain can't be used
- *	to transmit or receive frames and it is bounded to a running wdev.
- *	Background radar/CAC detection allows to avoid the CAC downtime
- *	switching on a different channel during CAC detection on the selected
- *	radar channel.
- *
- * @NL80211_ATTR_AP_SETTINGS_FLAGS: u32 attribute contains ap settings flags,
- *	enumerated in &enum nl80211_ap_settings_flags. This attribute shall be
- *	used with %NL80211_CMD_START_AP request.
- *
  * @NUM_NL80211_ATTR: total number of nl80211_attrs available
  * @NL80211_ATTR_MAX: highest attribute number currently defined
  * @__NL80211_ATTR_AFTER_LAST: internal use
@@ -3156,19 +3054,6 @@
 
 	NL80211_ATTR_DISABLE_HE,
 
-	NL80211_ATTR_OBSS_COLOR_BITMAP,
-
-	NL80211_ATTR_COLOR_CHANGE_COUNT,
-	NL80211_ATTR_COLOR_CHANGE_COLOR,
-	NL80211_ATTR_COLOR_CHANGE_ELEMS,
-
-	NL80211_ATTR_MBSSID_CONFIG,
-	NL80211_ATTR_MBSSID_ELEMS,
-
-	NL80211_ATTR_RADAR_BACKGROUND,
-
-	NL80211_ATTR_AP_SETTINGS_FLAGS,
-
 	/* add attributes here, update the policy in nl80211.c */
 
 	__NL80211_ATTR_AFTER_LAST,
@@ -3762,12 +3647,11 @@
  *     capabilities IE
  * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
  *     defined in HE capabilities IE
+ * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
+ *     defined
  * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA: HE 6GHz band capabilities (__le16),
  *	given for all 6 GHz band channels
- * @NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS: vendor element capabilities that are
- *	advertised on this band/for this iftype (binary)
  * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
- * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band attribute currently defined
  */
 enum nl80211_band_iftype_attr {
 	__NL80211_BAND_IFTYPE_ATTR_INVALID,
@@ -3778,7 +3662,6 @@
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
 	NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
-	NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
 
 	/* keep last */
 	__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
@@ -5001,7 +4884,6 @@
  * @NL80211_BAND_60GHZ: around 60 GHz band (58.32 - 69.12 GHz)
  * @NL80211_BAND_6GHZ: around 6 GHz band (5.9 - 7.2 GHz)
  * @NL80211_BAND_S1GHZ: around 900MHz, supported by S1G PHYs
- * @NL80211_BAND_LC: light communication band (placeholder)
  * @NUM_NL80211_BANDS: number of bands, avoid using this in userspace
  *	since newer kernel versions may support more bands
  */
@@ -5011,7 +4893,6 @@
 	NL80211_BAND_60GHZ,
 	NL80211_BAND_6GHZ,
 	NL80211_BAND_S1GHZ,
-	NL80211_BAND_LC,
 
 	NUM_NL80211_BANDS,
 };
@@ -5578,7 +5459,7 @@
  *	=> allows 8 of AP/GO that can have BI gcd >= min gcd
  *
  *	numbers = [ #{STA} <= 2 ], channels = 2, max = 2
- *	=> allows two STAs on the same or on different channels
+ *	=> allows two STAs on different channels
  *
  *	numbers = [ #{STA} <= 1, #{P2P-client,P2P-GO} <= 3 ], max = 4
  *	=> allows a STA plus three P2P interfaces
@@ -5623,7 +5504,7 @@
  * @NL80211_PLINK_ESTAB: mesh peer link is established
  * @NL80211_PLINK_HOLDING: mesh peer link is being closed or cancelled
  * @NL80211_PLINK_BLOCKED: all frames transmitted from this mesh
- *	plink are discarded, except for authentication frames
+ *	plink are discarded
  * @NUM_NL80211_PLINK_STATES: number of peer link states
  * @MAX_NL80211_PLINK_STATES: highest numerical value of plink states
  */
@@ -5760,15 +5641,13 @@
 	NL80211_TDLS_DISABLE_LINK,
 };
 
-/**
+/*
  * enum nl80211_ap_sme_features - device-integrated AP features
- * @NL80211_AP_SME_SA_QUERY_OFFLOAD: SA Query procedures offloaded to driver
- *	when user space indicates support for SA Query procedures offload during
- *	"start ap" with %NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT.
- */
+ * Reserved for future use, no bits are defined in
+ * NL80211_ATTR_DEVICE_AP_SME yet.
 enum nl80211_ap_sme_features {
-	NL80211_AP_SME_SA_QUERY_OFFLOAD		= 1 << 0,
 };
+ */
 
 /**
  * enum nl80211_feature_flags - device/driver features
@@ -6058,27 +5937,6 @@
  * @NL80211_EXT_FEATURE_BEACON_RATE_HE: Driver supports beacon rate
  *	configuration (AP/mesh) with HE rates.
  *
- * @NL80211_EXT_FEATURE_SECURE_LTF: Device supports secure LTF measurement
- *      exchange protocol.
- *
- * @NL80211_EXT_FEATURE_SECURE_RTT: Device supports secure RTT measurement
- *      exchange protocol.
- *
- * @NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE: Device supports management
- *      frame protection for all management frames exchanged during the
- *      negotiation and range measurement procedure.
- *
- * @NL80211_EXT_FEATURE_BSS_COLOR: The driver supports BSS color collision
- *	detection and change announcemnts.
- *
- * @NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD: Driver running in AP mode supports
- *	FILS encryption and decryption for (Re)Association Request and Response
- *	frames. Userspace has to share FILS AAD details to the driver by using
- *	@NL80211_CMD_SET_FILS_AAD.
- *
- * @NL80211_EXT_FEATURE_RADAR_BACKGROUND: Device supports background radar/CAC
- *	detection.
- *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -6140,12 +5998,6 @@
 	NL80211_EXT_FEATURE_FILS_DISCOVERY,
 	NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
 	NL80211_EXT_FEATURE_BEACON_RATE_HE,
-	NL80211_EXT_FEATURE_SECURE_LTF,
-	NL80211_EXT_FEATURE_SECURE_RTT,
-	NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
-	NL80211_EXT_FEATURE_BSS_COLOR,
-	NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
-	NL80211_EXT_FEATURE_RADAR_BACKGROUND,
 
 	/* add new features before the definition below */
 	NUM_NL80211_EXT_FEATURES,
@@ -6443,13 +6295,11 @@
  * @NL80211_TDLS_PEER_HT: TDLS peer is HT capable.
  * @NL80211_TDLS_PEER_VHT: TDLS peer is VHT capable.
  * @NL80211_TDLS_PEER_WMM: TDLS peer is WMM capable.
- * @NL80211_TDLS_PEER_HE: TDLS peer is HE capable.
  */
 enum nl80211_tdls_peer_capability {
 	NL80211_TDLS_PEER_HT = 1<<0,
 	NL80211_TDLS_PEER_VHT = 1<<1,
 	NL80211_TDLS_PEER_WMM = 1<<2,
-	NL80211_TDLS_PEER_HE = 1<<3,
 };
 
 /**
@@ -7041,12 +6891,6 @@
  *      if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
  *	%NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
  *	ranging will be used.
- * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only
- *	valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or
- *	%NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set.
- * @NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR: optional. The BSS color of the
- *	responder. Only valid if %NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED
- *	or %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED is set.
  *
  * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
  * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
@@ -7065,8 +6909,6 @@
 	NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
 	NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
 	NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
-	NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
-	NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
 
 	/* keep last */
 	NUM_NL80211_PMSR_FTM_REQ_ATTR,
@@ -7435,76 +7277,4 @@
 	NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
 
-/**
- * enum nl80211_mbssid_config_attributes - multiple BSSID (MBSSID) and enhanced
- * multi-BSSID advertisements (EMA) in AP mode.
- * Kernel uses some of these attributes to advertise driver's support for
- * MBSSID and EMA.
- * Remaining attributes should be used by the userspace to configure the
- * features.
- *
- * @__NL80211_MBSSID_CONFIG_ATTR_INVALID: Invalid
- *
- * @NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES: Used by the kernel to advertise
- *	the maximum number of MBSSID interfaces supported by the driver.
- *	Driver should indicate MBSSID support by setting
- *	wiphy->mbssid_max_interfaces to a value more than or equal to 2.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY: Used by the kernel
- *	to advertise the maximum profile periodicity supported by the driver
- *	if EMA is enabled. Driver should indicate EMA support to the userspace
- *	by setting wiphy->ema_max_profile_periodicity to
- *	a non-zero value.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_INDEX: Mandatory parameter to pass the index of
- *	this BSS (u8) in the multiple BSSID set.
- *	Value must be set to 0 for the transmitting interface and non-zero for
- *	all non-transmitting interfaces. The userspace will be responsible
- *	for using unique indices for the interfaces.
- *	Range: 0 to wiphy->mbssid_max_interfaces-1.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX: Mandatory parameter for
- *	a non-transmitted profile which provides the interface index (u32) of
- *	the transmitted profile. The value must match one of the interface
- *	indices advertised by the kernel. Optional if the interface being set up
- *	is the transmitting one, however, if provided then the value must match
- *	the interface index of the same.
- *
- * @NL80211_MBSSID_CONFIG_ATTR_EMA: Flag used to enable EMA AP feature.
- *	Setting this flag is permitted only if the driver advertises EMA support
- *	by setting wiphy->ema_max_profile_periodicity to non-zero.
- *
- * @__NL80211_MBSSID_CONFIG_ATTR_LAST: Internal
- * @NL80211_MBSSID_CONFIG_ATTR_MAX: highest attribute
- */
-enum nl80211_mbssid_config_attributes {
-	__NL80211_MBSSID_CONFIG_ATTR_INVALID,
-
-	NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
-	NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
-	NL80211_MBSSID_CONFIG_ATTR_INDEX,
-	NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
-	NL80211_MBSSID_CONFIG_ATTR_EMA,
-
-	/* keep last */
-	__NL80211_MBSSID_CONFIG_ATTR_LAST,
-	NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
-};
-
-/**
- * enum nl80211_ap_settings_flags - AP settings flags
- *
- * @NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT: AP supports external
- *	authentication.
- * @NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT: Userspace supports SA Query
- *	procedures offload to driver. If driver advertises
- *	%NL80211_AP_SME_SA_QUERY_OFFLOAD in AP SME features, userspace shall
- *	ignore SA Query procedures and validations when this flag is set by
- *	userspace.
- */
-enum nl80211_ap_settings_flags {
-	NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT	= 1 << 0,
-	NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT	= 1 << 1,
-};
-
 #endif /* __LINUX_NL80211_H */
diff --git a/original/uapi/linux/openvswitch.h b/original/uapi/linux/openvswitch.h
index 150bcff..8d16744 100644
--- a/original/uapi/linux/openvswitch.h
+++ b/original/uapi/linux/openvswitch.h
@@ -70,8 +70,6 @@
  * set on the datapath port (for OVS_ACTION_ATTR_MISS).  Only valid on
  * %OVS_DP_CMD_NEW requests. A value of zero indicates that upcalls should
  * not be sent.
- * @OVS_DP_ATTR_PER_CPU_PIDS: Per-cpu array of PIDs for upcalls when
- * OVS_DP_F_DISPATCH_UPCALL_PER_CPU feature is set.
  * @OVS_DP_ATTR_STATS: Statistics about packets that have passed through the
  * datapath.  Always present in notifications.
  * @OVS_DP_ATTR_MEGAFLOW_STATS: Statistics about mega flow masks usage for the
@@ -89,9 +87,6 @@
 	OVS_DP_ATTR_USER_FEATURES,	/* OVS_DP_F_*  */
 	OVS_DP_ATTR_PAD,
 	OVS_DP_ATTR_MASKS_CACHE_SIZE,
-	OVS_DP_ATTR_PER_CPU_PIDS,   /* Netlink PIDS to receive upcalls in
-				     * per-cpu dispatch mode
-				     */
 	__OVS_DP_ATTR_MAX
 };
 
@@ -132,9 +127,6 @@
 /* Allow tc offload recirc sharing */
 #define OVS_DP_F_TC_RECIRC_SHARING	(1 << 2)
 
-/* Allow per-cpu dispatch of upcalls */
-#define OVS_DP_F_DISPATCH_UPCALL_PER_CPU	(1 << 3)
-
 /* Fixed logical ports. */
 #define OVSP_LOCAL      ((__u32)0)
 
diff --git a/original/uapi/linux/pci_regs.h b/original/uapi/linux/pci_regs.h
index bee1a9e..e709ae8 100644
--- a/original/uapi/linux/pci_regs.h
+++ b/original/uapi/linux/pci_regs.h
@@ -301,23 +301,23 @@
 #define  PCI_SID_ESR_FIC	0x20	/* First In Chassis Flag */
 #define PCI_SID_CHASSIS_NR	3	/* Chassis Number */
 
-/* Message Signaled Interrupt registers */
+/* Message Signalled Interrupt registers */
 
-#define PCI_MSI_FLAGS		0x02	/* Message Control */
+#define PCI_MSI_FLAGS		2	/* Message Control */
 #define  PCI_MSI_FLAGS_ENABLE	0x0001	/* MSI feature enabled */
 #define  PCI_MSI_FLAGS_QMASK	0x000e	/* Maximum queue size available */
 #define  PCI_MSI_FLAGS_QSIZE	0x0070	/* Message queue size configured */
 #define  PCI_MSI_FLAGS_64BIT	0x0080	/* 64-bit addresses allowed */
 #define  PCI_MSI_FLAGS_MASKBIT	0x0100	/* Per-vector masking capable */
 #define PCI_MSI_RFU		3	/* Rest of capability flags */
-#define PCI_MSI_ADDRESS_LO	0x04	/* Lower 32 bits */
-#define PCI_MSI_ADDRESS_HI	0x08	/* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */
-#define PCI_MSI_DATA_32		0x08	/* 16 bits of data for 32-bit devices */
-#define PCI_MSI_MASK_32		0x0c	/* Mask bits register for 32-bit devices */
-#define PCI_MSI_PENDING_32	0x10	/* Pending intrs for 32-bit devices */
-#define PCI_MSI_DATA_64		0x0c	/* 16 bits of data for 64-bit devices */
-#define PCI_MSI_MASK_64		0x10	/* Mask bits register for 64-bit devices */
-#define PCI_MSI_PENDING_64	0x14	/* Pending intrs for 64-bit devices */
+#define PCI_MSI_ADDRESS_LO	4	/* Lower 32 bits */
+#define PCI_MSI_ADDRESS_HI	8	/* Upper 32 bits (if PCI_MSI_FLAGS_64BIT set) */
+#define PCI_MSI_DATA_32		8	/* 16 bits of data for 32-bit devices */
+#define PCI_MSI_MASK_32		12	/* Mask bits register for 32-bit devices */
+#define PCI_MSI_PENDING_32	16	/* Pending intrs for 32-bit devices */
+#define PCI_MSI_DATA_64		12	/* 16 bits of data for 64-bit devices */
+#define PCI_MSI_MASK_64		16	/* Mask bits register for 64-bit devices */
+#define PCI_MSI_PENDING_64	20	/* Pending intrs for 64-bit devices */
 
 /* MSI-X registers (in MSI-X capability) */
 #define PCI_MSIX_FLAGS		2	/* Message Control */
@@ -335,10 +335,10 @@
 
 /* MSI-X Table entry format (in memory mapped by a BAR) */
 #define PCI_MSIX_ENTRY_SIZE		16
-#define PCI_MSIX_ENTRY_LOWER_ADDR	0x0  /* Message Address */
-#define PCI_MSIX_ENTRY_UPPER_ADDR	0x4  /* Message Upper Address */
-#define PCI_MSIX_ENTRY_DATA		0x8  /* Message Data */
-#define PCI_MSIX_ENTRY_VECTOR_CTRL	0xc  /* Vector Control */
+#define PCI_MSIX_ENTRY_LOWER_ADDR	0  /* Message Address */
+#define PCI_MSIX_ENTRY_UPPER_ADDR	4  /* Message Upper Address */
+#define PCI_MSIX_ENTRY_DATA		8  /* Message Data */
+#define PCI_MSIX_ENTRY_VECTOR_CTRL	12 /* Vector Control */
 #define  PCI_MSIX_ENTRY_CTRL_MASKBIT	0x00000001
 
 /* CompactPCI Hotswap Register */
@@ -470,7 +470,7 @@
 
 /* PCI Express capability registers */
 
-#define PCI_EXP_FLAGS		0x02	/* Capabilities register */
+#define PCI_EXP_FLAGS		2	/* Capabilities register */
 #define  PCI_EXP_FLAGS_VERS	0x000f	/* Capability version */
 #define  PCI_EXP_FLAGS_TYPE	0x00f0	/* Device/Port type */
 #define   PCI_EXP_TYPE_ENDPOINT	   0x0	/* Express Endpoint */
@@ -484,7 +484,7 @@
 #define   PCI_EXP_TYPE_RC_EC	   0xa	/* Root Complex Event Collector */
 #define  PCI_EXP_FLAGS_SLOT	0x0100	/* Slot implemented */
 #define  PCI_EXP_FLAGS_IRQ	0x3e00	/* Interrupt message number */
-#define PCI_EXP_DEVCAP		0x04	/* Device capabilities */
+#define PCI_EXP_DEVCAP		4	/* Device capabilities */
 #define  PCI_EXP_DEVCAP_PAYLOAD	0x00000007 /* Max_Payload_Size */
 #define  PCI_EXP_DEVCAP_PHANTOM	0x00000018 /* Phantom functions */
 #define  PCI_EXP_DEVCAP_EXT_TAG	0x00000020 /* Extended tags */
@@ -497,19 +497,13 @@
 #define  PCI_EXP_DEVCAP_PWR_VAL	0x03fc0000 /* Slot Power Limit Value */
 #define  PCI_EXP_DEVCAP_PWR_SCL	0x0c000000 /* Slot Power Limit Scale */
 #define  PCI_EXP_DEVCAP_FLR     0x10000000 /* Function Level Reset */
-#define PCI_EXP_DEVCTL		0x08	/* Device Control */
+#define PCI_EXP_DEVCTL		8	/* Device Control */
 #define  PCI_EXP_DEVCTL_CERE	0x0001	/* Correctable Error Reporting En. */
 #define  PCI_EXP_DEVCTL_NFERE	0x0002	/* Non-Fatal Error Reporting Enable */
 #define  PCI_EXP_DEVCTL_FERE	0x0004	/* Fatal Error Reporting Enable */
 #define  PCI_EXP_DEVCTL_URRE	0x0008	/* Unsupported Request Reporting En. */
 #define  PCI_EXP_DEVCTL_RELAX_EN 0x0010 /* Enable relaxed ordering */
 #define  PCI_EXP_DEVCTL_PAYLOAD	0x00e0	/* Max_Payload_Size */
-#define  PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000 /* 128 Bytes */
-#define  PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020 /* 256 Bytes */
-#define  PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040 /* 512 Bytes */
-#define  PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060 /* 1024 Bytes */
-#define  PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080 /* 2048 Bytes */
-#define  PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0 /* 4096 Bytes */
 #define  PCI_EXP_DEVCTL_EXT_TAG	0x0100	/* Extended Tag Field Enable */
 #define  PCI_EXP_DEVCTL_PHANTOM	0x0200	/* Phantom Functions Enable */
 #define  PCI_EXP_DEVCTL_AUX_PME	0x0400	/* Auxiliary Power PM Enable */
@@ -522,7 +516,7 @@
 #define  PCI_EXP_DEVCTL_READRQ_2048B 0x4000 /* 2048 Bytes */
 #define  PCI_EXP_DEVCTL_READRQ_4096B 0x5000 /* 4096 Bytes */
 #define  PCI_EXP_DEVCTL_BCR_FLR 0x8000  /* Bridge Configuration Retry / FLR */
-#define PCI_EXP_DEVSTA		0x0a	/* Device Status */
+#define PCI_EXP_DEVSTA		10	/* Device Status */
 #define  PCI_EXP_DEVSTA_CED	0x0001	/* Correctable Error Detected */
 #define  PCI_EXP_DEVSTA_NFED	0x0002	/* Non-Fatal Error Detected */
 #define  PCI_EXP_DEVSTA_FED	0x0004	/* Fatal Error Detected */
@@ -530,7 +524,7 @@
 #define  PCI_EXP_DEVSTA_AUXPD	0x0010	/* AUX Power Detected */
 #define  PCI_EXP_DEVSTA_TRPND	0x0020	/* Transactions Pending */
 #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1	12	/* v1 endpoints without link end here */
-#define PCI_EXP_LNKCAP		0x0c	/* Link Capabilities */
+#define PCI_EXP_LNKCAP		12	/* Link Capabilities */
 #define  PCI_EXP_LNKCAP_SLS	0x0000000f /* Supported Link Speeds */
 #define  PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001 /* LNKCAP2 SLS Vector bit 0 */
 #define  PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002 /* LNKCAP2 SLS Vector bit 1 */
@@ -549,7 +543,7 @@
 #define  PCI_EXP_LNKCAP_DLLLARC	0x00100000 /* Data Link Layer Link Active Reporting Capable */
 #define  PCI_EXP_LNKCAP_LBNC	0x00200000 /* Link Bandwidth Notification Capability */
 #define  PCI_EXP_LNKCAP_PN	0xff000000 /* Port Number */
-#define PCI_EXP_LNKCTL		0x10	/* Link Control */
+#define PCI_EXP_LNKCTL		16	/* Link Control */
 #define  PCI_EXP_LNKCTL_ASPMC	0x0003	/* ASPM Control */
 #define  PCI_EXP_LNKCTL_ASPM_L0S 0x0001	/* L0s Enable */
 #define  PCI_EXP_LNKCTL_ASPM_L1  0x0002	/* L1 Enable */
@@ -562,7 +556,7 @@
 #define  PCI_EXP_LNKCTL_HAWD	0x0200	/* Hardware Autonomous Width Disable */
 #define  PCI_EXP_LNKCTL_LBMIE	0x0400	/* Link Bandwidth Management Interrupt Enable */
 #define  PCI_EXP_LNKCTL_LABIE	0x0800	/* Link Autonomous Bandwidth Interrupt Enable */
-#define PCI_EXP_LNKSTA		0x12	/* Link Status */
+#define PCI_EXP_LNKSTA		18	/* Link Status */
 #define  PCI_EXP_LNKSTA_CLS	0x000f	/* Current Link Speed */
 #define  PCI_EXP_LNKSTA_CLS_2_5GB 0x0001 /* Current Link Speed 2.5GT/s */
 #define  PCI_EXP_LNKSTA_CLS_5_0GB 0x0002 /* Current Link Speed 5.0GT/s */
@@ -582,7 +576,7 @@
 #define  PCI_EXP_LNKSTA_LBMS	0x4000	/* Link Bandwidth Management Status */
 #define  PCI_EXP_LNKSTA_LABS	0x8000	/* Link Autonomous Bandwidth Status */
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1	20	/* v1 endpoints with link end here */
-#define PCI_EXP_SLTCAP		0x14	/* Slot Capabilities */
+#define PCI_EXP_SLTCAP		20	/* Slot Capabilities */
 #define  PCI_EXP_SLTCAP_ABP	0x00000001 /* Attention Button Present */
 #define  PCI_EXP_SLTCAP_PCP	0x00000002 /* Power Controller Present */
 #define  PCI_EXP_SLTCAP_MRLSP	0x00000004 /* MRL Sensor Present */
@@ -595,7 +589,7 @@
 #define  PCI_EXP_SLTCAP_EIP	0x00020000 /* Electromechanical Interlock Present */
 #define  PCI_EXP_SLTCAP_NCCS	0x00040000 /* No Command Completed Support */
 #define  PCI_EXP_SLTCAP_PSN	0xfff80000 /* Physical Slot Number */
-#define PCI_EXP_SLTCTL		0x18	/* Slot Control */
+#define PCI_EXP_SLTCTL		24	/* Slot Control */
 #define  PCI_EXP_SLTCTL_ABPE	0x0001	/* Attention Button Pressed Enable */
 #define  PCI_EXP_SLTCTL_PFDE	0x0002	/* Power Fault Detected Enable */
 #define  PCI_EXP_SLTCTL_MRLSCE	0x0004	/* MRL Sensor Changed Enable */
@@ -617,7 +611,7 @@
 #define  PCI_EXP_SLTCTL_EIC	0x0800	/* Electromechanical Interlock Control */
 #define  PCI_EXP_SLTCTL_DLLSCE	0x1000	/* Data Link Layer State Changed Enable */
 #define  PCI_EXP_SLTCTL_IBPD_DISABLE	0x4000 /* In-band PD disable */
-#define PCI_EXP_SLTSTA		0x1a	/* Slot Status */
+#define PCI_EXP_SLTSTA		26	/* Slot Status */
 #define  PCI_EXP_SLTSTA_ABP	0x0001	/* Attention Button Pressed */
 #define  PCI_EXP_SLTSTA_PFD	0x0002	/* Power Fault Detected */
 #define  PCI_EXP_SLTSTA_MRLSC	0x0004	/* MRL Sensor Changed */
@@ -627,15 +621,15 @@
 #define  PCI_EXP_SLTSTA_PDS	0x0040	/* Presence Detect State */
 #define  PCI_EXP_SLTSTA_EIS	0x0080	/* Electromechanical Interlock Status */
 #define  PCI_EXP_SLTSTA_DLLSC	0x0100	/* Data Link Layer State Changed */
-#define PCI_EXP_RTCTL		0x1c	/* Root Control */
+#define PCI_EXP_RTCTL		28	/* Root Control */
 #define  PCI_EXP_RTCTL_SECEE	0x0001	/* System Error on Correctable Error */
 #define  PCI_EXP_RTCTL_SENFEE	0x0002	/* System Error on Non-Fatal Error */
 #define  PCI_EXP_RTCTL_SEFEE	0x0004	/* System Error on Fatal Error */
 #define  PCI_EXP_RTCTL_PMEIE	0x0008	/* PME Interrupt Enable */
 #define  PCI_EXP_RTCTL_CRSSVE	0x0010	/* CRS Software Visibility Enable */
-#define PCI_EXP_RTCAP		0x1e	/* Root Capabilities */
+#define PCI_EXP_RTCAP		30	/* Root Capabilities */
 #define  PCI_EXP_RTCAP_CRSVIS	0x0001	/* CRS Software Visibility capability */
-#define PCI_EXP_RTSTA		0x20	/* Root Status */
+#define PCI_EXP_RTSTA		32	/* Root Status */
 #define  PCI_EXP_RTSTA_PME	0x00010000 /* PME status */
 #define  PCI_EXP_RTSTA_PENDING	0x00020000 /* PME pending */
 /*
@@ -646,7 +640,7 @@
  * Use pcie_capability_read_word() and similar interfaces to use them
  * safely.
  */
-#define PCI_EXP_DEVCAP2		0x24	/* Device Capabilities 2 */
+#define PCI_EXP_DEVCAP2		36	/* Device Capabilities 2 */
 #define  PCI_EXP_DEVCAP2_COMP_TMOUT_DIS	0x00000010 /* Completion Timeout Disable supported */
 #define  PCI_EXP_DEVCAP2_ARI		0x00000020 /* Alternative Routing-ID */
 #define  PCI_EXP_DEVCAP2_ATOMIC_ROUTE	0x00000040 /* Atomic Op routing */
@@ -658,7 +652,7 @@
 #define  PCI_EXP_DEVCAP2_OBFF_MSG	0x00040000 /* New message signaling */
 #define  PCI_EXP_DEVCAP2_OBFF_WAKE	0x00080000 /* Re-use WAKE# for OBFF */
 #define  PCI_EXP_DEVCAP2_EE_PREFIX	0x00200000 /* End-End TLP Prefix */
-#define PCI_EXP_DEVCTL2		0x28	/* Device Control 2 */
+#define PCI_EXP_DEVCTL2		40	/* Device Control 2 */
 #define  PCI_EXP_DEVCTL2_COMP_TIMEOUT	0x000f	/* Completion Timeout Value */
 #define  PCI_EXP_DEVCTL2_COMP_TMOUT_DIS	0x0010	/* Completion Timeout Disable */
 #define  PCI_EXP_DEVCTL2_ARI		0x0020	/* Alternative Routing-ID */
@@ -670,9 +664,9 @@
 #define  PCI_EXP_DEVCTL2_OBFF_MSGA_EN	0x2000	/* Enable OBFF Message type A */
 #define  PCI_EXP_DEVCTL2_OBFF_MSGB_EN	0x4000	/* Enable OBFF Message type B */
 #define  PCI_EXP_DEVCTL2_OBFF_WAKE_EN	0x6000	/* OBFF using WAKE# signaling */
-#define PCI_EXP_DEVSTA2		0x2a	/* Device Status 2 */
-#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c	/* end of v2 EPs w/o link */
-#define PCI_EXP_LNKCAP2		0x2c	/* Link Capabilities 2 */
+#define PCI_EXP_DEVSTA2		42	/* Device Status 2 */
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2	44	/* v2 endpoints without link end here */
+#define PCI_EXP_LNKCAP2		44	/* Link Capabilities 2 */
 #define  PCI_EXP_LNKCAP2_SLS_2_5GB	0x00000002 /* Supported Speed 2.5GT/s */
 #define  PCI_EXP_LNKCAP2_SLS_5_0GB	0x00000004 /* Supported Speed 5GT/s */
 #define  PCI_EXP_LNKCAP2_SLS_8_0GB	0x00000008 /* Supported Speed 8GT/s */
@@ -680,7 +674,7 @@
 #define  PCI_EXP_LNKCAP2_SLS_32_0GB	0x00000020 /* Supported Speed 32GT/s */
 #define  PCI_EXP_LNKCAP2_SLS_64_0GB	0x00000040 /* Supported Speed 64GT/s */
 #define  PCI_EXP_LNKCAP2_CROSSLINK	0x00000100 /* Crosslink supported */
-#define PCI_EXP_LNKCTL2		0x30	/* Link Control 2 */
+#define PCI_EXP_LNKCTL2		48	/* Link Control 2 */
 #define  PCI_EXP_LNKCTL2_TLS		0x000f
 #define  PCI_EXP_LNKCTL2_TLS_2_5GT	0x0001 /* Supported Speed 2.5GT/s */
 #define  PCI_EXP_LNKCTL2_TLS_5_0GT	0x0002 /* Supported Speed 5GT/s */
@@ -691,12 +685,12 @@
 #define  PCI_EXP_LNKCTL2_ENTER_COMP	0x0010 /* Enter Compliance */
 #define  PCI_EXP_LNKCTL2_TX_MARGIN	0x0380 /* Transmit Margin */
 #define  PCI_EXP_LNKCTL2_HASD		0x0020 /* HW Autonomous Speed Disable */
-#define PCI_EXP_LNKSTA2		0x32	/* Link Status 2 */
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2	0x32	/* end of v2 EPs w/ link */
-#define PCI_EXP_SLTCAP2		0x34	/* Slot Capabilities 2 */
+#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 */
 #define  PCI_EXP_SLTCAP2_IBPD	0x00000001 /* In-band PD Disable Supported */
-#define PCI_EXP_SLTCTL2		0x38	/* Slot Control 2 */
-#define PCI_EXP_SLTSTA2		0x3a	/* Slot Status 2 */
+#define PCI_EXP_SLTCTL2		56	/* Slot Control 2 */
+#define PCI_EXP_SLTSTA2		58	/* Slot Status 2 */
 
 /* Extended Capabilities (PCI-X 2.0 and Express) */
 #define PCI_EXT_CAP_ID(header)		(header & 0x0000ffff)
@@ -742,7 +736,7 @@
 #define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
 
 /* Advanced Error Reporting */
-#define PCI_ERR_UNCOR_STATUS	0x04	/* Uncorrectable Error Status */
+#define PCI_ERR_UNCOR_STATUS	4	/* Uncorrectable Error Status */
 #define  PCI_ERR_UNC_UND	0x00000001	/* Undefined */
 #define  PCI_ERR_UNC_DLP	0x00000010	/* Data Link Protocol */
 #define  PCI_ERR_UNC_SURPDN	0x00000020	/* Surprise Down */
@@ -760,11 +754,11 @@
 #define  PCI_ERR_UNC_MCBTLP	0x00800000	/* MC blocked TLP */
 #define  PCI_ERR_UNC_ATOMEG	0x01000000	/* Atomic egress blocked */
 #define  PCI_ERR_UNC_TLPPRE	0x02000000	/* TLP prefix blocked */
-#define PCI_ERR_UNCOR_MASK	0x08	/* Uncorrectable Error Mask */
+#define PCI_ERR_UNCOR_MASK	8	/* Uncorrectable Error Mask */
 	/* Same bits as above */
-#define PCI_ERR_UNCOR_SEVER	0x0c	/* Uncorrectable Error Severity */
+#define PCI_ERR_UNCOR_SEVER	12	/* Uncorrectable Error Severity */
 	/* Same bits as above */
-#define PCI_ERR_COR_STATUS	0x10	/* Correctable Error Status */
+#define PCI_ERR_COR_STATUS	16	/* Correctable Error Status */
 #define  PCI_ERR_COR_RCVR	0x00000001	/* Receiver Error Status */
 #define  PCI_ERR_COR_BAD_TLP	0x00000040	/* Bad TLP Status */
 #define  PCI_ERR_COR_BAD_DLLP	0x00000080	/* Bad DLLP Status */
@@ -773,20 +767,20 @@
 #define  PCI_ERR_COR_ADV_NFAT	0x00002000	/* Advisory Non-Fatal */
 #define  PCI_ERR_COR_INTERNAL	0x00004000	/* Corrected Internal */
 #define  PCI_ERR_COR_LOG_OVER	0x00008000	/* Header Log Overflow */
-#define PCI_ERR_COR_MASK	0x14	/* Correctable Error Mask */
+#define PCI_ERR_COR_MASK	20	/* Correctable Error Mask */
 	/* Same bits as above */
-#define PCI_ERR_CAP		0x18	/* Advanced Error Capabilities & Ctrl*/
-#define  PCI_ERR_CAP_FEP(x)	((x) & 0x1f)	/* First Error Pointer */
+#define PCI_ERR_CAP		24	/* Advanced Error Capabilities */
+#define  PCI_ERR_CAP_FEP(x)	((x) & 31)	/* First Error Pointer */
 #define  PCI_ERR_CAP_ECRC_GENC	0x00000020	/* ECRC Generation Capable */
 #define  PCI_ERR_CAP_ECRC_GENE	0x00000040	/* ECRC Generation Enable */
 #define  PCI_ERR_CAP_ECRC_CHKC	0x00000080	/* ECRC Check Capable */
 #define  PCI_ERR_CAP_ECRC_CHKE	0x00000100	/* ECRC Check Enable */
-#define PCI_ERR_HEADER_LOG	0x1c	/* Header Log Register (16 bytes) */
-#define PCI_ERR_ROOT_COMMAND	0x2c	/* Root Error Command */
+#define PCI_ERR_HEADER_LOG	28	/* Header Log Register (16 bytes) */
+#define PCI_ERR_ROOT_COMMAND	44	/* Root Error Command */
 #define  PCI_ERR_ROOT_CMD_COR_EN	0x00000001 /* Correctable Err Reporting Enable */
 #define  PCI_ERR_ROOT_CMD_NONFATAL_EN	0x00000002 /* Non-Fatal Err Reporting Enable */
 #define  PCI_ERR_ROOT_CMD_FATAL_EN	0x00000004 /* Fatal Err Reporting Enable */
-#define PCI_ERR_ROOT_STATUS	0x30
+#define PCI_ERR_ROOT_STATUS	48
 #define  PCI_ERR_ROOT_COR_RCV		0x00000001 /* ERR_COR Received */
 #define  PCI_ERR_ROOT_MULTI_COR_RCV	0x00000002 /* Multiple ERR_COR */
 #define  PCI_ERR_ROOT_UNCOR_RCV		0x00000004 /* ERR_FATAL/NONFATAL */
@@ -795,52 +789,52 @@
 #define  PCI_ERR_ROOT_NONFATAL_RCV	0x00000020 /* Non-Fatal Received */
 #define  PCI_ERR_ROOT_FATAL_RCV		0x00000040 /* Fatal Received */
 #define  PCI_ERR_ROOT_AER_IRQ		0xf8000000 /* Advanced Error Interrupt Message Number */
-#define PCI_ERR_ROOT_ERR_SRC	0x34	/* Error Source Identification */
+#define PCI_ERR_ROOT_ERR_SRC	52	/* Error Source Identification */
 
 /* Virtual Channel */
-#define PCI_VC_PORT_CAP1	0x04
+#define PCI_VC_PORT_CAP1	4
 #define  PCI_VC_CAP1_EVCC	0x00000007	/* extended VC count */
 #define  PCI_VC_CAP1_LPEVCC	0x00000070	/* low prio extended VC count */
 #define  PCI_VC_CAP1_ARB_SIZE	0x00000c00
-#define PCI_VC_PORT_CAP2	0x08
+#define PCI_VC_PORT_CAP2	8
 #define  PCI_VC_CAP2_32_PHASE		0x00000002
 #define  PCI_VC_CAP2_64_PHASE		0x00000004
 #define  PCI_VC_CAP2_128_PHASE		0x00000008
 #define  PCI_VC_CAP2_ARB_OFF		0xff000000
-#define PCI_VC_PORT_CTRL	0x0c
+#define PCI_VC_PORT_CTRL	12
 #define  PCI_VC_PORT_CTRL_LOAD_TABLE	0x00000001
-#define PCI_VC_PORT_STATUS	0x0e
+#define PCI_VC_PORT_STATUS	14
 #define  PCI_VC_PORT_STATUS_TABLE	0x00000001
-#define PCI_VC_RES_CAP		0x10
+#define PCI_VC_RES_CAP		16
 #define  PCI_VC_RES_CAP_32_PHASE	0x00000002
 #define  PCI_VC_RES_CAP_64_PHASE	0x00000004
 #define  PCI_VC_RES_CAP_128_PHASE	0x00000008
 #define  PCI_VC_RES_CAP_128_PHASE_TB	0x00000010
 #define  PCI_VC_RES_CAP_256_PHASE	0x00000020
 #define  PCI_VC_RES_CAP_ARB_OFF		0xff000000
-#define PCI_VC_RES_CTRL		0x14
+#define PCI_VC_RES_CTRL		20
 #define  PCI_VC_RES_CTRL_LOAD_TABLE	0x00010000
 #define  PCI_VC_RES_CTRL_ARB_SELECT	0x000e0000
 #define  PCI_VC_RES_CTRL_ID		0x07000000
 #define  PCI_VC_RES_CTRL_ENABLE		0x80000000
-#define PCI_VC_RES_STATUS	0x1a
+#define PCI_VC_RES_STATUS	26
 #define  PCI_VC_RES_STATUS_TABLE	0x00000001
 #define  PCI_VC_RES_STATUS_NEGO		0x00000002
 #define PCI_CAP_VC_BASE_SIZEOF		0x10
-#define PCI_CAP_VC_PER_VC_SIZEOF	0x0c
+#define PCI_CAP_VC_PER_VC_SIZEOF	0x0C
 
 /* Power Budgeting */
-#define PCI_PWR_DSR		0x04	/* Data Select Register */
-#define PCI_PWR_DATA		0x08	/* Data Register */
+#define PCI_PWR_DSR		4	/* Data Select Register */
+#define PCI_PWR_DATA		8	/* Data Register */
 #define  PCI_PWR_DATA_BASE(x)	((x) & 0xff)	    /* Base Power */
 #define  PCI_PWR_DATA_SCALE(x)	(((x) >> 8) & 3)    /* Data Scale */
 #define  PCI_PWR_DATA_PM_SUB(x)	(((x) >> 10) & 7)   /* PM Sub State */
 #define  PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3) /* PM State */
 #define  PCI_PWR_DATA_TYPE(x)	(((x) >> 15) & 7)   /* Type */
 #define  PCI_PWR_DATA_RAIL(x)	(((x) >> 18) & 7)   /* Power Rail */
-#define PCI_PWR_CAP		0x0c	/* Capability */
+#define PCI_PWR_CAP		12	/* Capability */
 #define  PCI_PWR_CAP_BUDGET(x)	((x) & 1)	/* Included in system budget */
-#define PCI_EXT_CAP_PWR_SIZEOF	0x10
+#define PCI_EXT_CAP_PWR_SIZEOF	16
 
 /* Root Complex Event Collector Endpoint Association  */
 #define PCI_RCEC_RCIEP_BITMAP	4	/* Associated Bitmap for RCiEPs */
@@ -964,7 +958,7 @@
 #define  PCI_SRIOV_VFM_MI	0x1	/* Dormant.MigrateIn */
 #define  PCI_SRIOV_VFM_MO	0x2	/* Active.MigrateOut */
 #define  PCI_SRIOV_VFM_AV	0x3	/* Active.Available */
-#define PCI_EXT_CAP_SRIOV_SIZEOF 0x40
+#define PCI_EXT_CAP_SRIOV_SIZEOF 64
 
 #define PCI_LTR_MAX_SNOOP_LAT	0x4
 #define PCI_LTR_MAX_NOSNOOP_LAT	0x6
@@ -1017,12 +1011,12 @@
 #define   PCI_TPH_LOC_NONE	0x000	/* no location */
 #define   PCI_TPH_LOC_CAP	0x200	/* in capability */
 #define   PCI_TPH_LOC_MSIX	0x400	/* in MSI-X */
-#define PCI_TPH_CAP_ST_MASK	0x07FF0000	/* ST table mask */
-#define PCI_TPH_CAP_ST_SHIFT	16	/* ST table shift */
-#define PCI_TPH_BASE_SIZEOF	0xc	/* size with no ST table */
+#define PCI_TPH_CAP_ST_MASK	0x07FF0000	/* st table mask */
+#define PCI_TPH_CAP_ST_SHIFT	16	/* st table shift */
+#define PCI_TPH_BASE_SIZEOF	12	/* size with no st table */
 
 /* Downstream Port Containment */
-#define PCI_EXP_DPC_CAP			0x04	/* DPC Capability */
+#define PCI_EXP_DPC_CAP			4	/* DPC Capability */
 #define PCI_EXP_DPC_IRQ			0x001F	/* Interrupt Message Number */
 #define  PCI_EXP_DPC_CAP_RP_EXT		0x0020	/* Root Port Extensions */
 #define  PCI_EXP_DPC_CAP_POISONED_TLP	0x0040	/* Poisoned TLP Egress Blocking Supported */
@@ -1030,19 +1024,19 @@
 #define  PCI_EXP_DPC_RP_PIO_LOG_SIZE	0x0F00	/* RP PIO Log Size */
 #define  PCI_EXP_DPC_CAP_DL_ACTIVE	0x1000	/* ERR_COR signal on DL_Active supported */
 
-#define PCI_EXP_DPC_CTL			0x06	/* DPC control */
+#define PCI_EXP_DPC_CTL			6	/* DPC control */
 #define  PCI_EXP_DPC_CTL_EN_FATAL	0x0001	/* Enable trigger on ERR_FATAL message */
 #define  PCI_EXP_DPC_CTL_EN_NONFATAL	0x0002	/* Enable trigger on ERR_NONFATAL message */
 #define  PCI_EXP_DPC_CTL_INT_EN		0x0008	/* DPC Interrupt Enable */
 
-#define PCI_EXP_DPC_STATUS		0x08	/* DPC Status */
+#define PCI_EXP_DPC_STATUS		8	/* DPC Status */
 #define  PCI_EXP_DPC_STATUS_TRIGGER	    0x0001 /* Trigger Status */
 #define  PCI_EXP_DPC_STATUS_TRIGGER_RSN	    0x0006 /* Trigger Reason */
 #define  PCI_EXP_DPC_STATUS_INTERRUPT	    0x0008 /* Interrupt Status */
 #define  PCI_EXP_DPC_RP_BUSY		    0x0010 /* Root Port Busy */
 #define  PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060 /* Trig Reason Extension */
 
-#define PCI_EXP_DPC_SOURCE_ID		 0x0A	/* DPC Source Identifier */
+#define PCI_EXP_DPC_SOURCE_ID		10	/* DPC Source Identifier */
 
 #define PCI_EXP_DPC_RP_PIO_STATUS	 0x0C	/* RP PIO Status */
 #define PCI_EXP_DPC_RP_PIO_MASK		 0x10	/* RP PIO Mask */
@@ -1086,11 +1080,7 @@
 
 /* Designated Vendor-Specific (DVSEC, PCI_EXT_CAP_ID_DVSEC) */
 #define PCI_DVSEC_HEADER1		0x4 /* Designated Vendor-Specific Header1 */
-#define  PCI_DVSEC_HEADER1_VID(x)	((x) & 0xffff)
-#define  PCI_DVSEC_HEADER1_REV(x)	(((x) >> 16) & 0xf)
-#define  PCI_DVSEC_HEADER1_LEN(x)	(((x) >> 20) & 0xfff)
 #define PCI_DVSEC_HEADER2		0x8 /* Designated Vendor-Specific Header2 */
-#define  PCI_DVSEC_HEADER2_ID(x)		((x) & 0xffff)
 
 /* Data Link Feature */
 #define PCI_DLF_CAP		0x04	/* Capabilities Register */
diff --git a/original/uapi/linux/pcitest.h b/original/uapi/linux/pcitest.h
index f9c1af8..c3ab4c8 100644
--- a/original/uapi/linux/pcitest.h
+++ b/original/uapi/linux/pcitest.h
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
+/**
  * pcitest.h - PCI test uapi defines
  *
  * Copyright (C) 2017 Texas Instruments
diff --git a/original/uapi/linux/perf_event.h b/original/uapi/linux/perf_event.h
index 82858b6..ad15e40 100644
--- a/original/uapi/linux/perf_event.h
+++ b/original/uapi/linux/perf_event.h
@@ -38,21 +38,6 @@
 };
 
 /*
- * attr.config layout for type PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE
- * PERF_TYPE_HARDWARE:			0xEEEEEEEE000000AA
- *					AA: hardware event ID
- *					EEEEEEEE: PMU type ID
- * PERF_TYPE_HW_CACHE:			0xEEEEEEEE00DDCCBB
- *					BB: hardware cache ID
- *					CC: hardware cache op ID
- *					DD: hardware cache op result ID
- *					EEEEEEEE: PMU type ID
- * If the PMU type ID is 0, the PERF_TYPE_RAW will be applied.
- */
-#define PERF_PMU_TYPE_SHIFT		32
-#define PERF_HW_EVENT_MASK		0xffffffff
-
-/*
  * Generalized performance event event_id types, used by the
  * attr.event_id parameter of the sys_perf_event_open()
  * syscall:
@@ -127,7 +112,6 @@
 	PERF_COUNT_SW_EMULATION_FAULTS		= 8,
 	PERF_COUNT_SW_DUMMY			= 9,
 	PERF_COUNT_SW_BPF_OUTPUT		= 10,
-	PERF_COUNT_SW_CGROUP_SWITCHES		= 11,
 
 	PERF_COUNT_SW_MAX,			/* non-ABI */
 };
@@ -327,7 +311,6 @@
 #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 */
-#define PERF_ATTR_SIZE_VER7	128	/* add: sig_data */
 
 /*
  * Hardware event_id to monitor via a performance monitoring event:
@@ -406,10 +389,7 @@
 				cgroup         :  1, /* include cgroup events */
 				text_poke      :  1, /* include text poke events */
 				build_id       :  1, /* use build id in mmap2 events */
-				inherit_thread :  1, /* children only inherit if cloned with CLONE_THREAD */
-				remove_on_exec :  1, /* event is removed from task on exec */
-				sigtrap        :  1, /* send synchronous SIGTRAP on event */
-				__reserved_1   : 26;
+				__reserved_1   : 29;
 
 	union {
 		__u32		wakeup_events;	  /* wakeup every n events */
@@ -461,14 +441,6 @@
 	__u16	__reserved_2;
 	__u32	aux_sample_size;
 	__u32	__reserved_3;
-
-	/*
-	 * User provided data if sigtrap=1, passed back to user via
-	 * siginfo_t::si_perf_data, e.g. to permit user to identify the event.
-	 * Note, siginfo_t::si_perf_data is long-sized, and sig_data will be
-	 * truncated accordingly on 32 bit architectures.
-	 */
-	__u64	sig_data;
 };
 
 /*
@@ -1143,21 +1115,6 @@
 	 */
 	PERF_RECORD_TEXT_POKE			= 20,
 
-	/*
-	 * Data written to the AUX area by hardware due to aux_output, may need
-	 * to be matched to the event by an architecture-specific hardware ID.
-	 * This records the hardware ID, but requires sample_id to provide the
-	 * event ID. e.g. Intel PT uses this record to disambiguate PEBS-via-PT
-	 * records from multiple events.
-	 *
-	 * struct {
-	 *	struct perf_event_header	header;
-	 *	u64				hw_id;
-	 *	struct sample_id		sample_id;
-	 * };
-	 */
-	PERF_RECORD_AUX_OUTPUT_HW_ID		= 21,
-
 	PERF_RECORD_MAX,			/* non-ABI */
 };
 
@@ -1199,15 +1156,10 @@
 /**
  * PERF_RECORD_AUX::flags bits
  */
-#define PERF_AUX_FLAG_TRUNCATED			0x01	/* record was truncated to fit */
-#define PERF_AUX_FLAG_OVERWRITE			0x02	/* snapshot from overwrite mode */
-#define PERF_AUX_FLAG_PARTIAL			0x04	/* record contains gaps */
-#define PERF_AUX_FLAG_COLLISION			0x08	/* sample collided with another */
-#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK	0xff00	/* PMU specific trace format type */
-
-/* CoreSight PMU AUX buffer formats */
-#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT	0x0000 /* Default for backward compatibility */
-#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW		0x0100 /* Raw format of the source */
+#define PERF_AUX_FLAG_TRUNCATED		0x01	/* record was truncated to fit */
+#define PERF_AUX_FLAG_OVERWRITE		0x02	/* snapshot from overwrite mode */
+#define PERF_AUX_FLAG_PARTIAL		0x04	/* record contains gaps */
+#define PERF_AUX_FLAG_COLLISION		0x08	/* sample collided with another */
 
 #define PERF_FLAG_FD_NO_GROUP		(1UL << 0)
 #define PERF_FLAG_FD_OUTPUT		(1UL << 1)
@@ -1227,16 +1179,14 @@
 			mem_remote:1,   /* remote */
 			mem_snoopx:2,	/* snoop mode, ext */
 			mem_blk:3,	/* access blocked */
-			mem_hops:3,	/* hop level */
-			mem_rsvd:18;
+			mem_rsvd:21;
 	};
 };
 #elif defined(__BIG_ENDIAN_BITFIELD)
 union perf_mem_data_src {
 	__u64 val;
 	struct {
-		__u64	mem_rsvd:18,
-			mem_hops:3,	/* hop level */
+		__u64	mem_rsvd:21,
 			mem_blk:3,	/* access blocked */
 			mem_snoopx:2,	/* snoop mode, ext */
 			mem_remote:1,   /* remote */
@@ -1260,13 +1210,7 @@
 #define PERF_MEM_OP_EXEC	0x10 /* code (execution) */
 #define PERF_MEM_OP_SHIFT	0
 
-/*
- * PERF_MEM_LVL_* namespace being depricated to some extent in the
- * favour of newer composite PERF_MEM_{LVLNUM_,REMOTE_,SNOOPX_} fields.
- * Supporting this namespace inorder to not break defined ABIs.
- *
- * memory hierarchy (memory level, hit or miss)
- */
+/* memory hierarchy (memory level, hit or miss) */
 #define PERF_MEM_LVL_NA		0x01  /* not available */
 #define PERF_MEM_LVL_HIT	0x02  /* hit level */
 #define PERF_MEM_LVL_MISS	0x04  /* miss level  */
@@ -1332,14 +1276,6 @@
 #define PERF_MEM_BLK_ADDR	0x04 /* address conflict */
 #define PERF_MEM_BLK_SHIFT	40
 
-/* hop level */
-#define PERF_MEM_HOPS_0		0x01 /* remote core, same node */
-#define PERF_MEM_HOPS_1		0x02 /* remote node, same socket */
-#define PERF_MEM_HOPS_2		0x03 /* remote socket, same board */
-#define PERF_MEM_HOPS_3		0x04 /* remote board */
-/* 5-7 available */
-#define PERF_MEM_HOPS_SHIFT	43
-
 #define PERF_MEM_S(a, s) \
 	(((__u64)PERF_MEM_##a##_##s) << PERF_MEM_##a##_SHIFT)
 
diff --git a/original/uapi/linux/pfkeyv2.h b/original/uapi/linux/pfkeyv2.h
index 8abae1f..d65b117 100644
--- a/original/uapi/linux/pfkeyv2.h
+++ b/original/uapi/linux/pfkeyv2.h
@@ -309,7 +309,6 @@
 #define SADB_X_AALG_SHA2_512HMAC	7
 #define SADB_X_AALG_RIPEMD160HMAC	8
 #define SADB_X_AALG_AES_XCBC_MAC	9
-#define SADB_X_AALG_SM3_256HMAC		10
 #define SADB_X_AALG_NULL		251	/* kame */
 #define SADB_AALG_MAX			251
 
@@ -330,7 +329,6 @@
 #define SADB_X_EALG_AES_GCM_ICV16	20
 #define SADB_X_EALG_CAMELLIACBC		22
 #define SADB_X_EALG_NULL_AES_GMAC	23
-#define SADB_X_EALG_SM4CBC		24
 #define SADB_EALG_MAX                   253 /* last EALG */
 /* private allocations should use 249-255 (RFC2407) */
 #define SADB_X_EALG_SERPENTCBC  252     /* draft-ietf-ipsec-ciph-aes-cbc-00 */
diff --git a/original/uapi/linux/pfrut.h b/original/uapi/linux/pfrut.h
deleted file mode 100644
index 42fa15f..0000000
--- a/original/uapi/linux/pfrut.h
+++ /dev/null
@@ -1,262 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/*
- * Platform Firmware Runtime Update header
- *
- * Copyright(c) 2021 Intel Corporation. All rights reserved.
- */
-#ifndef __PFRUT_H__
-#define __PFRUT_H__
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-#define PFRUT_IOCTL_MAGIC 0xEE
-
-/**
- * PFRU_IOC_SET_REV - _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int)
- *
- * Return:
- * * 0			- success
- * * -EFAULT		- fail to read the revision id
- * * -EINVAL		- user provides an invalid revision id
- *
- * Set the Revision ID for Platform Firmware Runtime Update.
- */
-#define PFRU_IOC_SET_REV _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int)
-
-/**
- * PFRU_IOC_STAGE - _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int)
- *
- * Return:
- * * 0			- success
- * * -EINVAL		- stage phase returns invalid result
- *
- * Stage a capsule image from communication buffer and perform authentication.
- */
-#define PFRU_IOC_STAGE _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int)
-
-/**
- * PFRU_IOC_ACTIVATE - _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int)
- *
- * Return:
- * * 0			- success
- * * -EINVAL		- activate phase returns invalid result
- *
- * Activate a previously staged capsule image.
- */
-#define PFRU_IOC_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int)
-
-/**
- * PFRU_IOC_STAGE_ACTIVATE - _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int)
- *
- * Return:
- * * 0			- success
- * * -EINVAL		- stage/activate phase returns invalid result.
- *
- * Perform both stage and activation action.
- */
-#define PFRU_IOC_STAGE_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int)
-
-/**
- * PFRU_IOC_QUERY_CAP - _IOR(PFRUT_IOCTL_MAGIC, 0x05,
- *			     struct pfru_update_cap_info)
- *
- * Return:
- * * 0			- success
- * * -EINVAL		- query phase returns invalid result
- * * -EFAULT		- the result fails to be copied to userspace
- *
- * Retrieve information on the Platform Firmware Runtime Update capability.
- * The information is a struct pfru_update_cap_info.
- */
-#define PFRU_IOC_QUERY_CAP _IOR(PFRUT_IOCTL_MAGIC, 0x05, struct pfru_update_cap_info)
-
-/**
- * struct pfru_payload_hdr - Capsule file payload header.
- *
- * @sig: Signature of this capsule file.
- * @hdr_version: Revision of this header structure.
- * @hdr_size: Size of this header, including the OemHeader bytes.
- * @hw_ver: The supported firmware version.
- * @rt_ver: Version of the code injection image.
- * @platform_id: A platform specific GUID to specify the platform what
- *               this capsule image support.
- */
-struct pfru_payload_hdr {
-	__u32 sig;
-	__u32 hdr_version;
-	__u32 hdr_size;
-	__u32 hw_ver;
-	__u32 rt_ver;
-	__u8 platform_id[16];
-};
-
-enum pfru_dsm_status {
-	DSM_SUCCEED = 0,
-	DSM_FUNC_NOT_SUPPORT = 1,
-	DSM_INVAL_INPUT = 2,
-	DSM_HARDWARE_ERR = 3,
-	DSM_RETRY_SUGGESTED = 4,
-	DSM_UNKNOWN = 5,
-	DSM_FUNC_SPEC_ERR = 6,
-};
-
-/**
- * struct pfru_update_cap_info - Runtime update capability information.
- *
- * @status: Indicator of whether this query succeed.
- * @update_cap: Bitmap to indicate whether the feature is supported.
- * @code_type: A buffer containing an image type GUID.
- * @fw_version: Platform firmware version.
- * @code_rt_version: Code injection runtime version for anti-rollback.
- * @drv_type: A buffer containing an image type GUID.
- * @drv_rt_version: The version of the driver update runtime code.
- * @drv_svn: The secure version number(SVN) of the driver update runtime code.
- * @platform_id: A buffer containing a platform ID GUID.
- * @oem_id: A buffer containing an OEM ID GUID.
- * @oem_info_len: Length of the buffer containing the vendor specific information.
- */
-struct pfru_update_cap_info {
-	__u32 status;
-	__u32 update_cap;
-
-	__u8 code_type[16];
-	__u32 fw_version;
-	__u32 code_rt_version;
-
-	__u8 drv_type[16];
-	__u32 drv_rt_version;
-	__u32 drv_svn;
-
-	__u8 platform_id[16];
-	__u8 oem_id[16];
-
-	__u32 oem_info_len;
-};
-
-/**
- * struct pfru_com_buf_info - Communication buffer information.
- *
- * @status: Indicator of whether this query succeed.
- * @ext_status: Implementation specific query result.
- * @addr_lo: Low 32bit physical address of the communication buffer to hold
- *           a runtime update package.
- * @addr_hi: High 32bit physical address of the communication buffer to hold
- *           a runtime update package.
- * @buf_size: Maximum size in bytes of the communication buffer.
- */
-struct pfru_com_buf_info {
-	__u32 status;
-	__u32 ext_status;
-	__u64 addr_lo;
-	__u64 addr_hi;
-	__u32 buf_size;
-};
-
-/**
- * struct pfru_updated_result - Platform firmware runtime update result information.
- * @status: Indicator of whether this update succeed.
- * @ext_status: Implementation specific update result.
- * @low_auth_time: Low 32bit value of image authentication time in nanosecond.
- * @high_auth_time: High 32bit value of image authentication time in nanosecond.
- * @low_exec_time: Low 32bit value of image execution time in nanosecond.
- * @high_exec_time: High 32bit value of image execution time in nanosecond.
- */
-struct pfru_updated_result {
-	__u32 status;
-	__u32 ext_status;
-	__u64 low_auth_time;
-	__u64 high_auth_time;
-	__u64 low_exec_time;
-	__u64 high_exec_time;
-};
-
-/**
- * struct pfrt_log_data_info - Log Data from telemetry service.
- * @status: Indicator of whether this update succeed.
- * @ext_status: Implementation specific update result.
- * @chunk1_addr_lo: Low 32bit physical address of the telemetry data chunk1
- *                  starting address.
- * @chunk1_addr_hi: High 32bit physical address of the telemetry data chunk1
- *                  starting address.
- * @chunk2_addr_lo: Low 32bit physical address of the telemetry data chunk2
- *                  starting address.
- * @chunk2_addr_hi: High 32bit physical address of the telemetry data chunk2
- *                  starting address.
- * @max_data_size: Maximum supported size of data of all data chunks combined.
- * @chunk1_size: Data size in bytes of the telemetry data chunk1 buffer.
- * @chunk2_size: Data size in bytes of the telemetry data chunk2 buffer.
- * @rollover_cnt: Number of times telemetry data buffer is overwritten
- *                since telemetry buffer reset.
- * @reset_cnt: Number of times telemetry services resets that results in
- *             rollover count and data chunk buffers are reset.
- */
-struct pfrt_log_data_info {
-	__u32 status;
-	__u32 ext_status;
-	__u64 chunk1_addr_lo;
-	__u64 chunk1_addr_hi;
-	__u64 chunk2_addr_lo;
-	__u64 chunk2_addr_hi;
-	__u32 max_data_size;
-	__u32 chunk1_size;
-	__u32 chunk2_size;
-	__u32 rollover_cnt;
-	__u32 reset_cnt;
-};
-
-/**
- * struct pfrt_log_info - Telemetry log information.
- * @log_level: The telemetry log level.
- * @log_type: The telemetry log type(history and execution).
- * @log_revid: The telemetry log revision id.
- */
-struct pfrt_log_info {
-	__u32 log_level;
-	__u32 log_type;
-	__u32 log_revid;
-};
-
-/**
- * PFRT_LOG_IOC_SET_INFO - _IOW(PFRUT_IOCTL_MAGIC, 0x06,
- *				struct pfrt_log_info)
- *
- * Return:
- * * 0			- success
- * * -EFAULT		- fail to get the setting parameter
- * * -EINVAL		- fail to set the log level
- *
- * Set the PFRT log level and log type. The input information is
- * a struct pfrt_log_info.
- */
-#define PFRT_LOG_IOC_SET_INFO _IOW(PFRUT_IOCTL_MAGIC, 0x06, struct pfrt_log_info)
-
-/**
- * PFRT_LOG_IOC_GET_INFO - _IOR(PFRUT_IOCTL_MAGIC, 0x07,
- *				struct pfrt_log_info)
- *
- * Return:
- * * 0			- success
- * * -EINVAL		- fail to get the log level
- * * -EFAULT		- fail to copy the result back to userspace
- *
- * Retrieve log level and log type of the telemetry. The information is
- * a struct pfrt_log_info.
- */
-#define PFRT_LOG_IOC_GET_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x07, struct pfrt_log_info)
-
-/**
- * PFRT_LOG_IOC_GET_DATA_INFO - _IOR(PFRUT_IOCTL_MAGIC, 0x08,
- *				     struct pfrt_log_data_info)
- *
- * Return:
- * * 0			- success
- * * -EINVAL		- fail to get the log buffer information
- * * -EFAULT		- fail to copy the log buffer information to userspace
- *
- * Retrieve data information about the telemetry. The information
- * is a struct pfrt_log_data_info.
- */
-#define PFRT_LOG_IOC_GET_DATA_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x08, struct pfrt_log_data_info)
-
-#endif /* __PFRUT_H__ */
diff --git a/original/uapi/linux/pkt_cls.h b/original/uapi/linux/pkt_cls.h
index ee38b35..7ea59cf 100644
--- a/original/uapi/linux/pkt_cls.h
+++ b/original/uapi/linux/pkt_cls.h
@@ -19,16 +19,12 @@
 	TCA_ACT_FLAGS,
 	TCA_ACT_HW_STATS,
 	TCA_ACT_USED_HW_STATS,
-	TCA_ACT_IN_HW_COUNT,
 	__TCA_ACT_MAX
 };
 
-/* See other TCA_ACT_FLAGS_ * flags in include/net/act_api.h. */
-#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0) /* Don't use percpu allocator for
-						* actions stats.
-						*/
-#define TCA_ACT_FLAGS_SKIP_HW	(1 << 1) /* don't offload action to HW */
-#define TCA_ACT_FLAGS_SKIP_SW	(1 << 2) /* don't use action in SW */
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1 /* Don't use percpu allocator for
+					 * actions stats.
+					 */
 
 /* tca HW stats type
  * When user does not pass the attribute, he does not care.
@@ -194,8 +190,6 @@
 	TCA_POLICE_PAD,
 	TCA_POLICE_RATE64,
 	TCA_POLICE_PEAKRATE64,
-	TCA_POLICE_PKTRATE64,
-	TCA_POLICE_PKTBURST64,
 	__TCA_POLICE_MAX
 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
 };
diff --git a/original/uapi/linux/pkt_sched.h b/original/uapi/linux/pkt_sched.h
index f292b46..79a699f 100644
--- a/original/uapi/linux/pkt_sched.h
+++ b/original/uapi/linux/pkt_sched.h
@@ -827,8 +827,6 @@
 
 /* FQ_CODEL */
 
-#define FQ_CODEL_QUANTUM_MAX (1 << 20)
-
 enum {
 	TCA_FQ_CODEL_UNSPEC,
 	TCA_FQ_CODEL_TARGET,
@@ -840,8 +838,6 @@
 	TCA_FQ_CODEL_CE_THRESHOLD,
 	TCA_FQ_CODEL_DROP_BATCH_SIZE,
 	TCA_FQ_CODEL_MEMORY_LIMIT,
-	TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
-	TCA_FQ_CODEL_CE_THRESHOLD_MASK,
 	__TCA_FQ_CODEL_MAX
 };
 
diff --git a/original/uapi/linux/prctl.h b/original/uapi/linux/prctl.h
index e998764..5d836c9 100644
--- a/original/uapi/linux/prctl.h
+++ b/original/uapi/linux/prctl.h
@@ -213,7 +213,6 @@
 /* Speculation control variants */
 # define PR_SPEC_STORE_BYPASS		0
 # define PR_SPEC_INDIRECT_BRANCH	1
-# define PR_SPEC_L1D_FLUSH		2
 /* Return and control values for PR_SET/GET_SPECULATION_CTRL */
 # define PR_SPEC_NOT_AFFECTED		0
 # define PR_SPEC_PRCTL			(1UL << 0)
@@ -235,15 +234,14 @@
 #define PR_GET_TAGGED_ADDR_CTRL		56
 # define PR_TAGGED_ADDR_ENABLE		(1UL << 0)
 /* MTE tag check fault modes */
-# define PR_MTE_TCF_NONE		0UL
-# define PR_MTE_TCF_SYNC		(1UL << 1)
-# define PR_MTE_TCF_ASYNC		(1UL << 2)
-# define PR_MTE_TCF_MASK		(PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
+# define PR_MTE_TCF_SHIFT		1
+# define PR_MTE_TCF_NONE		(0UL << PR_MTE_TCF_SHIFT)
+# define PR_MTE_TCF_SYNC		(1UL << PR_MTE_TCF_SHIFT)
+# define PR_MTE_TCF_ASYNC		(2UL << PR_MTE_TCF_SHIFT)
+# define PR_MTE_TCF_MASK		(3UL << PR_MTE_TCF_SHIFT)
 /* MTE tag inclusion mask */
 # define PR_MTE_TAG_SHIFT		3
 # define PR_MTE_TAG_MASK		(0xffffUL << PR_MTE_TAG_SHIFT)
-/* Unused; kept only for source compatibility */
-# define PR_MTE_TCF_SHIFT		1
 
 /* Control reclaim behavior when allocating memory */
 #define PR_SET_IO_FLUSHER		57
@@ -257,21 +255,6 @@
 # define SYSCALL_DISPATCH_FILTER_ALLOW	0
 # define SYSCALL_DISPATCH_FILTER_BLOCK	1
 
-/* Set/get enabled arm64 pointer authentication keys */
-#define PR_PAC_SET_ENABLED_KEYS		60
-#define PR_PAC_GET_ENABLED_KEYS		61
-
-/* Request the scheduler to share a core */
-#define PR_SCHED_CORE			62
-# define PR_SCHED_CORE_GET		0
-# define PR_SCHED_CORE_CREATE		1 /* create unique core_sched cookie */
-# define PR_SCHED_CORE_SHARE_TO		2 /* push core_sched cookie to pid */
-# define PR_SCHED_CORE_SHARE_FROM	3 /* pull core_sched cookie to pid */
-# define PR_SCHED_CORE_MAX		4
-# define PR_SCHED_CORE_SCOPE_THREAD		0
-# define PR_SCHED_CORE_SCOPE_THREAD_GROUP	1
-# define PR_SCHED_CORE_SCOPE_PROCESS_GROUP	2
-
 #define PR_SET_VMA		0x53564d41
 # define PR_SET_VMA_ANON_NAME		0
 
diff --git a/original/uapi/linux/psample.h b/original/uapi/linux/psample.h
index e585db5..bff5032 100644
--- a/original/uapi/linux/psample.h
+++ b/original/uapi/linux/psample.h
@@ -13,13 +13,6 @@
 	PSAMPLE_ATTR_GROUP_REFCOUNT,
 	PSAMPLE_ATTR_TUNNEL,
 
-	PSAMPLE_ATTR_PAD,
-	PSAMPLE_ATTR_OUT_TC,		/* u16 */
-	PSAMPLE_ATTR_OUT_TC_OCC,	/* u64, bytes */
-	PSAMPLE_ATTR_LATENCY,		/* u64, nanoseconds */
-	PSAMPLE_ATTR_TIMESTAMP,		/* u64, nanoseconds */
-	PSAMPLE_ATTR_PROTO,		/* u16 */
-
 	__PSAMPLE_ATTR_MAX
 };
 
diff --git a/original/uapi/linux/ptrace.h b/original/uapi/linux/ptrace.h
index 3747bf8..83ee45f 100644
--- a/original/uapi/linux/ptrace.h
+++ b/original/uapi/linux/ptrace.h
@@ -102,16 +102,6 @@
 	};
 };
 
-#define PTRACE_GET_RSEQ_CONFIGURATION	0x420f
-
-struct ptrace_rseq_configuration {
-	__u64 rseq_abi_pointer;
-	__u32 rseq_abi_size;
-	__u32 signature;
-	__u32 flags;
-	__u32 pad;
-};
-
 /*
  * These values are stored in task->ptrace_message
  * by tracehook_report_syscall_* to describe the current syscall-stop.
diff --git a/original/uapi/linux/raw.h b/original/uapi/linux/raw.h
new file mode 100644
index 0000000..4787491
--- /dev/null
+++ b/original/uapi/linux/raw.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
+#ifndef __LINUX_RAW_H
+#define __LINUX_RAW_H
+
+#include <linux/types.h>
+
+#define RAW_SETBIND	_IO( 0xac, 0 )
+#define RAW_GETBIND	_IO( 0xac, 1 )
+
+struct raw_config_request 
+{
+	int	raw_minor;
+	__u64	block_major;
+	__u64	block_minor;
+};
+
+#endif /* __LINUX_RAW_H */
diff --git a/original/uapi/linux/resource.h b/original/uapi/linux/resource.h
index ac5d6a3..74ef57b 100644
--- a/original/uapi/linux/resource.h
+++ b/original/uapi/linux/resource.h
@@ -66,17 +66,10 @@
 #define _STK_LIM	(8*1024*1024)
 
 /*
- * Limit the amount of locked memory by some sane default:
- * root can always increase this limit if needed.
- *
- * The main use-cases are (1) preventing sensitive memory
- * from being swapped; (2) real-time operations; (3) via
- * IOURING_REGISTER_BUFFERS.
- *
- * The first two don't need much. The latter will take as
- * much as it can get. 8MB is a reasonably sane default.
+ * GPG2 wants 64kB of mlocked memory, to make sure pass phrases
+ * and other sensitive information are never written to disk.
  */
-#define MLOCK_LIMIT	(8*1024*1024)
+#define MLOCK_LIMIT	((PAGE_SIZE > 64*1024) ? PAGE_SIZE : 64*1024)
 
 /*
  * Due to binary compatibility, the actual resource numbers
diff --git a/original/uapi/linux/rkisp1-config.h b/original/uapi/linux/rkisp1-config.h
index 583ca0d..36e3efb 100644
--- a/original/uapi/linux/rkisp1-config.h
+++ b/original/uapi/linux/rkisp1-config.h
@@ -15,7 +15,7 @@
 #define RKISP1_CIF_ISP_MODULE_BLS		(1U << 1)
 /* Sensor De-gamma */
 #define RKISP1_CIF_ISP_MODULE_SDG		(1U << 2)
-/* Histogram statistics configuration */
+/* Histogram */
 #define RKISP1_CIF_ISP_MODULE_HST		(1U << 3)
 /* Lens Shade Control */
 #define RKISP1_CIF_ISP_MODULE_LSC		(1U << 4)
@@ -31,13 +31,13 @@
 #define RKISP1_CIF_ISP_MODULE_GOC		(1U << 9)
 /* Color Processing */
 #define RKISP1_CIF_ISP_MODULE_CPROC		(1U << 10)
-/* Auto Focus Control statistics configuration */
+/* Auto Focus Control */
 #define RKISP1_CIF_ISP_MODULE_AFC		(1U << 11)
-/* Auto White Balancing statistics configuration */
+/* Auto White Balancing */
 #define RKISP1_CIF_ISP_MODULE_AWB		(1U << 12)
 /* Image Effect */
 #define RKISP1_CIF_ISP_MODULE_IE		(1U << 13)
-/* Auto Exposure Control statistics configuration */
+/* Auto Exposure Control */
 #define RKISP1_CIF_ISP_MODULE_AEC		(1U << 14)
 /* Wide Dynamic Range */
 #define RKISP1_CIF_ISP_MODULE_WDR		(1U << 15)
@@ -411,7 +411,7 @@
 };
 
 /**
- * struct rkisp1_cif_isp_awb_meas_config - Configuration for the AWB statistics
+ * struct rkisp1_cif_isp_awb_meas_config - Configuration used by auto white balance
  *
  * @awb_mode: the awb meas mode. From enum rkisp1_cif_isp_awb_mode_type.
  * @awb_wnd: white balance measurement window (in pixels)
@@ -550,7 +550,7 @@
 };
 
 /**
- * struct rkisp1_cif_isp_hst_config - Configuration for Histogram statistics
+ * struct rkisp1_cif_isp_hst_config - Configuration used by Histogram
  *
  * @mode: histogram mode (from enum rkisp1_cif_isp_histogram_mode)
  * @histogram_predivider: process every stepsize pixel, all other pixels are
@@ -575,7 +575,7 @@
 };
 
 /**
- * struct rkisp1_cif_isp_aec_config - Configuration for Auto Exposure statistics
+ * struct rkisp1_cif_isp_aec_config - Configuration used by Auto Exposure Control
  *
  * @mode: Exposure measure mode (from enum rkisp1_cif_isp_exp_meas_mode)
  * @autostop: stop mode (from enum rkisp1_cif_isp_exp_ctrl_autostop)
@@ -588,7 +588,7 @@
 };
 
 /**
- * struct rkisp1_cif_isp_afc_config - Configuration for the Auto Focus statistics
+ * struct rkisp1_cif_isp_afc_config - Configuration used by Auto Focus Control
  *
  * @num_afm_win: max RKISP1_CIF_ISP_AFM_MAX_WINDOWS
  * @afm_win: coordinates of the meas window
diff --git a/original/uapi/linux/rpmsg.h b/original/uapi/linux/rpmsg.h
index f5ca874..e14c6da 100644
--- a/original/uapi/linux/rpmsg.h
+++ b/original/uapi/linux/rpmsg.h
@@ -9,13 +9,11 @@
 #include <linux/ioctl.h>
 #include <linux/types.h>
 
-#define RPMSG_ADDR_ANY		0xFFFFFFFF
-
 /**
  * struct rpmsg_endpoint_info - endpoint info representation
  * @name: name of service
- * @src: local address. To set to RPMSG_ADDR_ANY if not used.
- * @dst: destination address. To set to RPMSG_ADDR_ANY if not used.
+ * @src: local address
+ * @dst: destination address
  */
 struct rpmsg_endpoint_info {
 	char name[32];
@@ -23,14 +21,7 @@
 	__u32 dst;
 };
 
-/**
- * Instantiate a new rmpsg char device endpoint.
- */
 #define RPMSG_CREATE_EPT_IOCTL	_IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
-
-/**
- * Destroy a rpmsg char device endpoint created by the RPMSG_CREATE_EPT_IOCTL.
- */
 #define RPMSG_DESTROY_EPT_IOCTL	_IO(0xb5, 0x2)
 
 #endif
diff --git a/original/uapi/linux/rtc.h b/original/uapi/linux/rtc.h
index 03e5b77..f950bff 100644
--- a/original/uapi/linux/rtc.h
+++ b/original/uapi/linux/rtc.h
@@ -14,7 +14,6 @@
 
 #include <linux/const.h>
 #include <linux/ioctl.h>
-#include <linux/types.h>
 
 /*
  * The struct used to pass data via the following ioctl. Similar to the
@@ -67,17 +66,6 @@
 	long pll_clock;     /* base PLL frequency */
 };
 
-struct rtc_param {
-	__u64 param;
-	union {
-		__u64 uvalue;
-		__s64 svalue;
-		__u64 ptr;
-	};
-	__u32 index;
-	__u32 __pad;
-};
-
 /*
  * ioctl calls that are permitted to the /dev/rtc interface, if
  * any of the RTC drivers are enabled.
@@ -107,9 +95,6 @@
 #define RTC_PLL_GET	_IOR('p', 0x11, struct rtc_pll_info)  /* Get PLL correction */
 #define RTC_PLL_SET	_IOW('p', 0x12, struct rtc_pll_info)  /* Set PLL correction */
 
-#define RTC_PARAM_GET	_IOW('p', 0x13, struct rtc_param)  /* Get parameter */
-#define RTC_PARAM_SET	_IOW('p', 0x14, struct rtc_param)  /* Set parameter */
-
 #define RTC_VL_DATA_INVALID	_BITUL(0) /* Voltage too low, RTC data is invalid */
 #define RTC_VL_BACKUP_LOW	_BITUL(1) /* Backup voltage is low */
 #define RTC_VL_BACKUP_EMPTY	_BITUL(2) /* Backup empty or not present */
@@ -129,21 +114,7 @@
 #define RTC_FEATURE_ALARM		0
 #define RTC_FEATURE_ALARM_RES_MINUTE	1
 #define RTC_FEATURE_NEED_WEEK_DAY	2
-#define RTC_FEATURE_ALARM_RES_2S	3
-#define RTC_FEATURE_UPDATE_INTERRUPT	4
-#define RTC_FEATURE_CORRECTION		5
-#define RTC_FEATURE_BACKUP_SWITCH_MODE	6
-#define RTC_FEATURE_CNT			7
-
-/* parameter list */
-#define RTC_PARAM_FEATURES		0
-#define RTC_PARAM_CORRECTION		1
-#define RTC_PARAM_BACKUP_SWITCH_MODE	2
-
-#define RTC_BSM_DISABLED	0
-#define RTC_BSM_DIRECT		1
-#define RTC_BSM_LEVEL		2
-#define RTC_BSM_STANDBY		3
+#define RTC_FEATURE_CNT			3
 
 #define RTC_MAX_FREQ	8192
 
diff --git a/original/uapi/linux/rtnetlink.h b/original/uapi/linux/rtnetlink.h
index 93d934c..91e4ca0 100644
--- a/original/uapi/linux/rtnetlink.h
+++ b/original/uapi/linux/rtnetlink.h
@@ -178,13 +178,6 @@
 	RTM_GETVLAN,
 #define RTM_GETVLAN	RTM_GETVLAN
 
-	RTM_NEWNEXTHOPBUCKET = 116,
-#define RTM_NEWNEXTHOPBUCKET	RTM_NEWNEXTHOPBUCKET
-	RTM_DELNEXTHOPBUCKET,
-#define RTM_DELNEXTHOPBUCKET	RTM_DELNEXTHOPBUCKET
-	RTM_GETNEXTHOPBUCKET,
-#define RTM_GETNEXTHOPBUCKET	RTM_GETNEXTHOPBUCKET
-
 	__RTM_MAX,
 #define RTM_MAX		(((__RTM_MAX + 3) & ~3) - 1)
 };
@@ -290,7 +283,6 @@
 #define RTPROT_MROUTED		17	/* Multicast daemon */
 #define RTPROT_KEEPALIVED	18	/* Keepalived daemon */
 #define RTPROT_BABEL		42	/* Babel daemon */
-#define RTPROT_OPENR		99	/* Open Routing (Open/R) Routes */
 #define RTPROT_BGP		186	/* BGP Routes */
 #define RTPROT_ISIS		187	/* ISIS Routes */
 #define RTPROT_OSPF		188	/* OSPF Routes */
@@ -754,8 +746,6 @@
 #define RTNLGRP_NEXTHOP		RTNLGRP_NEXTHOP
 	RTNLGRP_BRVLAN,
 #define RTNLGRP_BRVLAN		RTNLGRP_BRVLAN
-	RTNLGRP_MCTP_IFADDR,
-#define RTNLGRP_MCTP_IFADDR	RTNLGRP_MCTP_IFADDR
 	__RTNLGRP_MAX
 };
 #define RTNLGRP_MAX	(__RTNLGRP_MAX - 1)
diff --git a/original/uapi/linux/sctp.h b/original/uapi/linux/sctp.h
index c4ff1eb..cb78e7a 100644
--- a/original/uapi/linux/sctp.h
+++ b/original/uapi/linux/sctp.h
@@ -141,7 +141,6 @@
 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE	131
 #define SCTP_EXPOSE_PF_STATE	SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
 #define SCTP_REMOTE_UDP_ENCAPS_PORT	132
-#define SCTP_PLPMTUD_PROBE_INTERVAL	133
 
 /* PR-SCTP policies */
 #define SCTP_PR_SCTP_NONE	0x0000
@@ -1214,11 +1213,4 @@
 	SCTP_SS_MAX = SCTP_SS_RR
 };
 
-/* Probe Interval socket option */
-struct sctp_probeinterval {
-	sctp_assoc_t spi_assoc_id;
-	struct sockaddr_storage spi_address;
-	__u32 spi_interval;
-};
-
 #endif /* _UAPI_SCTP_H */
diff --git a/original/uapi/linux/seccomp.h b/original/uapi/linux/seccomp.h
index 7807425..6ba18b8 100644
--- a/original/uapi/linux/seccomp.h
+++ b/original/uapi/linux/seccomp.h
@@ -115,7 +115,6 @@
 
 /* valid flags for seccomp_notif_addfd */
 #define SECCOMP_ADDFD_FLAG_SETFD	(1UL << 0) /* Specify remote fd */
-#define SECCOMP_ADDFD_FLAG_SEND		(1UL << 1) /* Addfd and return it, atomically */
 
 /**
  * struct seccomp_notif_addfd
diff --git a/original/uapi/linux/seg6_local.h b/original/uapi/linux/seg6_local.h
index 332b18f..3b39ef1 100644
--- a/original/uapi/linux/seg6_local.h
+++ b/original/uapi/linux/seg6_local.h
@@ -27,7 +27,6 @@
 	SEG6_LOCAL_OIF,
 	SEG6_LOCAL_BPF,
 	SEG6_LOCAL_VRFTABLE,
-	SEG6_LOCAL_COUNTERS,
 	__SEG6_LOCAL_MAX,
 };
 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -64,8 +63,6 @@
 	SEG6_LOCAL_ACTION_END_AM	= 14,
 	/* custom BPF action */
 	SEG6_LOCAL_ACTION_END_BPF	= 15,
-	/* decap and lookup of DA in v4 or v6 table */
-	SEG6_LOCAL_ACTION_END_DT46	= 16,
 
 	__SEG6_LOCAL_ACTION_MAX,
 };
@@ -81,33 +78,4 @@
 
 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1)
 
-/* SRv6 Behavior counters are encoded as netlink attributes guaranteeing the
- * correct alignment.
- * Each counter is identified by a different attribute type (i.e.
- * SEG6_LOCAL_CNT_PACKETS).
- *
- * - SEG6_LOCAL_CNT_PACKETS: identifies a counter that counts the number of
- *   packets that have been CORRECTLY processed by an SRv6 Behavior instance
- *   (i.e., packets that generate errors or are dropped are NOT counted).
- *
- * - SEG6_LOCAL_CNT_BYTES: identifies a counter that counts the total amount
- *   of traffic in bytes of all packets that have been CORRECTLY processed by
- *   an SRv6 Behavior instance (i.e., packets that generate errors or are
- *   dropped are NOT counted).
- *
- * - SEG6_LOCAL_CNT_ERRORS: identifies a counter that counts the number of
- *   packets that have NOT been properly processed by an SRv6 Behavior instance
- *   (i.e., packets that generate errors or are dropped).
- */
-enum {
-	SEG6_LOCAL_CNT_UNSPEC,
-	SEG6_LOCAL_CNT_PAD,		/* pad for 64 bits values */
-	SEG6_LOCAL_CNT_PACKETS,
-	SEG6_LOCAL_CNT_BYTES,
-	SEG6_LOCAL_CNT_ERRORS,
-	__SEG6_LOCAL_CNT_MAX,
-};
-
-#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
-
 #endif
diff --git a/original/uapi/linux/serial.h b/original/uapi/linux/serial.h
index fa6b16e..93eb3c4 100644
--- a/original/uapi/linux/serial.h
+++ b/original/uapi/linux/serial.h
@@ -52,11 +52,11 @@
 #define PORT_16450	2
 #define PORT_16550	3
 #define PORT_16550A	4
-#define PORT_CIRRUS     5
+#define PORT_CIRRUS     5	/* usurped by cyclades.c */
 #define PORT_16650	6
 #define PORT_16650V2	7
 #define PORT_16750	8
-#define PORT_STARTECH	9
+#define PORT_STARTECH	9	/* usurped by cyclades.c */
 #define PORT_16C950	10	/* Oxford Semiconductor */
 #define PORT_16654	11
 #define PORT_16850	12
diff --git a/original/uapi/linux/serial_reg.h b/original/uapi/linux/serial_reg.h
index f51bc8f..be07b54 100644
--- a/original/uapi/linux/serial_reg.h
+++ b/original/uapi/linux/serial_reg.h
@@ -62,7 +62,6 @@
  * ST16C654:	 8  16  56  60		 8  16  32  56	PORT_16654
  * TI16C750:	 1  16  32  56		xx  xx  xx  xx	PORT_16750
  * TI16C752:	 8  16  56  60		 8  16  32  56
- * OX16C950:	16  32 112 120		16  32  64 112	PORT_16C950
  * Tegra:	 1   4   8  14		16   8   4   1	PORT_TEGRA
  */
 #define UART_FCR_R_TRIG_00	0x00
diff --git a/original/uapi/linux/smc.h b/original/uapi/linux/smc.h
index 6c2874f..3e68da0 100644
--- a/original/uapi/linux/smc.h
+++ b/original/uapi/linux/smc.h
@@ -38,9 +38,6 @@
 #define SMC_GENL_FAMILY_VERSION		1
 
 #define SMC_PCI_ID_STR_LEN		16 /* Max length of pci id string */
-#define SMC_MAX_HOSTNAME_LEN		32 /* Max length of the hostname */
-#define SMC_MAX_UEID			4  /* Max number of user EIDs */
-#define SMC_MAX_EID_LEN			32 /* Max length of an EID */
 
 /* SMC_GENL_FAMILY commands */
 enum {
@@ -50,15 +47,6 @@
 	SMC_NETLINK_GET_LGR_SMCD,
 	SMC_NETLINK_GET_DEV_SMCD,
 	SMC_NETLINK_GET_DEV_SMCR,
-	SMC_NETLINK_GET_STATS,
-	SMC_NETLINK_GET_FBACK_STATS,
-	SMC_NETLINK_DUMP_UEID,
-	SMC_NETLINK_ADD_UEID,
-	SMC_NETLINK_REMOVE_UEID,
-	SMC_NETLINK_FLUSH_UEID,
-	SMC_NETLINK_DUMP_SEID,
-	SMC_NETLINK_ENABLE_SEID,
-	SMC_NETLINK_DISABLE_SEID,
 };
 
 /* SMC_GENL_FAMILY top level attributes */
@@ -70,8 +58,6 @@
 	SMC_GEN_LGR_SMCD,		/* nest */
 	SMC_GEN_DEV_SMCD,		/* nest */
 	SMC_GEN_DEV_SMCR,		/* nest */
-	SMC_GEN_STATS,			/* nest */
-	SMC_GEN_FBACK_STATS,		/* nest */
 	__SMC_GEN_MAX,
 	SMC_GEN_MAX = __SMC_GEN_MAX - 1
 };
@@ -84,28 +70,17 @@
 	SMC_NLA_SYS_IS_ISM_V2,		/* u8 */
 	SMC_NLA_SYS_LOCAL_HOST,		/* string */
 	SMC_NLA_SYS_SEID,		/* string */
-	SMC_NLA_SYS_IS_SMCR_V2,		/* u8 */
 	__SMC_NLA_SYS_MAX,
 	SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
 };
 
-/* SMC_NLA_LGR_D_V2_COMMON and SMC_NLA_LGR_R_V2_COMMON nested attributes */
+/* SMC_NLA_LGR_V2 nested attributes */
 enum {
 	SMC_NLA_LGR_V2_VER,		/* u8 */
 	SMC_NLA_LGR_V2_REL,		/* u8 */
 	SMC_NLA_LGR_V2_OS,		/* u8 */
 	SMC_NLA_LGR_V2_NEG_EID,		/* string */
 	SMC_NLA_LGR_V2_PEER_HOST,	/* string */
-	__SMC_NLA_LGR_V2_MAX,
-	SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1
-};
-
-/* SMC_NLA_LGR_R_V2 nested attributes */
-enum {
-	SMC_NLA_LGR_R_V2_UNSPEC,
-	SMC_NLA_LGR_R_V2_DIRECT,	/* u8 */
-	__SMC_NLA_LGR_R_V2_MAX,
-	SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
 };
 
 /* SMC_GEN_LGR_SMCR attributes */
@@ -117,10 +92,6 @@
 	SMC_NLA_LGR_R_PNETID,		/* string */
 	SMC_NLA_LGR_R_VLAN_ID,		/* u8 */
 	SMC_NLA_LGR_R_CONNS_NUM,	/* u32 */
-	SMC_NLA_LGR_R_V2_COMMON,	/* nest */
-	SMC_NLA_LGR_R_V2,		/* nest */
-	SMC_NLA_LGR_R_NET_COOKIE,	/* u64 */
-	SMC_NLA_LGR_R_PAD,		/* flag */
 	__SMC_NLA_LGR_R_MAX,
 	SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
 };
@@ -153,7 +124,7 @@
 	SMC_NLA_LGR_D_PNETID,		/* string */
 	SMC_NLA_LGR_D_CHID,		/* u16 */
 	SMC_NLA_LGR_D_PAD,		/* flag */
-	SMC_NLA_LGR_D_V2_COMMON,	/* nest */
+	SMC_NLA_LGR_V2,			/* nest */
 	__SMC_NLA_LGR_D_MAX,
 	SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
@@ -188,100 +159,4 @@
 	SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
 };
 
-/* SMC_NLA_STATS_T_TX(RX)_RMB_SIZE nested attributes */
-/* SMC_NLA_STATS_TX(RX)PLOAD_SIZE nested attributes */
-enum {
-	SMC_NLA_STATS_PLOAD_PAD,
-	SMC_NLA_STATS_PLOAD_8K,		/* u64 */
-	SMC_NLA_STATS_PLOAD_16K,	/* u64 */
-	SMC_NLA_STATS_PLOAD_32K,	/* u64 */
-	SMC_NLA_STATS_PLOAD_64K,	/* u64 */
-	SMC_NLA_STATS_PLOAD_128K,	/* u64 */
-	SMC_NLA_STATS_PLOAD_256K,	/* u64 */
-	SMC_NLA_STATS_PLOAD_512K,	/* u64 */
-	SMC_NLA_STATS_PLOAD_1024K,	/* u64 */
-	SMC_NLA_STATS_PLOAD_G_1024K,	/* u64 */
-	__SMC_NLA_STATS_PLOAD_MAX,
-	SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
-};
-
-/* SMC_NLA_STATS_T_TX(RX)_RMB_STATS nested attributes */
-enum {
-	SMC_NLA_STATS_RMB_PAD,
-	SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT,	/* u64 */
-	SMC_NLA_STATS_RMB_SIZE_SM_CNT,		/* u64 */
-	SMC_NLA_STATS_RMB_FULL_PEER_CNT,	/* u64 */
-	SMC_NLA_STATS_RMB_FULL_CNT,		/* u64 */
-	SMC_NLA_STATS_RMB_REUSE_CNT,		/* u64 */
-	SMC_NLA_STATS_RMB_ALLOC_CNT,		/* u64 */
-	SMC_NLA_STATS_RMB_DGRADE_CNT,		/* u64 */
-	__SMC_NLA_STATS_RMB_MAX,
-	SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
-};
-
-/* SMC_NLA_STATS_SMCD_TECH and _SMCR_TECH nested attributes */
-enum {
-	SMC_NLA_STATS_T_PAD,
-	SMC_NLA_STATS_T_TX_RMB_SIZE,	/* nest */
-	SMC_NLA_STATS_T_RX_RMB_SIZE,	/* nest */
-	SMC_NLA_STATS_T_TXPLOAD_SIZE,	/* nest */
-	SMC_NLA_STATS_T_RXPLOAD_SIZE,	/* nest */
-	SMC_NLA_STATS_T_TX_RMB_STATS,	/* nest */
-	SMC_NLA_STATS_T_RX_RMB_STATS,	/* nest */
-	SMC_NLA_STATS_T_CLNT_V1_SUCC,	/* u64 */
-	SMC_NLA_STATS_T_CLNT_V2_SUCC,	/* u64 */
-	SMC_NLA_STATS_T_SRV_V1_SUCC,	/* u64 */
-	SMC_NLA_STATS_T_SRV_V2_SUCC,	/* u64 */
-	SMC_NLA_STATS_T_SENDPAGE_CNT,	/* u64 */
-	SMC_NLA_STATS_T_SPLICE_CNT,	/* u64 */
-	SMC_NLA_STATS_T_CORK_CNT,	/* u64 */
-	SMC_NLA_STATS_T_NDLY_CNT,	/* u64 */
-	SMC_NLA_STATS_T_URG_DATA_CNT,	/* u64 */
-	SMC_NLA_STATS_T_RX_BYTES,	/* u64 */
-	SMC_NLA_STATS_T_TX_BYTES,	/* u64 */
-	SMC_NLA_STATS_T_RX_CNT,		/* u64 */
-	SMC_NLA_STATS_T_TX_CNT,		/* u64 */
-	__SMC_NLA_STATS_T_MAX,
-	SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
-};
-
-/* SMC_GEN_STATS attributes */
-enum {
-	SMC_NLA_STATS_PAD,
-	SMC_NLA_STATS_SMCD_TECH,	/* nest */
-	SMC_NLA_STATS_SMCR_TECH,	/* nest */
-	SMC_NLA_STATS_CLNT_HS_ERR_CNT,	/* u64 */
-	SMC_NLA_STATS_SRV_HS_ERR_CNT,	/* u64 */
-	__SMC_NLA_STATS_MAX,
-	SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
-};
-
-/* SMC_GEN_FBACK_STATS attributes */
-enum {
-	SMC_NLA_FBACK_STATS_PAD,
-	SMC_NLA_FBACK_STATS_TYPE,	/* u8 */
-	SMC_NLA_FBACK_STATS_SRV_CNT,	/* u64 */
-	SMC_NLA_FBACK_STATS_CLNT_CNT,	/* u64 */
-	SMC_NLA_FBACK_STATS_RSN_CODE,	/* u32 */
-	SMC_NLA_FBACK_STATS_RSN_CNT,	/* u16 */
-	__SMC_NLA_FBACK_STATS_MAX,
-	SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
-};
-
-/* SMC_NETLINK_UEID attributes */
-enum {
-	SMC_NLA_EID_TABLE_UNSPEC,
-	SMC_NLA_EID_TABLE_ENTRY,	/* string */
-	__SMC_NLA_EID_TABLE_MAX,
-	SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1
-};
-
-/* SMC_NETLINK_SEID attributes */
-enum {
-	SMC_NLA_SEID_UNSPEC,
-	SMC_NLA_SEID_ENTRY,	/* string */
-	SMC_NLA_SEID_ENABLED,	/* u8 */
-	__SMC_NLA_SEID_TABLE_MAX,
-	SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1
-};
 #endif /* _UAPI_LINUX_SMC_H */
diff --git a/original/uapi/linux/snmp.h b/original/uapi/linux/snmp.h
index 904909d..26fc60c 100644
--- a/original/uapi/linux/snmp.h
+++ b/original/uapi/linux/snmp.h
@@ -290,8 +290,6 @@
 	LINUX_MIB_TCPDUPLICATEDATAREHASH,	/* TCPDuplicateDataRehash */
 	LINUX_MIB_TCPDSACKRECVSEGS,		/* TCPDSACKRecvSegs */
 	LINUX_MIB_TCPDSACKIGNOREDDUBIOUS,	/* TCPDSACKIgnoredDubious */
-	LINUX_MIB_TCPMIGRATEREQSUCCESS,		/* TCPMigrateReqSuccess */
-	LINUX_MIB_TCPMIGRATEREQFAILURE,		/* TCPMigrateReqFailure */
 	__LINUX_MIB_MAX
 };
 
diff --git a/original/uapi/linux/socket.h b/original/uapi/linux/socket.h
index eb0a9a5..c3409c8 100644
--- a/original/uapi/linux/socket.h
+++ b/original/uapi/linux/socket.h
@@ -26,9 +26,4 @@
 	};
 };
 
-#define SOCK_SNDBUF_LOCK	1
-#define SOCK_RCVBUF_LOCK	2
-
-#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
-
 #endif /* _UAPI_LINUX_SOCKET_H */
diff --git a/original/uapi/linux/soundcard.h b/original/uapi/linux/soundcard.h
index ac13187..f3b21f9 100644
--- a/original/uapi/linux/soundcard.h
+++ b/original/uapi/linux/soundcard.h
@@ -1051,7 +1051,7 @@
  *	the GPL version of OSS-4.x and build against that version
  *	of the header.
  *
- *	We redefine the extern keyword so that usr/include/headers_check.pl
+ *	We redefine the extern keyword so that make headers_check
  *	does not complain about SEQ_USE_EXTBUF.
  */
 #define SEQ_DECLAREBUF()		SEQ_USE_EXTBUF()
diff --git a/original/uapi/linux/stddef.h b/original/uapi/linux/stddef.h
index 3021ea2..ee8220f 100644
--- a/original/uapi/linux/stddef.h
+++ b/original/uapi/linux/stddef.h
@@ -4,40 +4,3 @@
 #ifndef __always_inline
 #define __always_inline inline
 #endif
-
-/**
- * __struct_group() - Create a mirrored named and anonyomous struct
- *
- * @TAG: The tag name for the named sub-struct (usually empty)
- * @NAME: The identifier name of the mirrored sub-struct
- * @ATTRS: Any struct attributes (usually empty)
- * @MEMBERS: The member declarations for the mirrored structs
- *
- * Used to create an anonymous union of two structs with identical layout
- * and size: one anonymous and one named. The former's members can be used
- * normally without sub-struct naming, and the latter can be used to
- * reason about the start, end, and size of the group of struct members.
- * The named struct can also be explicitly tagged for layer reuse, as well
- * as both having struct attributes appended.
- */
-#define __struct_group(TAG, NAME, ATTRS, MEMBERS...) \
-	union { \
-		struct { MEMBERS } ATTRS; \
-		struct TAG { MEMBERS } ATTRS NAME; \
-	}
-
-/**
- * __DECLARE_FLEX_ARRAY() - Declare a flexible array usable in a union
- *
- * @TYPE: The type of each flexible array element
- * @NAME: The name of the flexible array member
- *
- * In order to have a flexible array member in a union or alone in a
- * struct, it needs to be wrapped in an anonymous struct with at least 1
- * named member, but that member can be empty.
- */
-#define __DECLARE_FLEX_ARRAY(TYPE, NAME)	\
-	struct { \
-		struct { } __empty_ ## NAME; \
-		TYPE NAME[]; \
-	}
diff --git a/original/uapi/linux/surface_aggregator/cdev.h b/original/uapi/linux/surface_aggregator/cdev.h
index 08f46b6..fbcce04 100644
--- a/original/uapi/linux/surface_aggregator/cdev.h
+++ b/original/uapi/linux/surface_aggregator/cdev.h
@@ -6,7 +6,7 @@
  * device. This device provides direct user-space access to the SSAM EC.
  * Intended for debugging and development.
  *
- * Copyright (C) 2020-2021 Maximilian Luz <luzmaximilian@gmail.com>
+ * Copyright (C) 2020 Maximilian Luz <luzmaximilian@gmail.com>
  */
 
 #ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H
@@ -73,75 +73,6 @@
 	} response;
 } __attribute__((__packed__));
 
-/**
- * struct ssam_cdev_notifier_desc - Notifier descriptor.
- * @priority:        Priority value determining the order in which notifier
- *                   callbacks will be called. A higher value means higher
- *                   priority, i.e. the associated callback will be executed
- *                   earlier than other (lower priority) callbacks.
- * @target_category: The event target category for which this notifier should
- *                   receive events.
- *
- * Specifies the notifier that should be registered or unregistered,
- * specifically with which priority and for which target category of events.
- */
-struct ssam_cdev_notifier_desc {
-	__s32 priority;
-	__u8 target_category;
-} __attribute__((__packed__));
-
-/**
- * struct ssam_cdev_event_desc - Event descriptor.
- * @reg:                 Registry via which the event will be enabled/disabled.
- * @reg.target_category: Target category for the event registry requests.
- * @reg.target_id:       Target ID for the event registry requests.
- * @reg.cid_enable:      Command ID for the event-enable request.
- * @reg.cid_disable:     Command ID for the event-disable request.
- * @id:                  ID specifying the event.
- * @id.target_category:  Target category of the event source.
- * @id.instance:         Instance ID of the event source.
- * @flags:               Flags used for enabling the event.
- *
- * Specifies which event should be enabled/disabled and how to do that.
- */
-struct ssam_cdev_event_desc {
-	struct {
-		__u8 target_category;
-		__u8 target_id;
-		__u8 cid_enable;
-		__u8 cid_disable;
-	} reg;
-
-	struct {
-		__u8 target_category;
-		__u8 instance;
-	} id;
-
-	__u8 flags;
-} __attribute__((__packed__));
-
-/**
- * struct ssam_cdev_event - SSAM event sent by the EC.
- * @target_category: Target category of the event source. See &enum ssam_ssh_tc.
- * @target_id:       Target ID of the event source.
- * @command_id:      Command ID of the event.
- * @instance_id:     Instance ID of the event source.
- * @length:          Length of the event payload in bytes.
- * @data:            Event payload data.
- */
-struct ssam_cdev_event {
-	__u8 target_category;
-	__u8 target_id;
-	__u8 command_id;
-	__u8 instance_id;
-	__u16 length;
-	__u8 data[];
-} __attribute__((__packed__));
-
-#define SSAM_CDEV_REQUEST		_IOWR(0xA5, 1, struct ssam_cdev_request)
-#define SSAM_CDEV_NOTIF_REGISTER	_IOW(0xA5, 2, struct ssam_cdev_notifier_desc)
-#define SSAM_CDEV_NOTIF_UNREGISTER	_IOW(0xA5, 3, struct ssam_cdev_notifier_desc)
-#define SSAM_CDEV_EVENT_ENABLE		_IOW(0xA5, 4, struct ssam_cdev_event_desc)
-#define SSAM_CDEV_EVENT_DISABLE		_IOW(0xA5, 5, struct ssam_cdev_event_desc)
+#define SSAM_CDEV_REQUEST	_IOWR(0xA5, 1, struct ssam_cdev_request)
 
 #endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_CDEV_H */
diff --git a/original/uapi/linux/surface_aggregator/dtx.h b/original/uapi/linux/surface_aggregator/dtx.h
deleted file mode 100644
index 0833aab..0000000
--- a/original/uapi/linux/surface_aggregator/dtx.h
+++ /dev/null
@@ -1,146 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
-/*
- * Surface DTX (clipboard detachment system driver) user-space interface.
- *
- * Definitions, structs, and IOCTLs for the /dev/surface/dtx misc device. This
- * device allows user-space to control the clipboard detachment process on
- * Surface Book series devices.
- *
- * Copyright (C) 2020-2021 Maximilian Luz <luzmaximilian@gmail.com>
- */
-
-#ifndef _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
-#define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
-
-#include <linux/ioctl.h>
-#include <linux/types.h>
-
-/* Status/error categories */
-#define SDTX_CATEGORY_STATUS		0x0000
-#define SDTX_CATEGORY_RUNTIME_ERROR	0x1000
-#define SDTX_CATEGORY_HARDWARE_ERROR	0x2000
-#define SDTX_CATEGORY_UNKNOWN		0xf000
-
-#define SDTX_CATEGORY_MASK		0xf000
-#define SDTX_CATEGORY(value)		((value) & SDTX_CATEGORY_MASK)
-
-#define SDTX_STATUS(code)		((code) | SDTX_CATEGORY_STATUS)
-#define SDTX_ERR_RT(code)		((code) | SDTX_CATEGORY_RUNTIME_ERROR)
-#define SDTX_ERR_HW(code)		((code) | SDTX_CATEGORY_HARDWARE_ERROR)
-#define SDTX_UNKNOWN(code)		((code) | SDTX_CATEGORY_UNKNOWN)
-
-#define SDTX_SUCCESS(value)		(SDTX_CATEGORY(value) == SDTX_CATEGORY_STATUS)
-
-/* Latch status values */
-#define SDTX_LATCH_CLOSED		SDTX_STATUS(0x00)
-#define SDTX_LATCH_OPENED		SDTX_STATUS(0x01)
-
-/* Base state values */
-#define SDTX_BASE_DETACHED		SDTX_STATUS(0x00)
-#define SDTX_BASE_ATTACHED		SDTX_STATUS(0x01)
-
-/* Runtime errors (non-critical) */
-#define SDTX_DETACH_NOT_FEASIBLE	SDTX_ERR_RT(0x01)
-#define SDTX_DETACH_TIMEDOUT		SDTX_ERR_RT(0x02)
-
-/* Hardware errors (critical) */
-#define SDTX_ERR_FAILED_TO_OPEN		SDTX_ERR_HW(0x01)
-#define SDTX_ERR_FAILED_TO_REMAIN_OPEN	SDTX_ERR_HW(0x02)
-#define SDTX_ERR_FAILED_TO_CLOSE	SDTX_ERR_HW(0x03)
-
-/* Base types */
-#define SDTX_DEVICE_TYPE_HID		0x0100
-#define SDTX_DEVICE_TYPE_SSH		0x0200
-
-#define SDTX_DEVICE_TYPE_MASK		0x0f00
-#define SDTX_DEVICE_TYPE(value)		((value) & SDTX_DEVICE_TYPE_MASK)
-
-#define SDTX_BASE_TYPE_HID(id)		((id) | SDTX_DEVICE_TYPE_HID)
-#define SDTX_BASE_TYPE_SSH(id)		((id) | SDTX_DEVICE_TYPE_SSH)
-
-/**
- * enum sdtx_device_mode - Mode describing how (and if) the clipboard is
- * attached to the base of the device.
- * @SDTX_DEVICE_MODE_TABLET: The clipboard is detached from the base and the
- *                           device operates as tablet.
- * @SDTX_DEVICE_MODE_LAPTOP: The clipboard is attached normally to the base
- *                           and the device operates as laptop.
- * @SDTX_DEVICE_MODE_STUDIO: The clipboard is attached to the base in reverse.
- *                           The device operates as tablet with keyboard and
- *                           touchpad deactivated, however, the base battery
- *                           and, if present in the specific device model, dGPU
- *                           are available to the system.
- */
-enum sdtx_device_mode {
-	SDTX_DEVICE_MODE_TABLET		= 0x00,
-	SDTX_DEVICE_MODE_LAPTOP		= 0x01,
-	SDTX_DEVICE_MODE_STUDIO		= 0x02,
-};
-
-/**
- * struct sdtx_event - Event provided by reading from the DTX device file.
- * @length: Length of the event payload, in bytes.
- * @code:   Event code, detailing what type of event this is.
- * @data:   Payload of the event, containing @length bytes.
- *
- * See &enum sdtx_event_code for currently valid event codes.
- */
-struct sdtx_event {
-	__u16 length;
-	__u16 code;
-	__u8 data[];
-} __attribute__((__packed__));
-
-/**
- * enum sdtx_event_code - Code describing the type of an event.
- * @SDTX_EVENT_REQUEST:         Detachment request event type.
- * @SDTX_EVENT_CANCEL:          Cancel detachment process event type.
- * @SDTX_EVENT_BASE_CONNECTION: Base/clipboard connection change event type.
- * @SDTX_EVENT_LATCH_STATUS:    Latch status change event type.
- * @SDTX_EVENT_DEVICE_MODE:     Device mode change event type.
- *
- * Used in &struct sdtx_event to describe the type of the event. Further event
- * codes are reserved for future use. Any event parser should be able to
- * gracefully handle unknown events, i.e. by simply skipping them.
- *
- * Consult the DTX user-space interface documentation for details regarding
- * the individual event types.
- */
-enum sdtx_event_code {
-	SDTX_EVENT_REQUEST		= 1,
-	SDTX_EVENT_CANCEL		= 2,
-	SDTX_EVENT_BASE_CONNECTION	= 3,
-	SDTX_EVENT_LATCH_STATUS		= 4,
-	SDTX_EVENT_DEVICE_MODE		= 5,
-};
-
-/**
- * struct sdtx_base_info - Describes if and what type of base is connected.
- * @state:   The state of the connection. Valid values are %SDTX_BASE_DETACHED,
- *           %SDTX_BASE_ATTACHED, and %SDTX_DETACH_NOT_FEASIBLE (in case a base
- *           is attached but low clipboard battery prevents detachment). Other
- *           values are currently reserved.
- * @base_id: The type of base connected. Zero if no base is connected.
- */
-struct sdtx_base_info {
-	__u16 state;
-	__u16 base_id;
-} __attribute__((__packed__));
-
-/* IOCTLs */
-#define SDTX_IOCTL_EVENTS_ENABLE	_IO(0xa5, 0x21)
-#define SDTX_IOCTL_EVENTS_DISABLE	_IO(0xa5, 0x22)
-
-#define SDTX_IOCTL_LATCH_LOCK		_IO(0xa5, 0x23)
-#define SDTX_IOCTL_LATCH_UNLOCK		_IO(0xa5, 0x24)
-
-#define SDTX_IOCTL_LATCH_REQUEST	_IO(0xa5, 0x25)
-#define SDTX_IOCTL_LATCH_CONFIRM	_IO(0xa5, 0x26)
-#define SDTX_IOCTL_LATCH_HEARTBEAT	_IO(0xa5, 0x27)
-#define SDTX_IOCTL_LATCH_CANCEL		_IO(0xa5, 0x28)
-
-#define SDTX_IOCTL_GET_BASE_INFO	_IOR(0xa5, 0x29, struct sdtx_base_info)
-#define SDTX_IOCTL_GET_DEVICE_MODE	_IOR(0xa5, 0x2a, __u16)
-#define SDTX_IOCTL_GET_LATCH_STATUS	_IOR(0xa5, 0x2b, __u16)
-
-#endif /* _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H */
diff --git a/original/uapi/linux/sysctl.h b/original/uapi/linux/sysctl.h
index 6a3b194..1e05d3c 100644
--- a/original/uapi/linux/sysctl.h
+++ b/original/uapi/linux/sysctl.h
@@ -482,7 +482,6 @@
 	NET_IPV4_CONF_PROMOTE_SECONDARIES=20,
 	NET_IPV4_CONF_ARP_ACCEPT=21,
 	NET_IPV4_CONF_ARP_NOTIFY=22,
-	NET_IPV4_CONF_ARP_EVICT_NOCARRIER=23,
 };
 
 /* /proc/sys/net/ipv4/netfilter */
diff --git a/original/uapi/linux/target_core_user.h b/original/uapi/linux/target_core_user.h
index 27ace51..95b1597 100644
--- a/original/uapi/linux/target_core_user.h
+++ b/original/uapi/linux/target_core_user.h
@@ -46,7 +46,6 @@
 #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0) /* Out-of-order completions */
 #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1) /* Read data length */
 #define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2) /* TMR notifications */
-#define TCMU_MAILBOX_FLAG_CAP_KEEP_BUF (1<<3) /* Keep buf after cmd completion */
 
 struct tcmu_mailbox {
 	__u16 version;
@@ -76,7 +75,6 @@
 	__u8 kflags;
 #define TCMU_UFLAG_UNKNOWN_OP 0x1
 #define TCMU_UFLAG_READ_LEN   0x2
-#define TCMU_UFLAG_KEEP_BUF   0x4
 	__u8 uflags;
 
 } __packed;
diff --git a/original/uapi/linux/taskstats.h b/original/uapi/linux/taskstats.h
index 12327d3..ccbd087 100644
--- a/original/uapi/linux/taskstats.h
+++ b/original/uapi/linux/taskstats.h
@@ -34,7 +34,7 @@
  */
 
 
-#define TASKSTATS_VERSION	11
+#define TASKSTATS_VERSION	10
 #define TS_COMM_LEN		32	/* should be >= TASK_COMM_LEN
 					 * in linux/sched.h */
 
@@ -172,10 +172,6 @@
 
 	/* v10: 64-bit btime to avoid overflow */
 	__u64	ac_btime64;		/* 64-bit begin time */
-
-	/* Delay waiting for memory compact */
-	__u64	compact_count;
-	__u64	compact_delay_total;
 };
 
 
diff --git a/original/uapi/linux/tc_act/tc_skbmod.h b/original/uapi/linux/tc_act/tc_skbmod.h
index af6ef2c..c525b35 100644
--- a/original/uapi/linux/tc_act/tc_skbmod.h
+++ b/original/uapi/linux/tc_act/tc_skbmod.h
@@ -17,7 +17,6 @@
 #define SKBMOD_F_SMAC	0x2
 #define SKBMOD_F_ETYPE	0x4
 #define SKBMOD_F_SWAPMAC 0x8
-#define SKBMOD_F_ECN	0x10
 
 struct tc_skbmod {
 	tc_gen;
diff --git a/original/uapi/linux/thermal.h b/original/uapi/linux/thermal.h
index 9aa2fed..c105054 100644
--- a/original/uapi/linux/thermal.h
+++ b/original/uapi/linux/thermal.h
@@ -60,7 +60,7 @@
 	THERMAL_GENL_EVENT_UNSPEC,
 	THERMAL_GENL_EVENT_TZ_CREATE,		/* Thermal zone creation */
 	THERMAL_GENL_EVENT_TZ_DELETE,		/* Thermal zone deletion */
-	THERMAL_GENL_EVENT_TZ_DISABLE,		/* Thermal zone disabled */
+	THERMAL_GENL_EVENT_TZ_DISABLE,		/* Thermal zone disabed */
 	THERMAL_GENL_EVENT_TZ_ENABLE,		/* Thermal zone enabled */
 	THERMAL_GENL_EVENT_TZ_TRIP_UP,		/* Trip point crossed the way up */
 	THERMAL_GENL_EVENT_TZ_TRIP_DOWN,	/* Trip point crossed the way down */
diff --git a/original/uapi/linux/tls.h b/original/uapi/linux/tls.h
index 5f38be0..0d54bae 100644
--- a/original/uapi/linux/tls.h
+++ b/original/uapi/linux/tls.h
@@ -84,20 +84,6 @@
 #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE	16
 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE	8
 
-#define TLS_CIPHER_SM4_GCM				55
-#define TLS_CIPHER_SM4_GCM_IV_SIZE			8
-#define TLS_CIPHER_SM4_GCM_KEY_SIZE		16
-#define TLS_CIPHER_SM4_GCM_SALT_SIZE		4
-#define TLS_CIPHER_SM4_GCM_TAG_SIZE		16
-#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE		8
-
-#define TLS_CIPHER_SM4_CCM				56
-#define TLS_CIPHER_SM4_CCM_IV_SIZE			8
-#define TLS_CIPHER_SM4_CCM_KEY_SIZE		16
-#define TLS_CIPHER_SM4_CCM_SALT_SIZE		4
-#define TLS_CIPHER_SM4_CCM_TAG_SIZE		16
-#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE		8
-
 #define TLS_SET_RECORD_TYPE	1
 #define TLS_GET_RECORD_TYPE	2
 
@@ -138,22 +124,6 @@
 	unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
 };
 
-struct tls12_crypto_info_sm4_gcm {
-	struct tls_crypto_info info;
-	unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
-	unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
-	unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
-	unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
-};
-
-struct tls12_crypto_info_sm4_ccm {
-	struct tls_crypto_info info;
-	unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
-	unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
-	unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
-	unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
-};
-
 enum {
 	TLS_INFO_UNSPEC,
 	TLS_INFO_VERSION,
diff --git a/original/uapi/linux/tty.h b/original/uapi/linux/tty.h
index a58deb3..376cccf 100644
--- a/original/uapi/linux/tty.h
+++ b/original/uapi/linux/tty.h
@@ -38,6 +38,5 @@
 #define N_NCI		25	/* NFC NCI UART */
 #define N_SPEAKUP	26	/* Speakup communication with synths */
 #define N_NULL		27	/* Null ldisc used for error handling */
-#define N_MCTP		28	/* MCTP-over-serial */
 
 #endif /* _UAPI_LINUX_TTY_H */
diff --git a/original/uapi/linux/tty_flags.h b/original/uapi/linux/tty_flags.h
index cf25056..900a32e 100644
--- a/original/uapi/linux/tty_flags.h
+++ b/original/uapi/linux/tty_flags.h
@@ -39,7 +39,7 @@
  * WARNING: These flags are no longer used and have been superceded by the
  *	    TTY_PORT_ flags in the iflags field (and not userspace-visible)
  */
-#ifndef __KERNEL__
+#ifndef _KERNEL_
 #define ASYNCB_INITIALIZED	31 /* Serial port was initialized */
 #define ASYNCB_SUSPENDED	30 /* Serial port is suspended */
 #define ASYNCB_NORMAL_ACTIVE	29 /* Normal device is active */
@@ -73,15 +73,15 @@
 #define ASYNC_MAGIC_MULTIPLIER	(1U << ASYNCB_MAGIC_MULTIPLIER)
 
 #define ASYNC_FLAGS		((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_DEPRECATED	(ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | \
-		ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
+#define ASYNC_DEPRECATED	(ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | \
+		ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
 #define ASYNC_USR_MASK		(ASYNC_SPD_MASK|ASYNC_CALLOUT_NOHUP| \
 		ASYNC_LOW_LATENCY)
 #define ASYNC_SPD_CUST		(ASYNC_SPD_HI|ASYNC_SPD_VHI)
 #define ASYNC_SPD_WARP		(ASYNC_SPD_HI|ASYNC_SPD_SHI)
 #define ASYNC_SPD_MASK		(ASYNC_SPD_HI|ASYNC_SPD_VHI|ASYNC_SPD_SHI)
 
-#ifndef __KERNEL__
+#ifndef _KERNEL_
 /* These flags are no longer used (and were always masked from userspace) */
 #define ASYNC_INITIALIZED	(1U << ASYNCB_INITIALIZED)
 #define ASYNC_NORMAL_ACTIVE	(1U << ASYNCB_NORMAL_ACTIVE)
diff --git a/original/uapi/linux/usb/video.h b/original/uapi/linux/usb/video.h
index bfdae12..d854cb1 100644
--- a/original/uapi/linux/usb/video.h
+++ b/original/uapi/linux/usb/video.h
@@ -302,10 +302,9 @@
 	__u8   bControlSize;
 	__u8   bmControls[2];
 	__u8   iProcessing;
-	__u8   bmVideoStandards;
 } __attribute__((__packed__));
 
-#define UVC_DT_PROCESSING_UNIT_SIZE(n)			(10+(n))
+#define UVC_DT_PROCESSING_UNIT_SIZE(n)			(9+(n))
 
 /* 3.7.2.6. Extension Unit Descriptor */
 struct uvc_extension_unit_descriptor {
diff --git a/original/uapi/linux/userfaultfd.h b/original/uapi/linux/userfaultfd.h
index 05b31d6..5f2d882 100644
--- a/original/uapi/linux/userfaultfd.h
+++ b/original/uapi/linux/userfaultfd.h
@@ -19,20 +19,15 @@
  * means the userland is reading).
  */
 #define UFFD_API ((__u64)0xAA)
-#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING |	\
-				 UFFDIO_REGISTER_MODE_WP |	\
-				 UFFDIO_REGISTER_MODE_MINOR)
 #define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP |	\
 			   UFFD_FEATURE_EVENT_FORK |		\
 			   UFFD_FEATURE_EVENT_REMAP |		\
-			   UFFD_FEATURE_EVENT_REMOVE |		\
+			   UFFD_FEATURE_EVENT_REMOVE |	\
 			   UFFD_FEATURE_EVENT_UNMAP |		\
 			   UFFD_FEATURE_MISSING_HUGETLBFS |	\
 			   UFFD_FEATURE_MISSING_SHMEM |		\
 			   UFFD_FEATURE_SIGBUS |		\
-			   UFFD_FEATURE_THREAD_ID |		\
-			   UFFD_FEATURE_MINOR_HUGETLBFS |	\
-			   UFFD_FEATURE_MINOR_SHMEM)
+			   UFFD_FEATURE_THREAD_ID)
 #define UFFD_API_IOCTLS				\
 	((__u64)1 << _UFFDIO_REGISTER |		\
 	 (__u64)1 << _UFFDIO_UNREGISTER |	\
@@ -41,12 +36,10 @@
 	((__u64)1 << _UFFDIO_WAKE |		\
 	 (__u64)1 << _UFFDIO_COPY |		\
 	 (__u64)1 << _UFFDIO_ZEROPAGE |		\
-	 (__u64)1 << _UFFDIO_WRITEPROTECT |	\
-	 (__u64)1 << _UFFDIO_CONTINUE)
+	 (__u64)1 << _UFFDIO_WRITEPROTECT)
 #define UFFD_API_RANGE_IOCTLS_BASIC		\
 	((__u64)1 << _UFFDIO_WAKE |		\
-	 (__u64)1 << _UFFDIO_COPY |		\
-	 (__u64)1 << _UFFDIO_CONTINUE)
+	 (__u64)1 << _UFFDIO_COPY)
 
 /*
  * Valid ioctl command number range with this API is from 0x00 to
@@ -62,7 +55,6 @@
 #define _UFFDIO_COPY			(0x03)
 #define _UFFDIO_ZEROPAGE		(0x04)
 #define _UFFDIO_WRITEPROTECT		(0x06)
-#define _UFFDIO_CONTINUE		(0x07)
 #define _UFFDIO_API			(0x3F)
 
 /* userfaultfd ioctl ids */
@@ -81,8 +73,6 @@
 				      struct uffdio_zeropage)
 #define UFFDIO_WRITEPROTECT	_IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, \
 				      struct uffdio_writeprotect)
-#define UFFDIO_CONTINUE		_IOWR(UFFDIO, _UFFDIO_CONTINUE,	\
-				      struct uffdio_continue)
 
 /* read() structure */
 struct uffd_msg {
@@ -137,7 +127,6 @@
 /* flags for UFFD_EVENT_PAGEFAULT */
 #define UFFD_PAGEFAULT_FLAG_WRITE	(1<<0)	/* If this was a write fault */
 #define UFFD_PAGEFAULT_FLAG_WP		(1<<1)	/* If reason is VM_UFFD_WP */
-#define UFFD_PAGEFAULT_FLAG_MINOR	(1<<2)	/* If reason is VM_UFFD_MINOR */
 
 struct uffdio_api {
 	/* userland asks for an API number and the features to enable */
@@ -182,13 +171,6 @@
 	 *
 	 * UFFD_FEATURE_THREAD_ID pid of the page faulted task_struct will
 	 * be returned, if feature is not requested 0 will be returned.
-	 *
-	 * UFFD_FEATURE_MINOR_HUGETLBFS indicates that minor faults
-	 * can be intercepted (via REGISTER_MODE_MINOR) for
-	 * hugetlbfs-backed pages.
-	 *
-	 * UFFD_FEATURE_MINOR_SHMEM indicates the same support as
-	 * UFFD_FEATURE_MINOR_HUGETLBFS, but for shmem-backed pages instead.
 	 */
 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP		(1<<0)
 #define UFFD_FEATURE_EVENT_FORK			(1<<1)
@@ -199,8 +181,6 @@
 #define UFFD_FEATURE_EVENT_UNMAP		(1<<6)
 #define UFFD_FEATURE_SIGBUS			(1<<7)
 #define UFFD_FEATURE_THREAD_ID			(1<<8)
-#define UFFD_FEATURE_MINOR_HUGETLBFS		(1<<9)
-#define UFFD_FEATURE_MINOR_SHMEM		(1<<10)
 	__u64 features;
 
 	__u64 ioctls;
@@ -215,7 +195,6 @@
 	struct uffdio_range range;
 #define UFFDIO_REGISTER_MODE_MISSING	((__u64)1<<0)
 #define UFFDIO_REGISTER_MODE_WP		((__u64)1<<1)
-#define UFFDIO_REGISTER_MODE_MINOR	((__u64)1<<2)
 	__u64 mode;
 
 	/*
@@ -278,18 +257,6 @@
 	__u64 mode;
 };
 
-struct uffdio_continue {
-	struct uffdio_range range;
-#define UFFDIO_CONTINUE_MODE_DONTWAKE		((__u64)1<<0)
-	__u64 mode;
-
-	/*
-	 * Fields below here are written by the ioctl and must be at the end:
-	 * the copy_from_user will not read past here.
-	 */
-	__s64 mapped;
-};
-
 /*
  * Flags for the userfaultfd(2) system call itself.
  */
diff --git a/original/uapi/linux/uuid.h b/original/uapi/linux/uuid.h
index c0f4bd9..e5a7eec 100644
--- a/original/uapi/linux/uuid.h
+++ b/original/uapi/linux/uuid.h
@@ -1,10 +1,18 @@
 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-/* DO NOT USE in new code! This is solely for MEI due to legacy reasons */
 /*
  * UUID/GUID definition
  *
  * Copyright (C) 2010, Intel Corp.
  *	Huang Ying <ying.huang@intel.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License version
+ * 2 as published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  */
 
 #ifndef _UAPI_LINUX_UUID_H_
diff --git a/original/uapi/linux/uvcvideo.h b/original/uapi/linux/uvcvideo.h
index 8288137..f80f05b 100644
--- a/original/uapi/linux/uvcvideo.h
+++ b/original/uapi/linux/uvcvideo.h
@@ -76,11 +76,11 @@
 
 /**
  * struct uvc_meta_buf - metadata buffer building block
- * @ns: system timestamp of the payload in nanoseconds
- * @sof: USB Frame Number
- * @length: length of the payload header
- * @flags: payload header flags
- * @buf: optional device-specific header data
+ * @ns		- system timestamp of the payload in nanoseconds
+ * @sof		- USB Frame Number
+ * @length	- length of the payload header
+ * @flags	- payload header flags
+ * @buf		- optional device-specific header data
  *
  * UVC metadata nodes fill buffers with possibly multiple instances of this
  * struct. The first two fields are added by the driver, they can be used for
diff --git a/original/uapi/linux/v4l2-controls.h b/original/uapi/linux/v4l2-controls.h
index c8e0f84..039c0d7 100644
--- a/original/uapi/linux/v4l2-controls.h
+++ b/original/uapi/linux/v4l2-controls.h
@@ -50,7 +50,6 @@
 #ifndef __LINUX_V4L2_CONTROLS_H
 #define __LINUX_V4L2_CONTROLS_H
 
-#include <linux/const.h>
 #include <linux/types.h>
 
 /* Control classes */
@@ -67,7 +66,6 @@
 #define V4L2_CTRL_CLASS_RF_TUNER	0x00a20000	/* RF tuner controls */
 #define V4L2_CTRL_CLASS_DETECT		0x00a30000	/* Detection controls */
 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000	/* Stateless codecs controls */
-#define V4L2_CTRL_CLASS_COLORIMETRY	0x00a50000	/* Colorimetry controls */
 
 /* User-class control IDs */
 
@@ -128,7 +126,6 @@
 	V4L2_COLORFX_SOLARIZATION		= 13,
 	V4L2_COLORFX_ANTIQUE			= 14,
 	V4L2_COLORFX_SET_CBCR			= 15,
-	V4L2_COLORFX_SET_RGB			= 16,
 };
 #define V4L2_CID_AUTOBRIGHTNESS			(V4L2_CID_BASE+32)
 #define V4L2_CID_BAND_STOP_FILTER		(V4L2_CID_BASE+33)
@@ -146,10 +143,9 @@
 
 #define V4L2_CID_ALPHA_COMPONENT		(V4L2_CID_BASE+41)
 #define V4L2_CID_COLORFX_CBCR			(V4L2_CID_BASE+42)
-#define V4L2_CID_COLORFX_RGB			(V4L2_CID_BASE+43)
 
 /* last CID + 1 */
-#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+44)
+#define V4L2_CID_LASTP1                         (V4L2_CID_BASE+43)
 
 /* USER-class private control IDs */
 
@@ -213,11 +209,6 @@
  * We reserve 128 controls for this driver.
  */
 #define V4L2_CID_USER_CCS_BASE			(V4L2_CID_USER_BASE + 0x10f0)
-/*
- * The base for Allegro driver controls.
- * We reserve 16 controls for this driver.
- */
-#define V4L2_CID_USER_ALLEGRO_BASE		(V4L2_CID_USER_BASE + 0x1170)
 
 /* MPEG-class control IDs */
 /* The MPEG controls are applicable to all codec controls
@@ -437,12 +428,6 @@
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE		(V4L2_CID_CODEC_BASE+228)
 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME		(V4L2_CID_CODEC_BASE+229)
 #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID	(V4L2_CID_CODEC_BASE+230)
-#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER		(V4L2_CID_CODEC_BASE+231)
-#define V4L2_CID_MPEG_VIDEO_LTR_COUNT			(V4L2_CID_CODEC_BASE+232)
-#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX		(V4L2_CID_CODEC_BASE+233)
-#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES		(V4L2_CID_CODEC_BASE+234)
-#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR		(V4L2_CID_CODEC_BASE+235)
-#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD	(V4L2_CID_CODEC_BASE+236)
 
 /* CIDs for the MPEG-2 Part 2 (H.262) codec */
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL			(V4L2_CID_CODEC_BASE+270)
@@ -812,9 +797,6 @@
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP        (V4L2_CID_CODEC_BASE + 651)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP        (V4L2_CID_CODEC_BASE + 652)
 
-#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY		(V4L2_CID_CODEC_BASE + 653)
-#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE	(V4L2_CID_CODEC_BASE + 654)
-
 /*  MPEG-class control IDs specific to the CX2341x driver as defined by V4L2 */
 #define V4L2_CID_CODEC_CX2341X_BASE				(V4L2_CTRL_CLASS_CODEC | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE		(V4L2_CID_CODEC_CX2341X_BASE+0)
@@ -1125,7 +1107,6 @@
 #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)
-#define V4L2_CID_NOTIFY_GAINS			(V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
 
 
 /* Image processing controls */
@@ -1348,7 +1329,7 @@
  * struct v4l2_ctrl_h264_pps - H264 picture parameter set
  *
  * Except where noted, all the members on this picture parameter set
- * structure match the picture parameter set syntax as specified
+ * structure match the sequence parameter set syntax as specified
  * by the H264 specification.
  *
  * In particular, V4L2_H264_PPS_FLAG_SCALING_MATRIX_PRESENT flag
@@ -1612,30 +1593,30 @@
 #define V4L2_FWHT_VERSION			3
 
 /* Set if this is an interlaced format */
-#define V4L2_FWHT_FL_IS_INTERLACED		_BITUL(0)
+#define V4L2_FWHT_FL_IS_INTERLACED		BIT(0)
 /* Set if this is a bottom-first (NTSC) interlaced format */
-#define V4L2_FWHT_FL_IS_BOTTOM_FIRST		_BITUL(1)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIRST		BIT(1)
 /* Set if each 'frame' contains just one field */
-#define V4L2_FWHT_FL_IS_ALTERNATE		_BITUL(2)
+#define V4L2_FWHT_FL_IS_ALTERNATE		BIT(2)
 /*
  * If V4L2_FWHT_FL_IS_ALTERNATE was set, then this is set if this
  * 'frame' is the bottom field, else it is the top field.
  */
-#define V4L2_FWHT_FL_IS_BOTTOM_FIELD		_BITUL(3)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIELD		BIT(3)
 /* Set if the Y' plane is uncompressed */
-#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED	_BITUL(4)
+#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED	BIT(4)
 /* Set if the Cb plane is uncompressed */
-#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED		_BITUL(5)
+#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED		BIT(5)
 /* Set if the Cr plane is uncompressed */
-#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED		_BITUL(6)
+#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED		BIT(6)
 /* Set if the chroma plane is full height, if cleared it is half height */
-#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT		_BITUL(7)
+#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT		BIT(7)
 /* Set if the chroma plane is full width, if cleared it is half width */
-#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH		_BITUL(8)
+#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH		BIT(8)
 /* Set if the alpha plane is uncompressed */
-#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED	_BITUL(9)
+#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED	BIT(9)
 /* Set if this is an I Frame */
-#define V4L2_FWHT_FL_I_FRAME			_BITUL(10)
+#define V4L2_FWHT_FL_I_FRAME			BIT(10)
 
 /* A 4-values flag - the number of components - 1 */
 #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK		GENMASK(18, 16)
@@ -1676,632 +1657,6 @@
 	__u32 quantization;
 };
 
-/* Stateless VP8 control */
-
-#define V4L2_VP8_SEGMENT_FLAG_ENABLED              0x01
-#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP           0x02
-#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA  0x04
-#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE     0x08
-
-/**
- * struct v4l2_vp8_segment - VP8 segment-based adjustments parameters
- *
- * @quant_update: update values for the segment quantizer.
- * @lf_update: update values for the loop filter level.
- * @segment_probs: branch probabilities of the segment_id decoding tree.
- * @padding: padding field. Should be zeroed by applications.
- * @flags: see V4L2_VP8_SEGMENT_FLAG_{}.
- *
- * This structure contains segment-based adjustments related parameters.
- * See the 'update_segmentation()' part of the frame header syntax,
- * and section '9.3. Segment-Based Adjustments' of the VP8 specification
- * for more details.
- */
-struct v4l2_vp8_segment {
-	__s8 quant_update[4];
-	__s8 lf_update[4];
-	__u8 segment_probs[3];
-	__u8 padding;
-	__u32 flags;
-};
-
-#define V4L2_VP8_LF_ADJ_ENABLE	0x01
-#define V4L2_VP8_LF_DELTA_UPDATE	0x02
-#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE	0x04
-
-/**
- * struct v4l2_vp8_loop_filter - VP8 loop filter parameters
- *
- * @ref_frm_delta: Reference frame signed delta values.
- * @mb_mode_delta: MB prediction mode signed delta values.
- * @sharpness_level: matches sharpness_level syntax element.
- * @level: matches loop_filter_level syntax element.
- * @padding: padding field. Should be zeroed by applications.
- * @flags: see V4L2_VP8_LF_FLAG_{}.
- *
- * This structure contains loop filter related parameters.
- * See the 'mb_lf_adjustments()' part of the frame header syntax,
- * and section '9.4. Loop Filter Type and Levels' of the VP8 specification
- * for more details.
- */
-struct v4l2_vp8_loop_filter {
-	__s8 ref_frm_delta[4];
-	__s8 mb_mode_delta[4];
-	__u8 sharpness_level;
-	__u8 level;
-	__u16 padding;
-	__u32 flags;
-};
-
-/**
- * struct v4l2_vp8_quantization - VP8 quantizattion indices
- *
- * @y_ac_qi: luma AC coefficient table index.
- * @y_dc_delta: luma DC delta vaue.
- * @y2_dc_delta: y2 block DC delta value.
- * @y2_ac_delta: y2 block AC delta value.
- * @uv_dc_delta: chroma DC delta value.
- * @uv_ac_delta: chroma AC delta value.
- * @padding: padding field. Should be zeroed by applications.
- *
- * This structure contains the quantization indices present
- * in 'quant_indices()' part of the frame header syntax.
- * See section '9.6. Dequantization Indices' of the VP8 specification
- * for more details.
- */
-struct v4l2_vp8_quantization {
-	__u8 y_ac_qi;
-	__s8 y_dc_delta;
-	__s8 y2_dc_delta;
-	__s8 y2_ac_delta;
-	__s8 uv_dc_delta;
-	__s8 uv_ac_delta;
-	__u16 padding;
-};
-
-#define V4L2_VP8_COEFF_PROB_CNT 11
-#define V4L2_VP8_MV_PROB_CNT 19
-
-/**
- * struct v4l2_vp8_entropy - VP8 update probabilities
- *
- * @coeff_probs: coefficient probability update values.
- * @y_mode_probs: luma intra-prediction probabilities.
- * @uv_mode_probs: chroma intra-prediction probabilities.
- * @mv_probs: mv decoding probability.
- * @padding: padding field. Should be zeroed by applications.
- *
- * This structure contains the update probabilities present in
- * 'token_prob_update()' and 'mv_prob_update()' part of the frame header.
- * See section '17.2. Probability Updates' of the VP8 specification
- * for more details.
- */
-struct v4l2_vp8_entropy {
-	__u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
-	__u8 y_mode_probs[4];
-	__u8 uv_mode_probs[3];
-	__u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
-	__u8 padding[3];
-};
-
-/**
- * struct v4l2_vp8_entropy_coder_state - VP8 boolean coder state
- *
- * @range: coder state value for "Range"
- * @value: coder state value for "Value"
- * @bit_count: number of bits left in range "Value".
- * @padding: padding field. Should be zeroed by applications.
- *
- * This structure contains the state for the boolean coder, as
- * explained in section '7. Boolean Entropy Decoder' of the VP8 specification.
- */
-struct v4l2_vp8_entropy_coder_state {
-	__u8 range;
-	__u8 value;
-	__u8 bit_count;
-	__u8 padding;
-};
-
-#define V4L2_VP8_FRAME_FLAG_KEY_FRAME		0x01
-#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL		0x02
-#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME		0x04
-#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF	0x08
-#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN	0x10
-#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT	0x20
-
-#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) \
-	(!!((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
-
-#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
-/**
- * struct v4l2_ctrl_vp8_frame - VP8 frame parameters
- *
- * @segment: segmentation parameters. See &v4l2_vp8_segment for more details
- * @lf: loop filter parameters. See &v4l2_vp8_loop_filter for more details
- * @quant: quantization parameters. See &v4l2_vp8_quantization for more details
- * @entropy: update probabilities. See &v4l2_vp8_entropy for more details
- * @coder_state: boolean coder state. See &v4l2_vp8_entropy_coder_state for more details
- * @width: frame width.
- * @height: frame height.
- * @horizontal_scale: horizontal scaling factor.
- * @vertical_scale: vertical scaling factor.
- * @version: bitstream version.
- * @prob_skip_false: frame header syntax element.
- * @prob_intra: frame header syntax element.
- * @prob_last: frame header syntax element.
- * @prob_gf: frame header syntax element.
- * @num_dct_parts: number of DCT coefficients partitions.
- * @first_part_size: size of the first partition, i.e. the control partition.
- * @first_part_header_bits: size in bits of the first partition header portion.
- * @dct_part_sizes: DCT coefficients sizes.
- * @last_frame_ts: "last" reference buffer timestamp.
- * The timestamp refers to the timestamp field in struct v4l2_buffer.
- * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
- * @golden_frame_ts: "golden" reference buffer timestamp.
- * @alt_frame_ts: "alt" reference buffer timestamp.
- * @flags: see V4L2_VP8_FRAME_FLAG_{}.
- */
-struct v4l2_ctrl_vp8_frame {
-	struct v4l2_vp8_segment segment;
-	struct v4l2_vp8_loop_filter lf;
-	struct v4l2_vp8_quantization quant;
-	struct v4l2_vp8_entropy entropy;
-	struct v4l2_vp8_entropy_coder_state coder_state;
-
-	__u16 width;
-	__u16 height;
-
-	__u8 horizontal_scale;
-	__u8 vertical_scale;
-
-	__u8 version;
-	__u8 prob_skip_false;
-	__u8 prob_intra;
-	__u8 prob_last;
-	__u8 prob_gf;
-	__u8 num_dct_parts;
-
-	__u32 first_part_size;
-	__u32 first_part_header_bits;
-	__u32 dct_part_sizes[8];
-
-	__u64 last_frame_ts;
-	__u64 golden_frame_ts;
-	__u64 alt_frame_ts;
-
-	__u64 flags;
-};
-
-/* Stateless MPEG-2 controls */
-
-#define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE	0x01
-
-#define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE+220)
-/**
- * struct v4l2_ctrl_mpeg2_sequence - MPEG-2 sequence header
- *
- * All the members on this structure match the sequence header and sequence
- * extension syntaxes as specified by the MPEG-2 specification.
- *
- * Fields horizontal_size, vertical_size and vbv_buffer_size are a
- * combination of respective _value and extension syntax elements,
- * as described in section 6.3.3 "Sequence header".
- *
- * @horizontal_size: combination of elements horizontal_size_value and
- * horizontal_size_extension.
- * @vertical_size: combination of elements vertical_size_value and
- * vertical_size_extension.
- * @vbv_buffer_size: combination of elements vbv_buffer_size_value and
- * vbv_buffer_size_extension.
- * @profile_and_level_indication: see MPEG-2 specification.
- * @chroma_format: see MPEG-2 specification.
- * @flags: see V4L2_MPEG2_SEQ_FLAG_{}.
- */
-struct v4l2_ctrl_mpeg2_sequence {
-	__u16	horizontal_size;
-	__u16	vertical_size;
-	__u32	vbv_buffer_size;
-	__u16	profile_and_level_indication;
-	__u8	chroma_format;
-	__u8	flags;
-};
-
-#define V4L2_MPEG2_PIC_CODING_TYPE_I			1
-#define V4L2_MPEG2_PIC_CODING_TYPE_P			2
-#define V4L2_MPEG2_PIC_CODING_TYPE_B			3
-#define V4L2_MPEG2_PIC_CODING_TYPE_D			4
-
-#define V4L2_MPEG2_PIC_TOP_FIELD			0x1
-#define V4L2_MPEG2_PIC_BOTTOM_FIELD			0x2
-#define V4L2_MPEG2_PIC_FRAME				0x3
-
-#define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST		0x0001
-#define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT		0x0002
-#define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV		0x0004
-#define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE		0x0008
-#define V4L2_MPEG2_PIC_FLAG_INTRA_VLC			0x0010
-#define V4L2_MPEG2_PIC_FLAG_ALT_SCAN			0x0020
-#define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST		0x0040
-#define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE			0x0080
-
-#define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE+221)
-/**
- * struct v4l2_ctrl_mpeg2_picture - MPEG-2 picture header
- *
- * All the members on this structure match the picture header and picture
- * coding extension syntaxes as specified by the MPEG-2 specification.
- *
- * @backward_ref_ts: timestamp of the V4L2 capture buffer to use as
- * reference for backward prediction.
- * @forward_ref_ts: timestamp of the V4L2 capture buffer to use as
- * reference for forward prediction. These timestamp refers to the
- * timestamp field in struct v4l2_buffer. Use v4l2_timeval_to_ns()
- * to convert the struct timeval to a __u64.
- * @flags: see V4L2_MPEG2_PIC_FLAG_{}.
- * @f_code: see MPEG-2 specification.
- * @picture_coding_type: see MPEG-2 specification.
- * @picture_structure: see V4L2_MPEG2_PIC_{}_FIELD.
- * @intra_dc_precision: see MPEG-2 specification.
- * @reserved: padding field. Should be zeroed by applications.
- */
-struct v4l2_ctrl_mpeg2_picture {
-	__u64	backward_ref_ts;
-	__u64	forward_ref_ts;
-	__u32	flags;
-	__u8	f_code[2][2];
-	__u8	picture_coding_type;
-	__u8	picture_structure;
-	__u8	intra_dc_precision;
-	__u8	reserved[5];
-};
-
-#define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE+222)
-/**
- * struct v4l2_ctrl_mpeg2_quantisation - MPEG-2 quantisation
- *
- * Quantisation matrices as specified by section 6.3.7
- * "Quant matrix extension".
- *
- * @intra_quantiser_matrix: The quantisation matrix coefficients
- * for intra-coded frames, in zigzag scanning order. It is relevant
- * for both luma and chroma components, although it can be superseded
- * by the chroma-specific matrix for non-4:2:0 YUV formats.
- * @non_intra_quantiser_matrix: The quantisation matrix coefficients
- * for non-intra-coded frames, in zigzag scanning order. It is relevant
- * for both luma and chroma components, although it can be superseded
- * by the chroma-specific matrix for non-4:2:0 YUV formats.
- * @chroma_intra_quantiser_matrix: The quantisation matrix coefficients
- * for the chominance component of intra-coded frames, in zigzag scanning
- * order. Only relevant for 4:2:2 and 4:4:4 YUV formats.
- * @chroma_non_intra_quantiser_matrix: The quantisation matrix coefficients
- * for the chrominance component of non-intra-coded frames, in zigzag scanning
- * order. Only relevant for 4:2:2 and 4:4:4 YUV formats.
- */
-struct v4l2_ctrl_mpeg2_quantisation {
-	__u8	intra_quantiser_matrix[64];
-	__u8	non_intra_quantiser_matrix[64];
-	__u8	chroma_intra_quantiser_matrix[64];
-	__u8	chroma_non_intra_quantiser_matrix[64];
-};
-
-#define V4L2_CID_COLORIMETRY_CLASS_BASE	(V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
-#define V4L2_CID_COLORIMETRY_CLASS	(V4L2_CTRL_CLASS_COLORIMETRY | 1)
-
-#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO	(V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
-
-struct v4l2_ctrl_hdr10_cll_info {
-	__u16 max_content_light_level;
-	__u16 max_pic_average_light_level;
-};
-
-#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY	(V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
-
-#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW	5
-#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH	37000
-#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW	5
-#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH	42000
-#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW	5
-#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH	37000
-#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW	5
-#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH	42000
-#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW	50000
-#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH	100000000
-#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW	1
-#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH	50000
-
-struct v4l2_ctrl_hdr10_mastering_display {
-	__u16 display_primaries_x[3];
-	__u16 display_primaries_y[3];
-	__u16 white_point_x;
-	__u16 white_point_y;
-	__u32 max_display_mastering_luminance;
-	__u32 min_display_mastering_luminance;
-};
-
-/* Stateless VP9 controls */
-
-#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED	0x1
-#define	V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE	0x2
-
-/**
- * struct v4l2_vp9_loop_filter - VP9 loop filter parameters
- *
- * @ref_deltas: contains the adjustment needed for the filter level based on the
- * chosen reference frame. If this syntax element is not present in the bitstream,
- * users should pass its last value.
- * @mode_deltas: contains the adjustment needed for the filter level based on the
- * chosen mode.	If this syntax element is not present in the bitstream, users should
- * pass its last value.
- * @level: indicates the loop filter strength.
- * @sharpness: indicates the sharpness level.
- * @flags: combination of V4L2_VP9_LOOP_FILTER_FLAG_{} flags.
- * @reserved: padding field. Should be zeroed by applications.
- *
- * This structure contains all loop filter related parameters. See sections
- * '7.2.8 Loop filter semantics' of the VP9 specification for more details.
- */
-struct v4l2_vp9_loop_filter {
-	__s8 ref_deltas[4];
-	__s8 mode_deltas[2];
-	__u8 level;
-	__u8 sharpness;
-	__u8 flags;
-	__u8 reserved[7];
-};
-
-/**
- * struct v4l2_vp9_quantization - VP9 quantization parameters
- *
- * @base_q_idx: indicates the base frame qindex.
- * @delta_q_y_dc: indicates the Y DC quantizer relative to base_q_idx.
- * @delta_q_uv_dc: indicates the UV DC quantizer relative to base_q_idx.
- * @delta_q_uv_ac: indicates the UV AC quantizer relative to base_q_idx.
- * @reserved: padding field. Should be zeroed by applications.
- *
- * Encodes the quantization parameters. See section '7.2.9 Quantization params
- * syntax' of the VP9 specification for more details.
- */
-struct v4l2_vp9_quantization {
-	__u8 base_q_idx;
-	__s8 delta_q_y_dc;
-	__s8 delta_q_uv_dc;
-	__s8 delta_q_uv_ac;
-	__u8 reserved[4];
-};
-
-#define V4L2_VP9_SEGMENTATION_FLAG_ENABLED		0x01
-#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP		0x02
-#define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE	0x04
-#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA		0x08
-#define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE	0x10
-
-#define V4L2_VP9_SEG_LVL_ALT_Q				0
-#define V4L2_VP9_SEG_LVL_ALT_L				1
-#define V4L2_VP9_SEG_LVL_REF_FRAME			2
-#define V4L2_VP9_SEG_LVL_SKIP				3
-#define V4L2_VP9_SEG_LVL_MAX				4
-
-#define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id)	(1 << (id))
-#define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK	0xf
-
-/**
- * struct v4l2_vp9_segmentation - VP9 segmentation parameters
- *
- * @feature_data: data attached to each feature. Data entry is only valid if
- * the feature is enabled. The array shall be indexed with segment number as
- * the first dimension (0..7) and one of V4L2_VP9_SEG_{} as the second dimension.
- * @feature_enabled: bitmask defining which features are enabled in each segment.
- * The value for each segment is a combination of V4L2_VP9_SEGMENT_FEATURE_ENABLED(id)
- * values where id is one of V4L2_VP9_SEG_LVL_{}.
- * @tree_probs: specifies the probability values to be used when decoding a
- * Segment-ID. See '5.15. Segmentation map' section of the VP9 specification
- * for more details.
- * @pred_probs: specifies the probability values to be used when decoding a
- * Predicted-Segment-ID. See '6.4.14. Get segment id syntax' section of :ref:`vp9`
- * for more details.
- * @flags: combination of V4L2_VP9_SEGMENTATION_FLAG_{} flags.
- * @reserved: padding field. Should be zeroed by applications.
- *
- * Encodes the quantization parameters. See section '7.2.10 Segmentation params syntax' of
- * the VP9 specification for more details.
- */
-struct v4l2_vp9_segmentation {
-	__s16 feature_data[8][4];
-	__u8 feature_enabled[8];
-	__u8 tree_probs[7];
-	__u8 pred_probs[3];
-	__u8 flags;
-	__u8 reserved[5];
-};
-
-#define V4L2_VP9_FRAME_FLAG_KEY_FRAME			0x001
-#define V4L2_VP9_FRAME_FLAG_SHOW_FRAME			0x002
-#define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT		0x004
-#define V4L2_VP9_FRAME_FLAG_INTRA_ONLY			0x008
-#define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV		0x010
-#define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX		0x020
-#define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE		0x040
-#define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING		0x080
-#define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING		0x100
-#define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING	0x200
-
-#define V4L2_VP9_SIGN_BIAS_LAST				0x1
-#define V4L2_VP9_SIGN_BIAS_GOLDEN			0x2
-#define V4L2_VP9_SIGN_BIAS_ALT				0x4
-
-#define V4L2_VP9_RESET_FRAME_CTX_NONE			0
-#define V4L2_VP9_RESET_FRAME_CTX_SPEC			1
-#define V4L2_VP9_RESET_FRAME_CTX_ALL			2
-
-#define V4L2_VP9_INTERP_FILTER_EIGHTTAP			0
-#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH		1
-#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP		2
-#define V4L2_VP9_INTERP_FILTER_BILINEAR			3
-#define V4L2_VP9_INTERP_FILTER_SWITCHABLE		4
-
-#define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE	0
-#define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE	1
-#define V4L2_VP9_REFERENCE_MODE_SELECT			2
-
-#define V4L2_VP9_PROFILE_MAX				3
-
-#define V4L2_CID_STATELESS_VP9_FRAME	(V4L2_CID_CODEC_STATELESS_BASE + 300)
-/**
- * struct v4l2_ctrl_vp9_frame - VP9 frame decoding control
- *
- * @lf: loop filter parameters. See &v4l2_vp9_loop_filter for more details.
- * @quant: quantization parameters. See &v4l2_vp9_quantization for more details.
- * @seg: segmentation parameters. See &v4l2_vp9_segmentation for more details.
- * @flags: combination of V4L2_VP9_FRAME_FLAG_{} flags.
- * @compressed_header_size: compressed header size in bytes.
- * @uncompressed_header_size: uncompressed header size in bytes.
- * @frame_width_minus_1: add 1 to it and you'll get the frame width expressed in pixels.
- * @frame_height_minus_1: add 1 to it and you'll get the frame height expressed in pixels.
- * @render_width_minus_1: add 1 to it and you'll get the expected render width expressed in
- * pixels. This is not used during the decoding process but might be used by HW scalers
- * to prepare a frame that's ready for scanout.
- * @render_height_minus_1: add 1 to it and you'll get the expected render height expressed in
- * pixels. This is not used during the decoding process but might be used by HW scalers
- * to prepare a frame that's ready for scanout.
- * @last_frame_ts: "last" reference buffer timestamp.
- * The timestamp refers to the timestamp field in struct v4l2_buffer.
- * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
- * @golden_frame_ts: "golden" reference buffer timestamp.
- * The timestamp refers to the timestamp field in struct v4l2_buffer.
- * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
- * @alt_frame_ts: "alt" reference buffer timestamp.
- * The timestamp refers to the timestamp field in struct v4l2_buffer.
- * Use v4l2_timeval_to_ns() to convert the struct timeval to a __u64.
- * @ref_frame_sign_bias: a bitfield specifying whether the sign bias is set for a given
- * reference frame. Either of V4L2_VP9_SIGN_BIAS_{}.
- * @reset_frame_context: specifies whether the frame context should be reset to default values.
- * Either of V4L2_VP9_RESET_FRAME_CTX_{}.
- * @frame_context_idx: frame context that should be used/updated.
- * @profile: VP9 profile. Can be 0, 1, 2 or 3.
- * @bit_depth: bits per components. Can be 8, 10 or 12. Note that not all profiles support
- * 10 and/or 12 bits depths.
- * @interpolation_filter: specifies the filter selection used for performing inter prediction.
- * Set to one of V4L2_VP9_INTERP_FILTER_{}.
- * @tile_cols_log2: specifies the base 2 logarithm of the width of each tile (where the width
- * is measured in units of 8x8 blocks). Shall be less than or equal to 6.
- * @tile_rows_log2: specifies the base 2 logarithm of the height of each tile (where the height
- * is measured in units of 8x8 blocks).
- * @reference_mode: specifies the type of inter prediction to be used.
- * Set to one of V4L2_VP9_REFERENCE_MODE_{}.
- * @reserved: padding field. Should be zeroed by applications.
- */
-struct v4l2_ctrl_vp9_frame {
-	struct v4l2_vp9_loop_filter lf;
-	struct v4l2_vp9_quantization quant;
-	struct v4l2_vp9_segmentation seg;
-	__u32 flags;
-	__u16 compressed_header_size;
-	__u16 uncompressed_header_size;
-	__u16 frame_width_minus_1;
-	__u16 frame_height_minus_1;
-	__u16 render_width_minus_1;
-	__u16 render_height_minus_1;
-	__u64 last_frame_ts;
-	__u64 golden_frame_ts;
-	__u64 alt_frame_ts;
-	__u8 ref_frame_sign_bias;
-	__u8 reset_frame_context;
-	__u8 frame_context_idx;
-	__u8 profile;
-	__u8 bit_depth;
-	__u8 interpolation_filter;
-	__u8 tile_cols_log2;
-	__u8 tile_rows_log2;
-	__u8 reference_mode;
-	__u8 reserved[7];
-};
-
-#define V4L2_VP9_NUM_FRAME_CTX	4
-
-/**
- * struct v4l2_vp9_mv_probs - VP9 Motion vector probability updates
- * @joint: motion vector joint probability updates.
- * @sign: motion vector sign probability updates.
- * @classes: motion vector class probability updates.
- * @class0_bit: motion vector class0 bit probability updates.
- * @bits: motion vector bits probability updates.
- * @class0_fr: motion vector class0 fractional bit probability updates.
- * @fr: motion vector fractional bit probability updates.
- * @class0_hp: motion vector class0 high precision fractional bit probability updates.
- * @hp: motion vector high precision fractional bit probability updates.
- *
- * This structure contains new values of motion vector probabilities.
- * A value of zero in an array element means there is no update of the relevant probability.
- * See `struct v4l2_vp9_prob_updates` for details.
- */
-struct v4l2_vp9_mv_probs {
-	__u8 joint[3];
-	__u8 sign[2];
-	__u8 classes[2][10];
-	__u8 class0_bit[2];
-	__u8 bits[2][10];
-	__u8 class0_fr[2][2][3];
-	__u8 fr[2][3];
-	__u8 class0_hp[2];
-	__u8 hp[2];
-};
-
-#define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR	(V4L2_CID_CODEC_STATELESS_BASE + 301)
-
-#define V4L2_VP9_TX_MODE_ONLY_4X4			0
-#define V4L2_VP9_TX_MODE_ALLOW_8X8			1
-#define V4L2_VP9_TX_MODE_ALLOW_16X16			2
-#define V4L2_VP9_TX_MODE_ALLOW_32X32			3
-#define V4L2_VP9_TX_MODE_SELECT				4
-
-/**
- * struct v4l2_ctrl_vp9_compressed_hdr - VP9 probability updates control
- * @tx_mode: specifies the TX mode. Set to one of V4L2_VP9_TX_MODE_{}.
- * @tx8: TX 8x8 probability updates.
- * @tx16: TX 16x16 probability updates.
- * @tx32: TX 32x32 probability updates.
- * @coef: coefficient probability updates.
- * @skip: skip probability updates.
- * @inter_mode: inter mode probability updates.
- * @interp_filter: interpolation filter probability updates.
- * @is_inter: is inter-block probability updates.
- * @comp_mode: compound prediction mode probability updates.
- * @single_ref: single ref probability updates.
- * @comp_ref: compound ref probability updates.
- * @y_mode: Y prediction mode probability updates.
- * @uv_mode: UV prediction mode probability updates.
- * @partition: partition probability updates.
- * @mv: motion vector probability updates.
- *
- * This structure holds the probabilities update as parsed in the compressed
- * header (Spec 6.3). These values represent the value of probability update after
- * being translated with inv_map_table[] (see 6.3.5). A value of zero in an array element
- * means that there is no update of the relevant probability.
- *
- * This control is optional and needs to be used when dealing with the hardware which is
- * not capable of parsing the compressed header itself. Only drivers which need it will
- * implement it.
- */
-struct v4l2_ctrl_vp9_compressed_hdr {
-	__u8 tx_mode;
-	__u8 tx8[2][1];
-	__u8 tx16[2][2];
-	__u8 tx32[2][3];
-	__u8 coef[4][2][2][6][6][3];
-	__u8 skip[3];
-	__u8 inter_mode[7][3];
-	__u8 interp_filter[4][2];
-	__u8 is_inter[4];
-	__u8 comp_mode[5];
-	__u8 single_ref[5][2];
-	__u8 comp_ref[5];
-	__u8 y_mode[4][9];
-	__u8 uv_mode[10][9];
-	__u8 partition[16][3];
-
-	struct v4l2_vp9_mv_probs mv;
-};
-
 /* MPEG-compression definitions kept for backwards compatibility */
 #ifndef __KERNEL__
 #define V4L2_CTRL_CLASS_MPEG            V4L2_CTRL_CLASS_CODEC
diff --git a/original/uapi/linux/v4l2-subdev.h b/original/uapi/linux/v4l2-subdev.h
index 658106f..a38454d 100644
--- a/original/uapi/linux/v4l2-subdev.h
+++ b/original/uapi/linux/v4l2-subdev.h
@@ -44,7 +44,6 @@
  * @which: format type (from enum v4l2_subdev_format_whence)
  * @pad: pad number, as reported by the media API
  * @format: media bus format (format code and frame size)
- * @reserved: drivers and applications must zero this array
  */
 struct v4l2_subdev_format {
 	__u32 which;
@@ -58,7 +57,6 @@
  * @which: format type (from enum v4l2_subdev_format_whence)
  * @pad: pad number, as reported by the media API
  * @rect: pad crop rectangle boundaries
- * @reserved: drivers and applications must zero this array
  */
 struct v4l2_subdev_crop {
 	__u32 which;
@@ -80,7 +78,6 @@
  * @code: format code (MEDIA_BUS_FMT_ definitions)
  * @which: format type (from enum v4l2_subdev_format_whence)
  * @flags: flags set by the driver, (V4L2_SUBDEV_MBUS_CODE_*)
- * @reserved: drivers and applications must zero this array
  */
 struct v4l2_subdev_mbus_code_enum {
 	__u32 pad;
@@ -93,15 +90,10 @@
 
 /**
  * struct v4l2_subdev_frame_size_enum - Media bus format enumeration
- * @index: format index during enumeration
  * @pad: pad number, as reported by the media API
+ * @index: format index during enumeration
  * @code: format code (MEDIA_BUS_FMT_ definitions)
- * @min_width: minimum frame width, in pixels
- * @max_width: maximum frame width, in pixels
- * @min_height: minimum frame height, in pixels
- * @max_height: maximum frame height, in pixels
  * @which: format type (from enum v4l2_subdev_format_whence)
- * @reserved: drivers and applications must zero this array
  */
 struct v4l2_subdev_frame_size_enum {
 	__u32 index;
@@ -119,7 +111,6 @@
  * struct v4l2_subdev_frame_interval - Pad-level frame rate
  * @pad: pad number, as reported by the media API
  * @interval: frame interval in seconds
- * @reserved: drivers and applications must zero this array
  */
 struct v4l2_subdev_frame_interval {
 	__u32 pad;
@@ -136,7 +127,6 @@
  * @height: frame height in pixels
  * @interval: frame interval in seconds
  * @which: format type (from enum v4l2_subdev_format_whence)
- * @reserved: drivers and applications must zero this array
  */
 struct v4l2_subdev_frame_interval_enum {
 	__u32 index;
diff --git a/original/uapi/linux/vdpa.h b/original/uapi/linux/vdpa.h
index 1061d8d..66a41e4 100644
--- a/original/uapi/linux/vdpa.h
+++ b/original/uapi/linux/vdpa.h
@@ -17,15 +17,11 @@
 	VDPA_CMD_DEV_NEW,
 	VDPA_CMD_DEV_DEL,
 	VDPA_CMD_DEV_GET,		/* can dump */
-	VDPA_CMD_DEV_CONFIG_GET,	/* can dump */
 };
 
 enum vdpa_attr {
 	VDPA_ATTR_UNSPEC,
 
-	/* Pad attribute for 64b alignment */
-	VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
-
 	/* bus name (optional) + dev name together make the parent device handle */
 	VDPA_ATTR_MGMTDEV_BUS_NAME,		/* string */
 	VDPA_ATTR_MGMTDEV_DEV_NAME,		/* string */
@@ -36,16 +32,7 @@
 	VDPA_ATTR_DEV_VENDOR_ID,		/* u32 */
 	VDPA_ATTR_DEV_MAX_VQS,			/* u32 */
 	VDPA_ATTR_DEV_MAX_VQ_SIZE,		/* u16 */
-	VDPA_ATTR_DEV_MIN_VQ_SIZE,		/* u16 */
 
-	VDPA_ATTR_DEV_NET_CFG_MACADDR,		/* binary */
-	VDPA_ATTR_DEV_NET_STATUS,		/* u8 */
-	VDPA_ATTR_DEV_NET_CFG_MAX_VQP,		/* u16 */
-	VDPA_ATTR_DEV_NET_CFG_MTU,		/* u16 */
-
-	VDPA_ATTR_DEV_NEGOTIATED_FEATURES,	/* u64 */
-	VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,		/* u32 */
-	VDPA_ATTR_DEV_SUPPORTED_FEATURES,	/* u64 */
 	/* new attributes must be added above here */
 	VDPA_ATTR_MAX,
 };
diff --git a/original/uapi/linux/vduse.h b/original/uapi/linux/vduse.h
deleted file mode 100644
index 7cfe1c1..0000000
--- a/original/uapi/linux/vduse.h
+++ /dev/null
@@ -1,306 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-#ifndef _UAPI_VDUSE_H_
-#define _UAPI_VDUSE_H_
-
-#include <linux/types.h>
-
-#define VDUSE_BASE	0x81
-
-/* The ioctls for control device (/dev/vduse/control) */
-
-#define VDUSE_API_VERSION	0
-
-/*
- * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION).
- * This is used for future extension.
- */
-#define VDUSE_GET_API_VERSION	_IOR(VDUSE_BASE, 0x00, __u64)
-
-/* Set the version of VDUSE API that userspace supported. */
-#define VDUSE_SET_API_VERSION	_IOW(VDUSE_BASE, 0x01, __u64)
-
-/**
- * struct vduse_dev_config - basic configuration of a VDUSE device
- * @name: VDUSE device name, needs to be NUL terminated
- * @vendor_id: virtio vendor id
- * @device_id: virtio device id
- * @features: virtio features
- * @vq_num: the number of virtqueues
- * @vq_align: the allocation alignment of virtqueue's metadata
- * @reserved: for future use, needs to be initialized to zero
- * @config_size: the size of the configuration space
- * @config: the buffer of the configuration space
- *
- * Structure used by VDUSE_CREATE_DEV ioctl to create VDUSE device.
- */
-struct vduse_dev_config {
-#define VDUSE_NAME_MAX	256
-	char name[VDUSE_NAME_MAX];
-	__u32 vendor_id;
-	__u32 device_id;
-	__u64 features;
-	__u32 vq_num;
-	__u32 vq_align;
-	__u32 reserved[13];
-	__u32 config_size;
-	__u8 config[];
-};
-
-/* Create a VDUSE device which is represented by a char device (/dev/vduse/$NAME) */
-#define VDUSE_CREATE_DEV	_IOW(VDUSE_BASE, 0x02, struct vduse_dev_config)
-
-/*
- * Destroy a VDUSE device. Make sure there are no more references
- * to the char device (/dev/vduse/$NAME).
- */
-#define VDUSE_DESTROY_DEV	_IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
-
-/* The ioctls for VDUSE device (/dev/vduse/$NAME) */
-
-/**
- * struct vduse_iotlb_entry - entry of IOTLB to describe one IOVA region [start, last]
- * @offset: the mmap offset on returned file descriptor
- * @start: start of the IOVA region
- * @last: last of the IOVA region
- * @perm: access permission of the IOVA region
- *
- * Structure used by VDUSE_IOTLB_GET_FD ioctl to find an overlapped IOVA region.
- */
-struct vduse_iotlb_entry {
-	__u64 offset;
-	__u64 start;
-	__u64 last;
-#define VDUSE_ACCESS_RO 0x1
-#define VDUSE_ACCESS_WO 0x2
-#define VDUSE_ACCESS_RW 0x3
-	__u8 perm;
-};
-
-/*
- * Find the first IOVA region that overlaps with the range [start, last]
- * and return the corresponding file descriptor. Return -EINVAL means the
- * IOVA region doesn't exist. Caller should set start and last fields.
- */
-#define VDUSE_IOTLB_GET_FD	_IOWR(VDUSE_BASE, 0x10, struct vduse_iotlb_entry)
-
-/*
- * Get the negotiated virtio features. It's a subset of the features in
- * struct vduse_dev_config which can be accepted by virtio driver. It's
- * only valid after FEATURES_OK status bit is set.
- */
-#define VDUSE_DEV_GET_FEATURES	_IOR(VDUSE_BASE, 0x11, __u64)
-
-/**
- * struct vduse_config_data - data used to update configuration space
- * @offset: the offset from the beginning of configuration space
- * @length: the length to write to configuration space
- * @buffer: the buffer used to write from
- *
- * Structure used by VDUSE_DEV_SET_CONFIG ioctl to update device
- * configuration space.
- */
-struct vduse_config_data {
-	__u32 offset;
-	__u32 length;
-	__u8 buffer[];
-};
-
-/* Set device configuration space */
-#define VDUSE_DEV_SET_CONFIG	_IOW(VDUSE_BASE, 0x12, struct vduse_config_data)
-
-/*
- * Inject a config interrupt. It's usually used to notify virtio driver
- * that device configuration space has changed.
- */
-#define VDUSE_DEV_INJECT_CONFIG_IRQ	_IO(VDUSE_BASE, 0x13)
-
-/**
- * struct vduse_vq_config - basic configuration of a virtqueue
- * @index: virtqueue index
- * @max_size: the max size of virtqueue
- * @reserved: for future use, needs to be initialized to zero
- *
- * Structure used by VDUSE_VQ_SETUP ioctl to setup a virtqueue.
- */
-struct vduse_vq_config {
-	__u32 index;
-	__u16 max_size;
-	__u16 reserved[13];
-};
-
-/*
- * Setup the specified virtqueue. Make sure all virtqueues have been
- * configured before the device is attached to vDPA bus.
- */
-#define VDUSE_VQ_SETUP		_IOW(VDUSE_BASE, 0x14, struct vduse_vq_config)
-
-/**
- * struct vduse_vq_state_split - split virtqueue state
- * @avail_index: available index
- */
-struct vduse_vq_state_split {
-	__u16 avail_index;
-};
-
-/**
- * struct vduse_vq_state_packed - packed virtqueue state
- * @last_avail_counter: last driver ring wrap counter observed by device
- * @last_avail_idx: device available index
- * @last_used_counter: device ring wrap counter
- * @last_used_idx: used index
- */
-struct vduse_vq_state_packed {
-	__u16 last_avail_counter;
-	__u16 last_avail_idx;
-	__u16 last_used_counter;
-	__u16 last_used_idx;
-};
-
-/**
- * struct vduse_vq_info - information of a virtqueue
- * @index: virtqueue index
- * @num: the size of virtqueue
- * @desc_addr: address of desc area
- * @driver_addr: address of driver area
- * @device_addr: address of device area
- * @split: split virtqueue state
- * @packed: packed virtqueue state
- * @ready: ready status of virtqueue
- *
- * Structure used by VDUSE_VQ_GET_INFO ioctl to get virtqueue's information.
- */
-struct vduse_vq_info {
-	__u32 index;
-	__u32 num;
-	__u64 desc_addr;
-	__u64 driver_addr;
-	__u64 device_addr;
-	union {
-		struct vduse_vq_state_split split;
-		struct vduse_vq_state_packed packed;
-	};
-	__u8 ready;
-};
-
-/* Get the specified virtqueue's information. Caller should set index field. */
-#define VDUSE_VQ_GET_INFO	_IOWR(VDUSE_BASE, 0x15, struct vduse_vq_info)
-
-/**
- * struct vduse_vq_eventfd - eventfd configuration for a virtqueue
- * @index: virtqueue index
- * @fd: eventfd, -1 means de-assigning the eventfd
- *
- * Structure used by VDUSE_VQ_SETUP_KICKFD ioctl to setup kick eventfd.
- */
-struct vduse_vq_eventfd {
-	__u32 index;
-#define VDUSE_EVENTFD_DEASSIGN -1
-	int fd;
-};
-
-/*
- * Setup kick eventfd for specified virtqueue. The kick eventfd is used
- * by VDUSE kernel module to notify userspace to consume the avail vring.
- */
-#define VDUSE_VQ_SETUP_KICKFD	_IOW(VDUSE_BASE, 0x16, struct vduse_vq_eventfd)
-
-/*
- * Inject an interrupt for specific virtqueue. It's used to notify virtio driver
- * to consume the used vring.
- */
-#define VDUSE_VQ_INJECT_IRQ	_IOW(VDUSE_BASE, 0x17, __u32)
-
-/* The control messages definition for read(2)/write(2) on /dev/vduse/$NAME */
-
-/**
- * enum vduse_req_type - request type
- * @VDUSE_GET_VQ_STATE: get the state for specified virtqueue from userspace
- * @VDUSE_SET_STATUS: set the device status
- * @VDUSE_UPDATE_IOTLB: Notify userspace to update the memory mapping for
- *                      specified IOVA range via VDUSE_IOTLB_GET_FD ioctl
- */
-enum vduse_req_type {
-	VDUSE_GET_VQ_STATE,
-	VDUSE_SET_STATUS,
-	VDUSE_UPDATE_IOTLB,
-};
-
-/**
- * struct vduse_vq_state - virtqueue state
- * @index: virtqueue index
- * @split: split virtqueue state
- * @packed: packed virtqueue state
- */
-struct vduse_vq_state {
-	__u32 index;
-	union {
-		struct vduse_vq_state_split split;
-		struct vduse_vq_state_packed packed;
-	};
-};
-
-/**
- * struct vduse_dev_status - device status
- * @status: device status
- */
-struct vduse_dev_status {
-	__u8 status;
-};
-
-/**
- * struct vduse_iova_range - IOVA range [start, last]
- * @start: start of the IOVA range
- * @last: last of the IOVA range
- */
-struct vduse_iova_range {
-	__u64 start;
-	__u64 last;
-};
-
-/**
- * struct vduse_dev_request - control request
- * @type: request type
- * @request_id: request id
- * @reserved: for future use
- * @vq_state: virtqueue state, only index field is available
- * @s: device status
- * @iova: IOVA range for updating
- * @padding: padding
- *
- * Structure used by read(2) on /dev/vduse/$NAME.
- */
-struct vduse_dev_request {
-	__u32 type;
-	__u32 request_id;
-	__u32 reserved[4];
-	union {
-		struct vduse_vq_state vq_state;
-		struct vduse_dev_status s;
-		struct vduse_iova_range iova;
-		__u32 padding[32];
-	};
-};
-
-/**
- * struct vduse_dev_response - response to control request
- * @request_id: corresponding request id
- * @result: the result of request
- * @reserved: for future use, needs to be initialized to zero
- * @vq_state: virtqueue state
- * @padding: padding
- *
- * Structure used by write(2) on /dev/vduse/$NAME.
- */
-struct vduse_dev_response {
-	__u32 request_id;
-#define VDUSE_REQ_RESULT_OK	0x00
-#define VDUSE_REQ_RESULT_FAILED	0x01
-	__u32 result;
-	__u32 reserved[4];
-	union {
-		struct vduse_vq_state vq_state;
-		__u32 padding[32];
-	};
-};
-
-#endif /* _UAPI_VDUSE_H_ */
diff --git a/original/uapi/linux/version.h b/original/uapi/linux/version.h
index fb68148..535b224 100644
--- a/original/uapi/linux/version.h
+++ b/original/uapi/linux/version.h
@@ -1,5 +1,5 @@
-#define LINUX_VERSION_CODE 332032
+#define LINUX_VERSION_CODE 330752
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 5
-#define LINUX_VERSION_PATCHLEVEL 17
+#define LINUX_VERSION_PATCHLEVEL 12
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/original/uapi/linux/vfio.h b/original/uapi/linux/vfio.h
index ef33ea0..8ce36c1 100644
--- a/original/uapi/linux/vfio.h
+++ b/original/uapi/linux/vfio.h
@@ -335,8 +335,6 @@
 /* 10de vendor PCI sub-types */
 /*
  * NVIDIA GPU NVlink2 RAM is coherent RAM mapped onto the host address space.
- *
- * Deprecated, region no longer provided
  */
 #define VFIO_REGION_SUBTYPE_NVIDIA_NVLINK2_RAM	(1)
 
@@ -344,8 +342,6 @@
 /*
  * IBM NPU NVlink2 ATSD (Address Translation Shootdown) register of NPU
  * to do TLB invalidation on a GPU.
- *
- * Deprecated, region no longer provided
  */
 #define VFIO_REGION_SUBTYPE_IBM_NVLINK2_ATSD	(1)
 
@@ -645,8 +641,6 @@
  * Capability with compressed real address (aka SSA - small system address)
  * where GPU RAM is mapped on a system bus. Used by a GPU for DMA routing
  * and by the userspace to associate a NVLink bridge with a GPU.
- *
- * Deprecated, capability no longer provided
  */
 #define VFIO_REGION_INFO_CAP_NVLINK2_SSATGT	4
 
@@ -661,8 +655,6 @@
  * property in the device tree. The value is fixed in the hardware
  * and failing to provide the correct value results in the link
  * not working with no indication from the driver why.
- *
- * Deprecated, capability no longer provided
  */
 #define VFIO_REGION_INFO_CAP_NVLINK2_LNKSPD	5
 
diff --git a/original/uapi/linux/videodev2.h b/original/uapi/linux/videodev2.h
index df8b9c4..3e44b6c 100644
--- a/original/uapi/linux/videodev2.h
+++ b/original/uapi/linux/videodev2.h
@@ -70,7 +70,7 @@
  * Common stuff for both V4L1 and V4L2
  * Moved from videodev.h
  */
-#define VIDEO_MAX_FRAME               32
+#define VIDEO_MAX_FRAME               64
 #define VIDEO_MAX_PLANES               8
 
 /*
@@ -586,7 +586,6 @@
 #define V4L2_PIX_FMT_YUV444  v4l2_fourcc('Y', '4', '4', '4') /* 16  xxxxyyyy uuuuvvvv */
 #define V4L2_PIX_FMT_YUV555  v4l2_fourcc('Y', 'U', 'V', 'O') /* 16  YUV-5-5-5     */
 #define V4L2_PIX_FMT_YUV565  v4l2_fourcc('Y', 'U', 'V', 'P') /* 16  YUV-5-6-5     */
-#define V4L2_PIX_FMT_YUV24   v4l2_fourcc('Y', 'U', 'V', '3') /* 24  YUV-8-8-8     */
 #define V4L2_PIX_FMT_YUV32   v4l2_fourcc('Y', 'U', 'V', '4') /* 32  YUV-8-8-8-8   */
 #define V4L2_PIX_FMT_AYUV32  v4l2_fourcc('A', 'Y', 'U', 'V') /* 32  AYUV-8-8-8-8  */
 #define V4L2_PIX_FMT_XYUV32  v4l2_fourcc('X', 'Y', 'U', 'V') /* 32  XYUV-8-8-8-8  */
@@ -601,12 +600,15 @@
 #define V4L2_PIX_FMT_NV61    v4l2_fourcc('N', 'V', '6', '1') /* 16  Y/CrCb 4:2:2  */
 #define V4L2_PIX_FMT_NV24    v4l2_fourcc('N', 'V', '2', '4') /* 24  Y/CbCr 4:4:4  */
 #define V4L2_PIX_FMT_NV42    v4l2_fourcc('N', 'V', '4', '2') /* 24  Y/CrCb 4:4:4  */
+#define V4L2_PIX_FMT_HM12    v4l2_fourcc('H', 'M', '1', '2') /*  8  YUV 4:2:0 16x16 macroblocks */
 
 /* two non contiguous planes - one Y, one Cr + Cb interleaved  */
 #define V4L2_PIX_FMT_NV12M   v4l2_fourcc('N', 'M', '1', '2') /* 12  Y/CbCr 4:2:0  */
 #define V4L2_PIX_FMT_NV21M   v4l2_fourcc('N', 'M', '2', '1') /* 21  Y/CrCb 4:2:0  */
 #define V4L2_PIX_FMT_NV16M   v4l2_fourcc('N', 'M', '1', '6') /* 16  Y/CbCr 4:2:2  */
 #define V4L2_PIX_FMT_NV61M   v4l2_fourcc('N', 'M', '6', '1') /* 16  Y/CrCb 4:2:2  */
+#define V4L2_PIX_FMT_NV12MT  v4l2_fourcc('T', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 64x32 macroblocks */
+#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 macroblocks */
 
 /* three planes - Y Cb, Cr */
 #define V4L2_PIX_FMT_YUV410  v4l2_fourcc('Y', 'U', 'V', '9') /*  9  YUV 4:1:0     */
@@ -624,15 +626,6 @@
 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4') /* 24  YUV444 planar */
 #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2') /* 24  YVU444 planar */
 
-/* Tiled YUV formats */
-#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2')   /* 12  Y/CbCr 4:2:0  4x4 tiles */
-#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 tiles */
-#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2') /* 12  Y/CbCr 4:2:0 32x32 tiles */
-
-/* Tiled YUV formats, non contiguous planes */
-#define V4L2_PIX_FMT_NV12MT  v4l2_fourcc('T', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 64x32 tiles */
-#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2') /* 12  Y/CbCr 4:2:0 16x16 tiles */
-
 /* Bayer formats - see http://www.siliconimaging.com/RGB%20Bayer.htm */
 #define V4L2_PIX_FMT_SBGGR8  v4l2_fourcc('B', 'A', '8', '1') /*  8  BGBG.. GRGR.. */
 #define V4L2_PIX_FMT_SGBRG8  v4l2_fourcc('G', 'B', 'R', 'G') /*  8  GBGB.. RGRG.. */
@@ -701,9 +694,7 @@
 #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G') /* SMPTE 421M Annex G compliant stream */
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L') /* SMPTE 421M Annex L compliant stream */
 #define V4L2_PIX_FMT_VP8      v4l2_fourcc('V', 'P', '8', '0') /* VP8 */
-#define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F') /* VP8 parsed frame */
 #define V4L2_PIX_FMT_VP9      v4l2_fourcc('V', 'P', '9', '0') /* VP9 */
-#define V4L2_PIX_FMT_VP9_FRAME v4l2_fourcc('V', 'P', '9', 'F') /* VP9 parsed frame */
 #define V4L2_PIX_FMT_HEVC     v4l2_fourcc('H', 'E', 'V', 'C') /* HEVC aka H.265 */
 #define V4L2_PIX_FMT_FWHT     v4l2_fourcc('F', 'W', 'H', 'T') /* Fast Walsh Hadamard Transform (vicodec) */
 #define V4L2_PIX_FMT_FWHT_STATELESS     v4l2_fourcc('S', 'F', 'W', 'H') /* Stateless FWHT (vicodec) */
@@ -740,8 +731,8 @@
 #define V4L2_PIX_FMT_Y12I     v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */
 #define V4L2_PIX_FMT_Z16      v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */
 #define V4L2_PIX_FMT_MT21C    v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode  */
-#define V4L2_PIX_FMT_MM21     v4l2_fourcc('M', 'M', '2', '1') /* Mediatek 8-bit block mode, two non-contiguous planes */
 #define V4L2_PIX_FMT_INZI     v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Planar Greyscale 10-bit and Depth 16-bit */
+#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2') /* Sunxi Tiled NV12 Format */
 #define V4L2_PIX_FMT_CNF4     v4l2_fourcc('C', 'N', 'F', '4') /* Intel 4-bit packed depth confidence information */
 #define V4L2_PIX_FMT_HI240    v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */
 
@@ -960,12 +951,9 @@
 	__u32			type;		/* enum v4l2_buf_type */
 	__u32			memory;		/* enum v4l2_memory */
 	__u32			capabilities;
-	__u8			flags;
-	__u8			reserved[3];
+	__u32			reserved[1];
 };
 
-#define V4L2_MEMORY_FLAG_NON_COHERENT			(1 << 0)
-
 /* 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)
@@ -987,10 +975,8 @@
  *			pointing to this plane
  * @fd:			when memory is V4L2_MEMORY_DMABUF, a userspace file
  *			descriptor associated with this plane
- * @m:			union of @mem_offset, @userptr and @fd
  * @data_offset:	offset in the plane to the start of data; usually 0,
  *			unless there is a header in front of the data
- * @reserved:		drivers and applications must zero this array
  *
  * Multi-planar buffers consist of one or more planes, e.g. an YCbCr buffer
  * with two planes can have one plane for Y, and another for interleaved CbCr
@@ -1032,14 +1018,10 @@
  *		a userspace file descriptor associated with this buffer
  * @planes:	for multiplanar buffers; userspace pointer to the array of plane
  *		info structs for this buffer
- * @m:		union of @offset, @userptr, @planes and @fd
  * @length:	size in bytes of the buffer (NOT its payload) for single-plane
  *		buffers (when type != *_MPLANE); number of elements in the
  *		planes array for multi-plane buffers
- * @reserved2:	drivers and applications must zero this field
  * @request_fd: fd of the request that this buffer should use
- * @reserved:	for backwards compatibility with applications that do not know
- *		about @request_fd
  *
  * Contains data exchanged by application and driver using one of the Streaming
  * I/O methods.
@@ -1077,7 +1059,7 @@
 #ifndef __KERNEL__
 /**
  * v4l2_timeval_to_ns - Convert timeval to nanoseconds
- * @tv:		pointer to the timeval variable to be converted
+ * @ts:		pointer to the timeval variable to be converted
  *
  * Returns the scalar nanosecond representation of the timeval
  * parameter.
@@ -1138,7 +1120,6 @@
  * @flags:	flags for newly created file, currently only O_CLOEXEC is
  *		supported, refer to manual of open syscall for more details
  * @fd:		file descriptor associated with DMABUF (set by driver)
- * @reserved:	drivers and applications must zero this array
  *
  * Contains data used for exporting a video buffer as DMABUF file descriptor.
  * The buffer is identified by a 'cookie' returned by VIDIOC_QUERYBUF
@@ -1756,12 +1737,6 @@
 		struct v4l2_ctrl_h264_slice_params __user *p_h264_slice_params;
 		struct v4l2_ctrl_h264_decode_params __user *p_h264_decode_params;
 		struct v4l2_ctrl_fwht_params __user *p_fwht_params;
-		struct v4l2_ctrl_vp8_frame __user *p_vp8_frame;
-		struct v4l2_ctrl_mpeg2_sequence __user *p_mpeg2_sequence;
-		struct v4l2_ctrl_mpeg2_picture __user *p_mpeg2_picture;
-		struct v4l2_ctrl_mpeg2_quantisation __user *p_mpeg2_quantisation;
-		struct v4l2_ctrl_vp9_compressed_hdr __user *p_vp9_compressed_hdr_probs;
-		struct v4l2_ctrl_vp9_frame __user *p_vp9_frame;
 		void __user *ptr;
 	};
 } __attribute__ ((packed));
@@ -1809,9 +1784,6 @@
 	V4L2_CTRL_TYPE_U32	     = 0x0102,
 	V4L2_CTRL_TYPE_AREA          = 0x0106,
 
-	V4L2_CTRL_TYPE_HDR10_CLL_INFO		= 0x0110,
-	V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY	= 0x0111,
-
 	V4L2_CTRL_TYPE_H264_SPS             = 0x0200,
 	V4L2_CTRL_TYPE_H264_PPS		    = 0x0201,
 	V4L2_CTRL_TYPE_H264_SCALING_MATRIX  = 0x0202,
@@ -1820,15 +1792,6 @@
 	V4L2_CTRL_TYPE_H264_PRED_WEIGHTS    = 0x0205,
 
 	V4L2_CTRL_TYPE_FWHT_PARAMS	    = 0x0220,
-
-	V4L2_CTRL_TYPE_VP8_FRAME            = 0x0240,
-
-	V4L2_CTRL_TYPE_MPEG2_QUANTISATION   = 0x0250,
-	V4L2_CTRL_TYPE_MPEG2_SEQUENCE       = 0x0251,
-	V4L2_CTRL_TYPE_MPEG2_PICTURE        = 0x0252,
-
-	V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR	= 0x0260,
-	V4L2_CTRL_TYPE_VP9_FRAME		= 0x0261,
 };
 
 /*  Used in the VIDIOC_QUERYCTRL ioctl for querying controls */
@@ -2266,7 +2229,6 @@
  *			this plane will be used
  * @bytesperline:	distance in bytes between the leftmost pixels in two
  *			adjacent lines
- * @reserved:		drivers and applications must zero this array
  */
 struct v4l2_plane_pix_format {
 	__u32		sizeimage;
@@ -2285,10 +2247,8 @@
  * @num_planes:		number of planes for this format
  * @flags:		format flags (V4L2_PIX_FMT_FLAG_*)
  * @ycbcr_enc:		enum v4l2_ycbcr_encoding, Y'CbCr encoding
- * @hsv_enc:		enum v4l2_hsv_encoding, HSV encoding
  * @quantization:	enum v4l2_quantization, colorspace quantization
  * @xfer_func:		enum v4l2_xfer_func, colorspace transfer function
- * @reserved:		drivers and applications must zero this array
  */
 struct v4l2_pix_format_mplane {
 	__u32				width;
@@ -2313,7 +2273,6 @@
  * struct v4l2_sdr_format - SDR format definition
  * @pixelformat:	little endian four character code (fourcc)
  * @buffersize:		maximum size in bytes required for data
- * @reserved:		drivers and applications must zero this array
  */
 struct v4l2_sdr_format {
 	__u32				pixelformat;
@@ -2340,8 +2299,6 @@
  * @vbi:	raw VBI capture or output parameters
  * @sliced:	sliced VBI capture or output parameters
  * @raw_data:	placeholder for future extensions and custom formats
- * @fmt:	union of @pix, @pix_mp, @win, @vbi, @sliced, @sdr, @meta
- *		and @raw_data
  */
 struct v4l2_format {
 	__u32	 type;
@@ -2514,9 +2471,6 @@
  * @memory:	enum v4l2_memory; buffer memory type
  * @format:	frame format, for which buffers are requested
  * @capabilities: capabilities of this buffer type.
- * @flags:	additional buffer management attributes (ignored unless the
- *		queue has V4L2_BUF_CAP_SUPPORTS_MMAP_CACHE_HINTS capability
- *		and configured for MMAP streaming I/O).
  * @reserved:	future extensions
  */
 struct v4l2_create_buffers {
@@ -2525,8 +2479,7 @@
 	__u32			memory;
 	struct v4l2_format	format;
 	__u32			capabilities;
-	__u32			flags;
-	__u32			reserved[6];
+	__u32			reserved[7];
 };
 
 /*
@@ -2634,10 +2587,4 @@
 
 #define BASE_VIDIOC_PRIVATE	192		/* 192-255 are private */
 
-/* Deprecated definitions kept for backwards compatibility */
-#ifndef __KERNEL__
-#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
-#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
-#endif
-
 #endif /* _UAPI__LINUX_VIDEODEV2_H */
diff --git a/original/uapi/linux/virtio_bt.h b/original/uapi/linux/virtio_bt.h
deleted file mode 100644
index a7bd48d..0000000
--- a/original/uapi/linux/virtio_bt.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause */
-
-#ifndef _UAPI_LINUX_VIRTIO_BT_H
-#define _UAPI_LINUX_VIRTIO_BT_H
-
-#include <linux/virtio_types.h>
-
-/* Feature bits */
-#define VIRTIO_BT_F_VND_HCI	0	/* Indicates vendor command support */
-#define VIRTIO_BT_F_MSFT_EXT	1	/* Indicates MSFT vendor support */
-#define VIRTIO_BT_F_AOSP_EXT	2	/* Indicates AOSP vendor support */
-
-enum virtio_bt_config_type {
-	VIRTIO_BT_CONFIG_TYPE_PRIMARY	= 0,
-	VIRTIO_BT_CONFIG_TYPE_AMP	= 1,
-};
-
-enum virtio_bt_config_vendor {
-	VIRTIO_BT_CONFIG_VENDOR_NONE	= 0,
-	VIRTIO_BT_CONFIG_VENDOR_ZEPHYR	= 1,
-	VIRTIO_BT_CONFIG_VENDOR_INTEL	= 2,
-	VIRTIO_BT_CONFIG_VENDOR_REALTEK	= 3,
-};
-
-struct virtio_bt_config {
-	__u8  type;
-	__u16 vendor;
-	__u16 msft_opcode;
-} __attribute__((packed));
-
-#endif /* _UAPI_LINUX_VIRTIO_BT_H */
diff --git a/original/uapi/linux/virtio_gpio.h b/original/uapi/linux/virtio_gpio.h
deleted file mode 100644
index d4b29d9..0000000
--- a/original/uapi/linux/virtio_gpio.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-
-#ifndef _LINUX_VIRTIO_GPIO_H
-#define _LINUX_VIRTIO_GPIO_H
-
-#include <linux/types.h>
-
-/* Virtio GPIO Feature bits */
-#define VIRTIO_GPIO_F_IRQ			0
-
-/* Virtio GPIO request types */
-#define VIRTIO_GPIO_MSG_GET_NAMES		0x0001
-#define VIRTIO_GPIO_MSG_GET_DIRECTION		0x0002
-#define VIRTIO_GPIO_MSG_SET_DIRECTION		0x0003
-#define VIRTIO_GPIO_MSG_GET_VALUE		0x0004
-#define VIRTIO_GPIO_MSG_SET_VALUE		0x0005
-#define VIRTIO_GPIO_MSG_IRQ_TYPE		0x0006
-
-/* Possible values of the status field */
-#define VIRTIO_GPIO_STATUS_OK			0x0
-#define VIRTIO_GPIO_STATUS_ERR			0x1
-
-/* Direction types */
-#define VIRTIO_GPIO_DIRECTION_NONE		0x00
-#define VIRTIO_GPIO_DIRECTION_OUT		0x01
-#define VIRTIO_GPIO_DIRECTION_IN		0x02
-
-/* Virtio GPIO IRQ types */
-#define VIRTIO_GPIO_IRQ_TYPE_NONE		0x00
-#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING	0x01
-#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING	0x02
-#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH		0x03
-#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH		0x04
-#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW		0x08
-
-struct virtio_gpio_config {
-	__le16 ngpio;
-	__u8 padding[2];
-	__le32 gpio_names_size;
-};
-
-/* Virtio GPIO Request / Response */
-struct virtio_gpio_request {
-	__le16 type;
-	__le16 gpio;
-	__le32 value;
-};
-
-struct virtio_gpio_response {
-	__u8 status;
-	__u8 value;
-};
-
-struct virtio_gpio_response_get_names {
-	__u8 status;
-	__u8 value[];
-};
-
-/* Virtio GPIO IRQ Request / Response */
-struct virtio_gpio_irq_request {
-	__le16 gpio;
-};
-
-struct virtio_gpio_irq_response {
-	__u8 status;
-};
-
-/* Possible values of the interrupt status field */
-#define VIRTIO_GPIO_IRQ_STATUS_INVALID		0x0
-#define VIRTIO_GPIO_IRQ_STATUS_VALID		0x1
-
-#endif /* _LINUX_VIRTIO_GPIO_H */
diff --git a/original/uapi/linux/virtio_gpu.h b/original/uapi/linux/virtio_gpu.h
index f556fde..97523a9 100644
--- a/original/uapi/linux/virtio_gpu.h
+++ b/original/uapi/linux/virtio_gpu.h
@@ -59,11 +59,6 @@
  * VIRTIO_GPU_CMD_RESOURCE_CREATE_BLOB
  */
 #define VIRTIO_GPU_F_RESOURCE_BLOB       3
-/*
- * VIRTIO_GPU_CMD_CREATE_CONTEXT with
- * context_init and multiple timelines
- */
-#define VIRTIO_GPU_F_CONTEXT_INIT        4
 
 enum virtio_gpu_ctrl_type {
 	VIRTIO_GPU_UNDEFINED = 0,
@@ -127,20 +122,14 @@
 	VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
 };
 
-#define VIRTIO_GPU_FLAG_FENCE         (1 << 0)
-/*
- * If the following flag is set, then ring_idx contains the index
- * of the command ring that needs to used when creating the fence
- */
-#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
+#define VIRTIO_GPU_FLAG_FENCE (1 << 0)
 
 struct virtio_gpu_ctrl_hdr {
 	__le32 type;
 	__le32 flags;
 	__le64 fence_id;
 	__le32 ctx_id;
-	__u8 ring_idx;
-	__u8 padding[3];
+	__le32 padding;
 };
 
 /* data passed in the cursor vq */
@@ -280,11 +269,10 @@
 };
 
 /* VIRTIO_GPU_CMD_CTX_CREATE */
-#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
 struct virtio_gpu_ctx_create {
 	struct virtio_gpu_ctrl_hdr hdr;
 	__le32 nlen;
-	__le32 context_init;
+	__le32 padding;
 	char debug_name[64];
 };
 
diff --git a/original/uapi/linux/virtio_i2c.h b/original/uapi/linux/virtio_i2c.h
deleted file mode 100644
index acf3b60..0000000
--- a/original/uapi/linux/virtio_i2c.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later WITH Linux-syscall-note */
-/*
- * Definitions for virtio I2C Adpter
- *
- * Copyright (c) 2021 Intel Corporation. All rights reserved.
- */
-
-#ifndef _UAPI_LINUX_VIRTIO_I2C_H
-#define _UAPI_LINUX_VIRTIO_I2C_H
-
-#include <linux/const.h>
-#include <linux/types.h>
-
-/* Virtio I2C Feature bits */
-#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST	0
-
-/* The bit 0 of the @virtio_i2c_out_hdr.@flags, used to group the requests */
-#define VIRTIO_I2C_FLAGS_FAIL_NEXT	_BITUL(0)
-
-/* The bit 1 of the @virtio_i2c_out_hdr.@flags, used to mark a buffer as read */
-#define VIRTIO_I2C_FLAGS_M_RD		_BITUL(1)
-
-/**
- * struct virtio_i2c_out_hdr - the virtio I2C message OUT header
- * @addr: the controlled device address
- * @padding: used to pad to full dword
- * @flags: used for feature extensibility
- */
-struct virtio_i2c_out_hdr {
-	__le16 addr;
-	__le16 padding;
-	__le32 flags;
-};
-
-/**
- * struct virtio_i2c_in_hdr - the virtio I2C message IN header
- * @status: the processing result from the backend
- */
-struct virtio_i2c_in_hdr {
-	__u8 status;
-};
-
-/* The final status written by the device */
-#define VIRTIO_I2C_MSG_OK	0
-#define VIRTIO_I2C_MSG_ERR	1
-
-#endif /* _UAPI_LINUX_VIRTIO_I2C_H */
diff --git a/original/uapi/linux/virtio_ids.h b/original/uapi/linux/virtio_ids.h
index 80d76b7..bc1c062 100644
--- a/original/uapi/linux/virtio_ids.h
+++ b/original/uapi/linux/virtio_ids.h
@@ -51,34 +51,8 @@
 #define VIRTIO_ID_PSTORE		22 /* virtio pstore device */
 #define VIRTIO_ID_IOMMU			23 /* virtio IOMMU */
 #define VIRTIO_ID_MEM			24 /* virtio mem */
-#define VIRTIO_ID_SOUND			25 /* virtio sound */
 #define VIRTIO_ID_FS			26 /* virtio filesystem */
 #define VIRTIO_ID_PMEM			27 /* virtio pmem */
-#define VIRTIO_ID_RPMB			28 /* virtio rpmb */
 #define VIRTIO_ID_MAC80211_HWSIM	29 /* virtio mac80211-hwsim */
-#define VIRTIO_ID_VIDEO_ENCODER		30 /* virtio video encoder */
-#define VIRTIO_ID_VIDEO_DECODER		31 /* virtio video decoder */
-#define VIRTIO_ID_SCMI			32 /* virtio SCMI */
-#define VIRTIO_ID_NITRO_SEC_MOD		33 /* virtio nitro secure module*/
-#define VIRTIO_ID_I2C_ADAPTER		34 /* virtio i2c adapter */
-#define VIRTIO_ID_WATCHDOG		35 /* virtio watchdog */
-#define VIRTIO_ID_CAN			36 /* virtio can */
-#define VIRTIO_ID_DMABUF		37 /* virtio dmabuf */
-#define VIRTIO_ID_PARAM_SERV		38 /* virtio parameter server */
-#define VIRTIO_ID_AUDIO_POLICY		39 /* virtio audio policy */
-#define VIRTIO_ID_BT			40 /* virtio bluetooth */
-#define VIRTIO_ID_GPIO			41 /* virtio gpio */
-
-/*
- * Virtio Transitional IDs
- */
-
-#define VIRTIO_TRANS_ID_NET		1000 /* transitional virtio net */
-#define VIRTIO_TRANS_ID_BLOCK		1001 /* transitional virtio block */
-#define VIRTIO_TRANS_ID_BALLOON		1002 /* transitional virtio balloon */
-#define VIRTIO_TRANS_ID_CONSOLE		1003 /* transitional virtio console */
-#define VIRTIO_TRANS_ID_SCSI		1004 /* transitional virtio SCSI */
-#define VIRTIO_TRANS_ID_RNG		1005 /* transitional virtio rng */
-#define VIRTIO_TRANS_ID_9P		1009 /* transitional virtio 9p console */
 
 #endif /* _LINUX_VIRTIO_IDS_H */
diff --git a/original/uapi/linux/virtio_iommu.h b/original/uapi/linux/virtio_iommu.h
index 1ff357f..237e36a 100644
--- a/original/uapi/linux/virtio_iommu.h
+++ b/original/uapi/linux/virtio_iommu.h
@@ -16,7 +16,6 @@
 #define VIRTIO_IOMMU_F_BYPASS			3
 #define VIRTIO_IOMMU_F_PROBE			4
 #define VIRTIO_IOMMU_F_MMIO			5
-#define VIRTIO_IOMMU_F_BYPASS_CONFIG		6
 
 struct virtio_iommu_range_64 {
 	__le64					start;
@@ -37,8 +36,6 @@
 	struct virtio_iommu_range_32		domain_range;
 	/* Probe buffer size */
 	__le32					probe_size;
-	__u8					bypass;
-	__u8					reserved[3];
 };
 
 /* Request types */
@@ -69,14 +66,11 @@
 	__u8					reserved[3];
 };
 
-#define VIRTIO_IOMMU_ATTACH_F_BYPASS		(1 << 0)
-
 struct virtio_iommu_req_attach {
 	struct virtio_iommu_req_head		head;
 	__le32					domain;
 	__le32					endpoint;
-	__le32					flags;
-	__u8					reserved[4];
+	__u8					reserved[8];
 	struct virtio_iommu_req_tail		tail;
 };
 
diff --git a/original/uapi/linux/virtio_mem.h b/original/uapi/linux/virtio_mem.h
index e9122f1..70e01c6 100644
--- a/original/uapi/linux/virtio_mem.h
+++ b/original/uapi/linux/virtio_mem.h
@@ -68,10 +68,9 @@
  * explicitly triggered (VIRTIO_MEM_REQ_UNPLUG).
  *
  * There are no guarantees what will happen if unplugged memory is
- * read/written. In general, unplugged memory should not be touched, because
- * the resulting action is undefined. There is one exception: without
- * VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE, unplugged memory inside the usable
- * region can be read, to simplify creation of memory dumps.
+ * read/written. Such memory should, in general, not be touched. E.g.,
+ * even writing might succeed, but the values will simply be discarded at
+ * random points in time.
  *
  * It can happen that the device cannot process a request, because it is
  * busy. The device driver has to retry later.
@@ -88,8 +87,6 @@
 
 /* node_id is an ACPI PXM and is valid */
 #define VIRTIO_MEM_F_ACPI_PXM		0
-/* unplugged memory must not be accessed */
-#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE	1
 
 
 /* --- virtio-mem: guest -> host requests --- */
diff --git a/original/uapi/linux/virtio_pcidev.h b/original/uapi/linux/virtio_pcidev.h
deleted file mode 100644
index 668b07c..0000000
--- a/original/uapi/linux/virtio_pcidev.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
-/*
- * Copyright (C) 2021 Intel Corporation
- * Author: Johannes Berg <johannes@sipsolutions.net>
- */
-#ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
-#define _UAPI_LINUX_VIRTIO_PCIDEV_H
-#include <linux/types.h>
-
-/**
- * enum virtio_pcidev_ops - virtual PCI device operations
- * @VIRTIO_PCIDEV_OP_RESERVED: reserved to catch errors
- * @VIRTIO_PCIDEV_OP_CFG_READ: read config space, size is 1, 2, 4 or 8;
- *	the @data field should be filled in by the device (in little endian).
- * @VIRTIO_PCIDEV_OP_CFG_WRITE: write config space, size is 1, 2, 4 or 8;
- *	the @data field contains the data to write (in little endian).
- * @VIRTIO_PCIDEV_OP_MMIO_READ: read BAR mem/pio, size can be variable;
- *	the @data field should be filled in by the device (in little endian).
- * @VIRTIO_PCIDEV_OP_MMIO_WRITE: write BAR mem/pio, size can be variable;
- *	the @data field contains the data to write (in little endian).
- * @VIRTIO_PCIDEV_OP_MMIO_MEMSET: memset MMIO, size is variable but
- *	the @data field only has one byte (unlike @VIRTIO_PCIDEV_OP_MMIO_WRITE)
- * @VIRTIO_PCIDEV_OP_INT: legacy INTx# pin interrupt, the addr field is 1-4 for
- *	the number
- * @VIRTIO_PCIDEV_OP_MSI: MSI(-X) interrupt, this message basically transports
- *	the 16- or 32-bit write that would otherwise be done into memory,
- *	analogous to the write messages (@VIRTIO_PCIDEV_OP_MMIO_WRITE) above
- * @VIRTIO_PCIDEV_OP_PME: Dummy message whose content is ignored (and should be
- *	all zeroes) to signal the PME# pin.
- */
-enum virtio_pcidev_ops {
-	VIRTIO_PCIDEV_OP_RESERVED = 0,
-	VIRTIO_PCIDEV_OP_CFG_READ,
-	VIRTIO_PCIDEV_OP_CFG_WRITE,
-	VIRTIO_PCIDEV_OP_MMIO_READ,
-	VIRTIO_PCIDEV_OP_MMIO_WRITE,
-	VIRTIO_PCIDEV_OP_MMIO_MEMSET,
-	VIRTIO_PCIDEV_OP_INT,
-	VIRTIO_PCIDEV_OP_MSI,
-	VIRTIO_PCIDEV_OP_PME,
-};
-
-/**
- * struct virtio_pcidev_msg - virtio PCI device operation
- * @op: the operation to do
- * @bar: the bar (only with BAR read/write messages)
- * @reserved: reserved
- * @size: the size of the read/write (in bytes)
- * @addr: the address to read/write
- * @data: the data, normally @size long, but just one byte for
- *	%VIRTIO_PCIDEV_OP_MMIO_MEMSET
- *
- * Note: the fields are all in native (CPU) endian, however, the
- * @data values will often be in little endian (see the ops above.)
- */
-struct virtio_pcidev_msg {
-	__u8 op;
-	__u8 bar;
-	__u16 reserved;
-	__u32 size;
-	__u64 addr;
-	__u8 data[];
-};
-
-#endif /* _UAPI_LINUX_VIRTIO_PCIDEV_H */
diff --git a/original/uapi/linux/virtio_scmi.h b/original/uapi/linux/virtio_scmi.h
deleted file mode 100644
index f8ddd04..0000000
--- a/original/uapi/linux/virtio_scmi.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause) */
-/*
- * Copyright (C) 2020-2021 OpenSynergy GmbH
- * Copyright (C) 2021 ARM Ltd.
- */
-
-#ifndef _UAPI_LINUX_VIRTIO_SCMI_H
-#define _UAPI_LINUX_VIRTIO_SCMI_H
-
-#include <linux/virtio_types.h>
-
-/* Device implements some SCMI notifications, or delayed responses. */
-#define VIRTIO_SCMI_F_P2A_CHANNELS 0
-
-/* Device implements any SCMI statistics shared memory region */
-#define VIRTIO_SCMI_F_SHARED_MEMORY 1
-
-/* Virtqueues */
-
-#define VIRTIO_SCMI_VQ_TX 0 /* cmdq */
-#define VIRTIO_SCMI_VQ_RX 1 /* eventq */
-#define VIRTIO_SCMI_VQ_MAX_CNT 2
-
-#endif /* _UAPI_LINUX_VIRTIO_SCMI_H */
diff --git a/original/uapi/linux/virtio_snd.h b/original/uapi/linux/virtio_snd.h
deleted file mode 100644
index dfe4954..0000000
--- a/original/uapi/linux/virtio_snd.h
+++ /dev/null
@@ -1,334 +0,0 @@
-/* SPDX-License-Identifier: BSD-3-Clause */
-/*
- * Copyright (C) 2021 OpenSynergy GmbH
- */
-#ifndef VIRTIO_SND_IF_H
-#define VIRTIO_SND_IF_H
-
-#include <linux/virtio_types.h>
-
-/*******************************************************************************
- * CONFIGURATION SPACE
- */
-struct virtio_snd_config {
-	/* # of available physical jacks */
-	__le32 jacks;
-	/* # of available PCM streams */
-	__le32 streams;
-	/* # of available channel maps */
-	__le32 chmaps;
-};
-
-enum {
-	/* device virtqueue indexes */
-	VIRTIO_SND_VQ_CONTROL = 0,
-	VIRTIO_SND_VQ_EVENT,
-	VIRTIO_SND_VQ_TX,
-	VIRTIO_SND_VQ_RX,
-	/* # of device virtqueues */
-	VIRTIO_SND_VQ_MAX
-};
-
-/*******************************************************************************
- * COMMON DEFINITIONS
- */
-
-/* supported dataflow directions */
-enum {
-	VIRTIO_SND_D_OUTPUT = 0,
-	VIRTIO_SND_D_INPUT
-};
-
-enum {
-	/* jack control request types */
-	VIRTIO_SND_R_JACK_INFO = 1,
-	VIRTIO_SND_R_JACK_REMAP,
-
-	/* PCM control request types */
-	VIRTIO_SND_R_PCM_INFO = 0x0100,
-	VIRTIO_SND_R_PCM_SET_PARAMS,
-	VIRTIO_SND_R_PCM_PREPARE,
-	VIRTIO_SND_R_PCM_RELEASE,
-	VIRTIO_SND_R_PCM_START,
-	VIRTIO_SND_R_PCM_STOP,
-
-	/* channel map control request types */
-	VIRTIO_SND_R_CHMAP_INFO = 0x0200,
-
-	/* jack event types */
-	VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
-	VIRTIO_SND_EVT_JACK_DISCONNECTED,
-
-	/* PCM event types */
-	VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
-	VIRTIO_SND_EVT_PCM_XRUN,
-
-	/* common status codes */
-	VIRTIO_SND_S_OK = 0x8000,
-	VIRTIO_SND_S_BAD_MSG,
-	VIRTIO_SND_S_NOT_SUPP,
-	VIRTIO_SND_S_IO_ERR
-};
-
-/* common header */
-struct virtio_snd_hdr {
-	__le32 code;
-};
-
-/* event notification */
-struct virtio_snd_event {
-	/* VIRTIO_SND_EVT_XXX */
-	struct virtio_snd_hdr hdr;
-	/* optional event data */
-	__le32 data;
-};
-
-/* common control request to query an item information */
-struct virtio_snd_query_info {
-	/* VIRTIO_SND_R_XXX_INFO */
-	struct virtio_snd_hdr hdr;
-	/* item start identifier */
-	__le32 start_id;
-	/* item count to query */
-	__le32 count;
-	/* item information size in bytes */
-	__le32 size;
-};
-
-/* common item information header */
-struct virtio_snd_info {
-	/* function group node id (High Definition Audio Specification 7.1.2) */
-	__le32 hda_fn_nid;
-};
-
-/*******************************************************************************
- * JACK CONTROL MESSAGES
- */
-struct virtio_snd_jack_hdr {
-	/* VIRTIO_SND_R_JACK_XXX */
-	struct virtio_snd_hdr hdr;
-	/* 0 ... virtio_snd_config::jacks - 1 */
-	__le32 jack_id;
-};
-
-/* supported jack features */
-enum {
-	VIRTIO_SND_JACK_F_REMAP = 0
-};
-
-struct virtio_snd_jack_info {
-	/* common header */
-	struct virtio_snd_info hdr;
-	/* supported feature bit map (1 << VIRTIO_SND_JACK_F_XXX) */
-	__le32 features;
-	/* pin configuration (High Definition Audio Specification 7.3.3.31) */
-	__le32 hda_reg_defconf;
-	/* pin capabilities (High Definition Audio Specification 7.3.4.9) */
-	__le32 hda_reg_caps;
-	/* current jack connection status (0: disconnected, 1: connected) */
-	__u8 connected;
-
-	__u8 padding[7];
-};
-
-/* jack remapping control request */
-struct virtio_snd_jack_remap {
-	/* .code = VIRTIO_SND_R_JACK_REMAP */
-	struct virtio_snd_jack_hdr hdr;
-	/* selected association number */
-	__le32 association;
-	/* selected sequence number */
-	__le32 sequence;
-};
-
-/*******************************************************************************
- * PCM CONTROL MESSAGES
- */
-struct virtio_snd_pcm_hdr {
-	/* VIRTIO_SND_R_PCM_XXX */
-	struct virtio_snd_hdr hdr;
-	/* 0 ... virtio_snd_config::streams - 1 */
-	__le32 stream_id;
-};
-
-/* supported PCM stream features */
-enum {
-	VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
-	VIRTIO_SND_PCM_F_SHMEM_GUEST,
-	VIRTIO_SND_PCM_F_MSG_POLLING,
-	VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
-	VIRTIO_SND_PCM_F_EVT_XRUNS
-};
-
-/* supported PCM sample formats */
-enum {
-	/* analog formats (width / physical width) */
-	VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,	/*  4 /  4 bits */
-	VIRTIO_SND_PCM_FMT_MU_LAW,		/*  8 /  8 bits */
-	VIRTIO_SND_PCM_FMT_A_LAW,		/*  8 /  8 bits */
-	VIRTIO_SND_PCM_FMT_S8,			/*  8 /  8 bits */
-	VIRTIO_SND_PCM_FMT_U8,			/*  8 /  8 bits */
-	VIRTIO_SND_PCM_FMT_S16,			/* 16 / 16 bits */
-	VIRTIO_SND_PCM_FMT_U16,			/* 16 / 16 bits */
-	VIRTIO_SND_PCM_FMT_S18_3,		/* 18 / 24 bits */
-	VIRTIO_SND_PCM_FMT_U18_3,		/* 18 / 24 bits */
-	VIRTIO_SND_PCM_FMT_S20_3,		/* 20 / 24 bits */
-	VIRTIO_SND_PCM_FMT_U20_3,		/* 20 / 24 bits */
-	VIRTIO_SND_PCM_FMT_S24_3,		/* 24 / 24 bits */
-	VIRTIO_SND_PCM_FMT_U24_3,		/* 24 / 24 bits */
-	VIRTIO_SND_PCM_FMT_S20,			/* 20 / 32 bits */
-	VIRTIO_SND_PCM_FMT_U20,			/* 20 / 32 bits */
-	VIRTIO_SND_PCM_FMT_S24,			/* 24 / 32 bits */
-	VIRTIO_SND_PCM_FMT_U24,			/* 24 / 32 bits */
-	VIRTIO_SND_PCM_FMT_S32,			/* 32 / 32 bits */
-	VIRTIO_SND_PCM_FMT_U32,			/* 32 / 32 bits */
-	VIRTIO_SND_PCM_FMT_FLOAT,		/* 32 / 32 bits */
-	VIRTIO_SND_PCM_FMT_FLOAT64,		/* 64 / 64 bits */
-	/* digital formats (width / physical width) */
-	VIRTIO_SND_PCM_FMT_DSD_U8,		/*  8 /  8 bits */
-	VIRTIO_SND_PCM_FMT_DSD_U16,		/* 16 / 16 bits */
-	VIRTIO_SND_PCM_FMT_DSD_U32,		/* 32 / 32 bits */
-	VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME	/* 32 / 32 bits */
-};
-
-/* supported PCM frame rates */
-enum {
-	VIRTIO_SND_PCM_RATE_5512 = 0,
-	VIRTIO_SND_PCM_RATE_8000,
-	VIRTIO_SND_PCM_RATE_11025,
-	VIRTIO_SND_PCM_RATE_16000,
-	VIRTIO_SND_PCM_RATE_22050,
-	VIRTIO_SND_PCM_RATE_32000,
-	VIRTIO_SND_PCM_RATE_44100,
-	VIRTIO_SND_PCM_RATE_48000,
-	VIRTIO_SND_PCM_RATE_64000,
-	VIRTIO_SND_PCM_RATE_88200,
-	VIRTIO_SND_PCM_RATE_96000,
-	VIRTIO_SND_PCM_RATE_176400,
-	VIRTIO_SND_PCM_RATE_192000,
-	VIRTIO_SND_PCM_RATE_384000
-};
-
-struct virtio_snd_pcm_info {
-	/* common header */
-	struct virtio_snd_info hdr;
-	/* supported feature bit map (1 << VIRTIO_SND_PCM_F_XXX) */
-	__le32 features;
-	/* supported sample format bit map (1 << VIRTIO_SND_PCM_FMT_XXX) */
-	__le64 formats;
-	/* supported frame rate bit map (1 << VIRTIO_SND_PCM_RATE_XXX) */
-	__le64 rates;
-	/* dataflow direction (VIRTIO_SND_D_XXX) */
-	__u8 direction;
-	/* minimum # of supported channels */
-	__u8 channels_min;
-	/* maximum # of supported channels */
-	__u8 channels_max;
-
-	__u8 padding[5];
-};
-
-/* set PCM stream format */
-struct virtio_snd_pcm_set_params {
-	/* .code = VIRTIO_SND_R_PCM_SET_PARAMS */
-	struct virtio_snd_pcm_hdr hdr;
-	/* size of the hardware buffer */
-	__le32 buffer_bytes;
-	/* size of the hardware period */
-	__le32 period_bytes;
-	/* selected feature bit map (1 << VIRTIO_SND_PCM_F_XXX) */
-	__le32 features;
-	/* selected # of channels */
-	__u8 channels;
-	/* selected sample format (VIRTIO_SND_PCM_FMT_XXX) */
-	__u8 format;
-	/* selected frame rate (VIRTIO_SND_PCM_RATE_XXX) */
-	__u8 rate;
-
-	__u8 padding;
-};
-
-/*******************************************************************************
- * PCM I/O MESSAGES
- */
-
-/* I/O request header */
-struct virtio_snd_pcm_xfer {
-	/* 0 ... virtio_snd_config::streams - 1 */
-	__le32 stream_id;
-};
-
-/* I/O request status */
-struct virtio_snd_pcm_status {
-	/* VIRTIO_SND_S_XXX */
-	__le32 status;
-	/* current device latency */
-	__le32 latency_bytes;
-};
-
-/*******************************************************************************
- * CHANNEL MAP CONTROL MESSAGES
- */
-struct virtio_snd_chmap_hdr {
-	/* VIRTIO_SND_R_CHMAP_XXX */
-	struct virtio_snd_hdr hdr;
-	/* 0 ... virtio_snd_config::chmaps - 1 */
-	__le32 chmap_id;
-};
-
-/* standard channel position definition */
-enum {
-	VIRTIO_SND_CHMAP_NONE = 0,	/* undefined */
-	VIRTIO_SND_CHMAP_NA,		/* silent */
-	VIRTIO_SND_CHMAP_MONO,		/* mono stream */
-	VIRTIO_SND_CHMAP_FL,		/* front left */
-	VIRTIO_SND_CHMAP_FR,		/* front right */
-	VIRTIO_SND_CHMAP_RL,		/* rear left */
-	VIRTIO_SND_CHMAP_RR,		/* rear right */
-	VIRTIO_SND_CHMAP_FC,		/* front center */
-	VIRTIO_SND_CHMAP_LFE,		/* low frequency (LFE) */
-	VIRTIO_SND_CHMAP_SL,		/* side left */
-	VIRTIO_SND_CHMAP_SR,		/* side right */
-	VIRTIO_SND_CHMAP_RC,		/* rear center */
-	VIRTIO_SND_CHMAP_FLC,		/* front left center */
-	VIRTIO_SND_CHMAP_FRC,		/* front right center */
-	VIRTIO_SND_CHMAP_RLC,		/* rear left center */
-	VIRTIO_SND_CHMAP_RRC,		/* rear right center */
-	VIRTIO_SND_CHMAP_FLW,		/* front left wide */
-	VIRTIO_SND_CHMAP_FRW,		/* front right wide */
-	VIRTIO_SND_CHMAP_FLH,		/* front left high */
-	VIRTIO_SND_CHMAP_FCH,		/* front center high */
-	VIRTIO_SND_CHMAP_FRH,		/* front right high */
-	VIRTIO_SND_CHMAP_TC,		/* top center */
-	VIRTIO_SND_CHMAP_TFL,		/* top front left */
-	VIRTIO_SND_CHMAP_TFR,		/* top front right */
-	VIRTIO_SND_CHMAP_TFC,		/* top front center */
-	VIRTIO_SND_CHMAP_TRL,		/* top rear left */
-	VIRTIO_SND_CHMAP_TRR,		/* top rear right */
-	VIRTIO_SND_CHMAP_TRC,		/* top rear center */
-	VIRTIO_SND_CHMAP_TFLC,		/* top front left center */
-	VIRTIO_SND_CHMAP_TFRC,		/* top front right center */
-	VIRTIO_SND_CHMAP_TSL,		/* top side left */
-	VIRTIO_SND_CHMAP_TSR,		/* top side right */
-	VIRTIO_SND_CHMAP_LLFE,		/* left LFE */
-	VIRTIO_SND_CHMAP_RLFE,		/* right LFE */
-	VIRTIO_SND_CHMAP_BC,		/* bottom center */
-	VIRTIO_SND_CHMAP_BLC,		/* bottom left center */
-	VIRTIO_SND_CHMAP_BRC		/* bottom right center */
-};
-
-/* maximum possible number of channels */
-#define VIRTIO_SND_CHMAP_MAX_SIZE	18
-
-struct virtio_snd_chmap_info {
-	/* common header */
-	struct virtio_snd_info hdr;
-	/* dataflow direction (VIRTIO_SND_D_XXX) */
-	__u8 direction;
-	/* # of valid channel position values */
-	__u8 channels;
-	/* channel position values (VIRTIO_SND_CHMAP_XXX) */
-	__u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
-};
-
-#endif /* VIRTIO_SND_IF_H */
diff --git a/original/uapi/linux/virtio_vsock.h b/original/uapi/linux/virtio_vsock.h
index 6473883..1d57ed3 100644
--- a/original/uapi/linux/virtio_vsock.h
+++ b/original/uapi/linux/virtio_vsock.h
@@ -38,9 +38,6 @@
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
 
-/* The feature bitmap for virtio vsock */
-#define VIRTIO_VSOCK_F_SEQPACKET	1	/* SOCK_SEQPACKET supported */
-
 struct virtio_vsock_config {
 	__le64 guest_cid;
 } __attribute__((packed));
@@ -68,7 +65,6 @@
 
 enum virtio_vsock_type {
 	VIRTIO_VSOCK_TYPE_STREAM = 1,
-	VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
 };
 
 enum virtio_vsock_op {
@@ -95,10 +91,4 @@
 	VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
 };
 
-/* VIRTIO_VSOCK_OP_RW flags values */
-enum virtio_vsock_rw {
-	VIRTIO_VSOCK_SEQ_EOM = 1,
-	VIRTIO_VSOCK_SEQ_EOR = 2,
-};
-
 #endif /* _UAPI_LINUX_VIRTIO_VSOCK_H */
diff --git a/original/uapi/linux/vm_sockets.h b/original/uapi/linux/vm_sockets.h
index c60ca33..46918a1 100644
--- a/original/uapi/linux/vm_sockets.h
+++ b/original/uapi/linux/vm_sockets.h
@@ -64,7 +64,7 @@
  * timeout for a STREAM socket.
  */
 
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD 6
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
 
 /* Option name for using non-blocking send/receive.  Use as the option name
  * for setsockopt(3) or getsockopt(3) to set or get the non-blocking
@@ -81,17 +81,6 @@
 
 #define SO_VM_SOCKETS_NONBLOCK_TXRX 7
 
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW 8
-
-#if !defined(__KERNEL__)
-#if __BITS_PER_LONG == 64 || (defined(__x86_64__) && defined(__ILP32__))
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD
-#else
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT \
-	(sizeof(time_t) == sizeof(__kernel_long_t) ? SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD : SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW)
-#endif
-#endif
-
 /* The vSocket equivalent of INADDR_ANY.  This works for the svm_cid field of
  * sockaddr_vm and indicates the context ID of the current endpoint.
  */
diff --git a/original/uapi/linux/wwan.h b/original/uapi/linux/wwan.h
deleted file mode 100644
index 32a2720..0000000
--- a/original/uapi/linux/wwan.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
-/*
- * Copyright (C) 2021 Intel Corporation.
- */
-#ifndef _UAPI_WWAN_H_
-#define _UAPI_WWAN_H_
-
-enum {
-	IFLA_WWAN_UNSPEC,
-	IFLA_WWAN_LINK_ID, /* u32 */
-
-	__IFLA_WWAN_MAX
-};
-#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
-
-#endif /* _UAPI_WWAN_H_ */
diff --git a/original/uapi/linux/xfrm.h b/original/uapi/linux/xfrm.h
index 65e13a0..ffc6a53 100644
--- a/original/uapi/linux/xfrm.h
+++ b/original/uapi/linux/xfrm.h
@@ -215,11 +215,6 @@
 
 	XFRM_MSG_MAPPING,
 #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
-
-	XFRM_MSG_SETDEFAULT,
-#define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT
-	XFRM_MSG_GETDEFAULT,
-#define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT
 	__XFRM_MSG_MAX
 };
 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
@@ -313,7 +308,6 @@
 	XFRMA_SET_MARK,		/* __u32 */
 	XFRMA_SET_MARK_MASK,	/* __u32 */
 	XFRMA_IF_ID,		/* __u32 */
-	XFRMA_MTIMER_THRESH,	/* __u32 in seconds for input SA */
 	__XFRMA_MAX
 
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK	/* Compatibility */
@@ -511,24 +505,9 @@
 	int				ifindex;
 	__u8				flags;
 };
-/* This flag was exposed without any kernel code that supporting it.
- * Unfortunately, strongswan has the code that uses sets this flag,
- * which makes impossible to reuse this bit.
- *
- * So leave it here to make sure that it won't be reused by mistake.
- */
 #define XFRM_OFFLOAD_IPV6	1
 #define XFRM_OFFLOAD_INBOUND	2
 
-struct xfrm_userpolicy_default {
-#define XFRM_USERPOLICY_UNSPEC	0
-#define XFRM_USERPOLICY_BLOCK	1
-#define XFRM_USERPOLICY_ACCEPT	2
-	__u8				in;
-	__u8				fwd;
-	__u8				out;
-};
-
 #ifndef __KERNEL__
 /* backwards compatibility for userspace */
 #define XFRMGRP_ACQUIRE		1
diff --git a/original/uapi/misc/habanalabs.h b/original/uapi/misc/habanalabs.h
index 371dfc4..5a86b52 100644
--- a/original/uapi/misc/habanalabs.h
+++ b/original/uapi/misc/habanalabs.h
@@ -239,64 +239,11 @@
 	GAUDI_ENGINE_ID_SIZE
 };
 
-/*
- * ASIC specific PLL index
- *
- * Used to retrieve in frequency info of different IPs via
- * HL_INFO_PLL_FREQUENCY under HL_IOCTL_INFO IOCTL. The enums need to be
- * used as an index in struct hl_pll_frequency_info
- */
-
-enum hl_goya_pll_index {
-	HL_GOYA_CPU_PLL = 0,
-	HL_GOYA_IC_PLL,
-	HL_GOYA_MC_PLL,
-	HL_GOYA_MME_PLL,
-	HL_GOYA_PCI_PLL,
-	HL_GOYA_EMMC_PLL,
-	HL_GOYA_TPC_PLL,
-	HL_GOYA_PLL_MAX
-};
-
-enum hl_gaudi_pll_index {
-	HL_GAUDI_CPU_PLL = 0,
-	HL_GAUDI_PCI_PLL,
-	HL_GAUDI_SRAM_PLL,
-	HL_GAUDI_HBM_PLL,
-	HL_GAUDI_NIC_PLL,
-	HL_GAUDI_DMA_PLL,
-	HL_GAUDI_MESH_PLL,
-	HL_GAUDI_MME_PLL,
-	HL_GAUDI_TPC_PLL,
-	HL_GAUDI_IF_PLL,
-	HL_GAUDI_PLL_MAX
-};
-
-/**
- * enum hl_device_status - Device status information.
- * @HL_DEVICE_STATUS_OPERATIONAL: Device is operational.
- * @HL_DEVICE_STATUS_IN_RESET: Device is currently during reset.
- * @HL_DEVICE_STATUS_MALFUNCTION: Device is unusable.
- * @HL_DEVICE_STATUS_NEEDS_RESET: Device needs reset because auto reset was disabled.
- * @HL_DEVICE_STATUS_IN_DEVICE_CREATION: Device is operational but its creation is still in
- *                                       progress.
- * @HL_DEVICE_STATUS_LAST: Last status.
- */
 enum hl_device_status {
 	HL_DEVICE_STATUS_OPERATIONAL,
 	HL_DEVICE_STATUS_IN_RESET,
 	HL_DEVICE_STATUS_MALFUNCTION,
-	HL_DEVICE_STATUS_NEEDS_RESET,
-	HL_DEVICE_STATUS_IN_DEVICE_CREATION,
-	HL_DEVICE_STATUS_LAST = HL_DEVICE_STATUS_IN_DEVICE_CREATION
-};
-
-enum hl_server_type {
-	HL_SERVER_TYPE_UNKNOWN = 0,
-	HL_SERVER_GAUDI_HLS1 = 1,
-	HL_SERVER_GAUDI_HLS1H = 2,
-	HL_SERVER_GAUDI_TYPE1 = 3,
-	HL_SERVER_GAUDI_TYPE2 = 4
+	HL_DEVICE_STATUS_NEEDS_RESET
 };
 
 /* Opcode for management ioctl
@@ -333,18 +280,6 @@
  * HL_INFO_SYNC_MANAGER  - Retrieve sync manager info per dcore
  * HL_INFO_TOTAL_ENERGY  - Retrieve total energy consumption
  * HL_INFO_PLL_FREQUENCY - Retrieve PLL frequency
- * HL_INFO_POWER         - Retrieve power information
- * HL_INFO_OPEN_STATS    - Retrieve info regarding recent device open calls
- * HL_INFO_DRAM_REPLACED_ROWS - Retrieve DRAM replaced rows info
- * HL_INFO_DRAM_PENDING_ROWS - Retrieve DRAM pending rows num
- * HL_INFO_LAST_ERR_OPEN_DEV_TIME - Retrieve timestamp of the last time the device was opened
- *                                  and CS timeout or razwi error occurred.
- * HL_INFO_CS_TIMEOUT_EVENT - Retrieve CS timeout timestamp and its related CS sequence number.
- * HL_INFO_RAZWI_EVENT - Retrieve parameters of razwi:
- *                            Timestamp of razwi.
- *                            The address which accessing it caused the razwi.
- *                            Razwi initiator.
- *                            Razwi cause, was it a page fault or MMU access error.
  */
 #define HL_INFO_HW_IP_INFO		0
 #define HL_INFO_HW_EVENTS		1
@@ -362,60 +297,21 @@
 #define HL_INFO_SYNC_MANAGER		14
 #define HL_INFO_TOTAL_ENERGY		15
 #define HL_INFO_PLL_FREQUENCY		16
-#define HL_INFO_POWER			17
-#define HL_INFO_OPEN_STATS		18
-#define HL_INFO_DRAM_REPLACED_ROWS	21
-#define HL_INFO_DRAM_PENDING_ROWS	22
-#define HL_INFO_LAST_ERR_OPEN_DEV_TIME	23
-#define HL_INFO_CS_TIMEOUT_EVENT	24
-#define HL_INFO_RAZWI_EVENT		25
 
-#define HL_INFO_VERSION_MAX_LEN		128
+#define HL_INFO_VERSION_MAX_LEN	128
 #define HL_INFO_CARD_NAME_MAX_LEN	16
 
-/**
- * struct hl_info_hw_ip_info - hardware information on various IPs in the ASIC
- * @sram_base_address: The first SRAM physical base address that is free to be
- *                     used by the user.
- * @dram_base_address: The first DRAM virtual or physical base address that is
- *                     free to be used by the user.
- * @dram_size: The DRAM size that is available to the user.
- * @sram_size: The SRAM size that is available to the user.
- * @num_of_events: The number of events that can be received from the f/w. This
- *                 is needed so the user can what is the size of the h/w events
- *                 array he needs to pass to the kernel when he wants to fetch
- *                 the event counters.
- * @device_id: PCI device ID of the ASIC.
- * @module_id: Module ID of the ASIC for mezzanine cards in servers
- *             (From OCP spec).
- * @first_available_interrupt_id: The first available interrupt ID for the user
- *                                to be used when it works with user interrupts.
- * @server_type: Server type that the Gaudi ASIC is currently installed in.
- *               The value is according to enum hl_server_type
- * @cpld_version: CPLD version on the board.
- * @psoc_pci_pll_nr: PCI PLL NR value. Needed by the profiler in some ASICs.
- * @psoc_pci_pll_nf: PCI PLL NF value. Needed by the profiler in some ASICs.
- * @psoc_pci_pll_od: PCI PLL OD value. Needed by the profiler in some ASICs.
- * @psoc_pci_pll_div_factor: PCI PLL DIV factor value. Needed by the profiler
- *                           in some ASICs.
- * @tpc_enabled_mask: Bit-mask that represents which TPCs are enabled. Relevant
- *                    for Goya/Gaudi only.
- * @dram_enabled: Whether the DRAM is enabled.
- * @cpucp_version: The CPUCP f/w version.
- * @card_name: The card name as passed by the f/w.
- * @dram_page_size: The DRAM physical page size.
- */
 struct hl_info_hw_ip_info {
 	__u64 sram_base_address;
 	__u64 dram_base_address;
 	__u64 dram_size;
 	__u32 sram_size;
 	__u32 num_of_events;
-	__u32 device_id;
-	__u32 module_id;
+	__u32 device_id; /* PCI Device ID */
+	__u32 module_id; /* For mezzanine cards in servers (From OCP spec.) */
 	__u32 reserved;
 	__u16 first_available_interrupt_id;
-	__u16 server_type;
+	__u16 reserved2;
 	__u32 cpld_version;
 	__u32 psoc_pci_pll_nr;
 	__u32 psoc_pci_pll_nf;
@@ -426,7 +322,7 @@
 	__u8 pad[2];
 	__u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
 	__u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
-	__u64 reserved2;
+	__u64 reserved3;
 	__u64 dram_page_size;
 };
 
@@ -489,27 +385,15 @@
 	__u64 replay_cnt;
 };
 
-enum hl_clk_throttling_type {
-	HL_CLK_THROTTLE_TYPE_POWER,
-	HL_CLK_THROTTLE_TYPE_THERMAL,
-	HL_CLK_THROTTLE_TYPE_MAX
-};
-
-/* clk_throttling_reason masks */
-#define HL_CLK_THROTTLE_POWER		(1 << HL_CLK_THROTTLE_TYPE_POWER)
-#define HL_CLK_THROTTLE_THERMAL		(1 << HL_CLK_THROTTLE_TYPE_THERMAL)
+#define HL_CLK_THROTTLE_POWER	0x1
+#define HL_CLK_THROTTLE_THERMAL	0x2
 
 /**
  * struct hl_info_clk_throttle - clock throttling reason
  * @clk_throttling_reason: each bit represents a clk throttling reason
- * @clk_throttling_timestamp_us: represents CPU timestamp in microseconds of the start-event
- * @clk_throttling_duration_ns: the clock throttle time in nanosec
  */
 struct hl_info_clk_throttle {
 	__u32 clk_throttling_reason;
-	__u32 pad;
-	__u64 clk_throttling_timestamp_us[HL_CLK_THROTTLE_TYPE_MAX];
-	__u64 clk_throttling_duration_ns[HL_CLK_THROTTLE_TYPE_MAX];
 };
 
 /**
@@ -527,24 +411,6 @@
 };
 
 /**
- * struct hl_open_stats_info - device open statistics information
- * @open_counter: ever growing counter, increased on each successful dev open
- * @last_open_period_ms: duration (ms) device was open last time
- */
-struct hl_open_stats_info {
-	__u64 open_counter;
-	__u64 last_open_period_ms;
-};
-
-/**
- * struct hl_power_info - power information
- * @power: power consumption
- */
-struct hl_power_info {
-	__u64 power;
-};
-
-/**
  * struct hl_info_sync_manager - sync manager information
  * @first_available_sync_object: first available sob
  * @first_available_monitor: first available monitor
@@ -587,51 +453,6 @@
 	__u64 ctx_validation_drop_cnt;
 };
 
-/**
- * struct hl_info_last_err_open_dev_time - last error boot information.
- * @timestamp: timestamp of last time the device was opened and error occurred.
- */
-struct hl_info_last_err_open_dev_time {
-	__s64 timestamp;
-};
-
-/**
- * struct hl_info_cs_timeout_event - last CS timeout information.
- * @timestamp: timestamp when last CS timeout event occurred.
- * @seq: sequence number of last CS timeout event.
- */
-struct hl_info_cs_timeout_event {
-	__s64 timestamp;
-	__u64 seq;
-};
-
-#define HL_RAZWI_PAGE_FAULT 0
-#define HL_RAZWI_MMU_ACCESS_ERROR 1
-
-/**
- * struct hl_info_razwi_event - razwi information.
- * @timestamp: timestamp of razwi.
- * @addr: address which accessing it caused razwi.
- * @engine_id_1: engine id of the razwi initiator, if it was initiated by engine that does not
- *               have engine id it will be set to U16_MAX.
- * @engine_id_2: second engine id of razwi initiator. Might happen that razwi have 2 possible
- *               engines which one them caused the razwi. In that case, it will contain the
- *               second possible engine id, otherwise it will be set to U16_MAX.
- * @no_engine_id: if razwi initiator does not have engine id, this field will be set to 1,
- *                otherwise 0.
- * @error_type: cause of razwi, page fault or access error, otherwise it will be set to U8_MAX.
- * @pad: padding to 64 bit.
- */
-struct hl_info_razwi_event {
-	__s64 timestamp;
-	__u64 addr;
-	__u16 engine_id_1;
-	__u16 engine_id_2;
-	__u8 no_engine_id;
-	__u8 error_type;
-	__u8 pad[2];
-};
-
 enum gaudi_dcores {
 	HL_GAUDI_WS_DCORE,
 	HL_GAUDI_WN_DCORE,
@@ -639,30 +460,33 @@
 	HL_GAUDI_ES_DCORE
 };
 
-/**
- * struct hl_info_args - Main structure to retrieve device related information.
- * @return_pointer: User space address of the relevant structure related to HL_INFO_* operation
- *                  mentioned in @op.
- * @return_size: Size of the structure used in @return_pointer, just like "size" in "snprintf", it
- *               limits how many bytes the kernel can write. For hw_events array, the size should be
- *               hl_info_hw_ip_info.num_of_events * sizeof(__u32).
- * @op: Defines which type of information to be retrieved. Refer HL_INFO_* for details.
- * @dcore_id: DCORE id for which the information is relevant (for Gaudi refer to enum gaudi_dcores).
- * @ctx_id: Context ID of the user. Currently not in use.
- * @period_ms: Period value, in milliseconds, for utilization rate in range 100ms - 1000ms in 100 ms
- *             resolution. Currently not in use.
- * @pll_index: Index as defined in hl_<asic type>_pll_index enumeration.
- * @pad: Padding to 64 bit.
- */
 struct hl_info_args {
+	/* Location of relevant struct in userspace */
 	__u64 return_pointer;
+	/*
+	 * The size of the return value. Just like "size" in "snprintf",
+	 * it limits how many bytes the kernel can write
+	 *
+	 * For hw_events array, the size should be
+	 * hl_info_hw_ip_info.num_of_events * sizeof(__u32)
+	 */
 	__u32 return_size;
+
+	/* HL_INFO_* */
 	__u32 op;
 
 	union {
+		/* Dcore id for which the information is relevant.
+		 * For Gaudi refer to 'enum gaudi_dcores'
+		 */
 		__u32 dcore_id;
+		/* Context ID - Currently not in use */
 		__u32 ctx_id;
+		/* Period value for utilization rate (100ms - 1000ms, in 100ms
+		 * resolution.
+		 */
 		__u32 period_ms;
+		/* PLL frequency retrieval */
 		__u32 pll_index;
 	};
 
@@ -680,10 +504,7 @@
 #define HL_MAX_CB_SIZE		(0x200000 - 32)
 
 /* Indicates whether the command buffer should be mapped to the device's MMU */
-#define HL_CB_FLAGS_MAP			0x1
-
-/* Used with HL_CB_OP_INFO opcode to get the device va address for kernel mapped CB */
-#define HL_CB_FLAGS_GET_DEVICE_VA	0x2
+#define HL_CB_FLAGS_MAP		0x1
 
 struct hl_cb_in {
 	/* Handle of CB or 0 if we want to create one */
@@ -705,16 +526,11 @@
 		/* Handle of CB */
 		__u64 cb_handle;
 
-		union {
-			/* Information about CB */
-			struct {
-				/* Usage count of CB */
-				__u32 usage_cnt;
-				__u32 pad;
-			};
-
-			/* CB mapped address to device MMU */
-			__u64 device_va;
+		/* Information about CB */
+		struct {
+			/* Usage count of CB */
+			__u32 usage_cnt;
+			__u32 pad;
 		};
 	};
 };
@@ -758,21 +574,12 @@
 		__u64 cb_handle;
 
 		/* Relevant only when HL_CS_FLAGS_WAIT or
-		 * HL_CS_FLAGS_COLLECTIVE_WAIT is set
+		 * HL_CS_FLAGS_COLLECTIVE_WAIT is set.
 		 * This holds address of array of u64 values that contain
-		 * signal CS sequence numbers. The wait described by
-		 * this job will listen on all those signals
-		 * (wait event per signal)
+		 * signal CS sequence numbers. The wait described by this job
+		 * will listen on all those signals (wait event per signal)
 		 */
 		__u64 signal_seq_arr;
-
-		/*
-		 * Relevant only when HL_CS_FLAGS_WAIT or
-		 * HL_CS_FLAGS_COLLECTIVE_WAIT is set
-		 * along with HL_CS_FLAGS_ENCAP_SIGNALS.
-		 * This is the CS sequence which has the encapsulated signals.
-		 */
-		__u64 encaps_signal_seq;
 	};
 
 	/* Index of queue to put the CB on */
@@ -790,17 +597,6 @@
 		 * Number of entries in signal_seq_arr
 		 */
 		__u32 num_signal_seq_arr;
-
-		/* Relevant only when HL_CS_FLAGS_WAIT or
-		 * HL_CS_FLAGS_COLLECTIVE_WAIT is set along
-		 * with HL_CS_FLAGS_ENCAP_SIGNALS
-		 * This set the signals range that the user want to wait for
-		 * out of the whole reserved signals range.
-		 * e.g if the signals range is 20, and user don't want
-		 * to wait for signal 8, so he set this offset to 7, then
-		 * he call the API again with 9 and so on till 20.
-		 */
-		__u32 encaps_signal_offset;
 	};
 
 	/* HL_CS_CHUNK_FLAGS_* */
@@ -825,30 +621,6 @@
 #define HL_CS_FLAGS_STAGED_SUBMISSION		0x40
 #define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST	0x80
 #define HL_CS_FLAGS_STAGED_SUBMISSION_LAST	0x100
-#define HL_CS_FLAGS_CUSTOM_TIMEOUT		0x200
-#define HL_CS_FLAGS_SKIP_RESET_ON_TIMEOUT	0x400
-
-/*
- * The encapsulated signals CS is merged into the existing CS ioctls.
- * In order to use this feature need to follow the below procedure:
- * 1. Reserve signals, set the CS type to HL_CS_FLAGS_RESERVE_SIGNALS_ONLY
- *    the output of this API will be the SOB offset from CFG_BASE.
- *    this address will be used to patch CB cmds to do the signaling for this
- *    SOB by incrementing it's value.
- *    for reverting the reservation use HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY
- *    CS type, note that this might fail if out-of-sync happened to the SOB
- *    value, in case other signaling request to the same SOB occurred between
- *    reserve-unreserve calls.
- * 2. Use the staged CS to do the encapsulated signaling jobs.
- *    use HL_CS_FLAGS_STAGED_SUBMISSION and HL_CS_FLAGS_STAGED_SUBMISSION_FIRST
- *    along with HL_CS_FLAGS_ENCAP_SIGNALS flag, and set encaps_signal_offset
- *    field. This offset allows app to wait on part of the reserved signals.
- * 3. Use WAIT/COLLECTIVE WAIT CS along with HL_CS_FLAGS_ENCAP_SIGNALS flag
- *    to wait for the encapsulated signals.
- */
-#define HL_CS_FLAGS_ENCAP_SIGNALS		0x800
-#define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY	0x1000
-#define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY	0x2000
 
 #define HL_CS_STATUS_SUCCESS		0
 
@@ -863,33 +635,15 @@
 	__u64 chunks_execute;
 
 	union {
-		/*
-		 * Sequence number of a staged submission CS
-		 * valid only if HL_CS_FLAGS_STAGED_SUBMISSION is set and
-		 * HL_CS_FLAGS_STAGED_SUBMISSION_FIRST is unset.
+		/* this holds address of array of hl_cs_chunk for store phase -
+		 * Currently not in use
+		 */
+		__u64 chunks_store;
+
+		/* Sequence number of a staged submission CS
+		 * valid only if HL_CS_FLAGS_STAGED_SUBMISSION is set
 		 */
 		__u64 seq;
-
-		/*
-		 * Encapsulated signals handle id
-		 * Valid for two flows:
-		 * 1. CS with encapsulated signals:
-		 *    when HL_CS_FLAGS_STAGED_SUBMISSION and
-		 *    HL_CS_FLAGS_STAGED_SUBMISSION_FIRST
-		 *    and HL_CS_FLAGS_ENCAP_SIGNALS are set.
-		 * 2. unreserve signals:
-		 *    valid when HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY is set.
-		 */
-		__u32 encaps_sig_handle_id;
-
-		/* Valid only when HL_CS_FLAGS_RESERVE_SIGNALS_ONLY is set */
-		struct {
-			/* Encapsulated signals number */
-			__u32 encaps_signals_count;
-
-			/* Encapsulated signals queue index (stream) */
-			__u32 encaps_signals_q_idx;
-		};
 	};
 
 	/* Number of chunks in restore phase array. Maximum number is
@@ -902,10 +656,8 @@
 	 */
 	__u32 num_chunks_execute;
 
-	/* timeout in seconds - valid only if HL_CS_FLAGS_CUSTOM_TIMEOUT
-	 * is set
-	 */
-	__u32 timeout;
+	/* Number of chunks in restore phase array - Currently not in use */
+	__u32 num_chunks_store;
 
 	/* HL_CS_FLAGS_* */
 	__u32 cs_flags;
@@ -915,39 +667,14 @@
 };
 
 struct hl_cs_out {
-	union {
-		/*
-		 * seq holds the sequence number of the CS to pass to wait
-		 * ioctl. All values are valid except for 0 and ULLONG_MAX
-		 */
-		__u64 seq;
-
-		/* Valid only when HL_CS_FLAGS_RESERVE_SIGNALS_ONLY is set */
-		struct {
-			/* This is the resereved signal handle id */
-			__u32 handle_id;
-
-			/* This is the signals count */
-			__u32 count;
-		};
-	};
-
-	/* HL_CS_STATUS */
+	/*
+	 * seq holds the sequence number of the CS to pass to wait ioctl. All
+	 * values are valid except for 0 and ULLONG_MAX
+	 */
+	__u64 seq;
+	/* HL_CS_STATUS_* */
 	__u32 status;
-
-	/*
-	 * SOB base address offset
-	 * Valid only when HL_CS_FLAGS_RESERVE_SIGNALS_ONLY or HL_CS_FLAGS_SIGNAL is set
-	 */
-	__u32 sob_base_addr_offset;
-
-	/*
-	 * Count of completed signals in SOB before current signal submission.
-	 * Valid only when (HL_CS_FLAGS_ENCAP_SIGNALS & HL_CS_FLAGS_STAGED_SUBMISSION)
-	 * or HL_CS_FLAGS_SIGNAL is set
-	 */
-	__u16 sob_count_before_submission;
-	__u16 pad[3];
+	__u32 pad;
 };
 
 union hl_cs_args {
@@ -955,88 +682,21 @@
 	struct hl_cs_out out;
 };
 
-#define HL_WAIT_CS_FLAGS_INTERRUPT		0x2
-#define HL_WAIT_CS_FLAGS_INTERRUPT_MASK		0xFFF00000
-#define HL_WAIT_CS_FLAGS_MULTI_CS		0x4
-#define HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ	0x10
-
-#define HL_WAIT_MULTI_CS_LIST_MAX_LEN	32
-
 struct hl_wait_cs_in {
-	union {
-		struct {
-			/*
-			 * In case of wait_cs holds the CS sequence number.
-			 * In case of wait for multi CS hold a user pointer to
-			 * an array of CS sequence numbers
-			 */
-			__u64 seq;
-			/* Absolute timeout to wait for command submission
-			 * in microseconds
-			 */
-			__u64 timeout_us;
-		};
-
-		struct {
-			union {
-				/* User address for completion comparison.
-				 * upon interrupt, driver will compare the value pointed
-				 * by this address with the supplied target value.
-				 * in order not to perform any comparison, set address
-				 * to all 1s.
-				 * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT is set
-				 */
-				__u64 addr;
-
-				/* cq_counters_handle to a kernel mapped cb which contains
-				 * cq counters.
-				 * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ is set
-				 */
-				__u64 cq_counters_handle;
-			};
-
-			/* Target value for completion comparison */
-			__u64 target;
-		};
-	};
-
+	/* Command submission sequence number */
+	__u64 seq;
+	/* Absolute timeout to wait in microseconds */
+	__u64 timeout_us;
 	/* Context ID - Currently not in use */
 	__u32 ctx_id;
-
-	/* HL_WAIT_CS_FLAGS_*
-	 * If HL_WAIT_CS_FLAGS_INTERRUPT is set, this field should include
-	 * interrupt id according to HL_WAIT_CS_FLAGS_INTERRUPT_MASK, in order
-	 * not to specify an interrupt id ,set mask to all 1s.
-	 */
-	__u32 flags;
-
-	union {
-		struct {
-			/* Multi CS API info- valid entries in multi-CS array */
-			__u8 seq_arr_len;
-			__u8 pad[7];
-		};
-
-		/* Absolute timeout to wait for an interrupt in microseconds.
-		 * Relevant only when HL_WAIT_CS_FLAGS_INTERRUPT is set
-		 */
-		__u64 interrupt_timeout_us;
-	};
-
-	/*
-	 * cq counter offset inside the counters cb pointed by cq_counters_handle above.
-	 * upon interrupt, driver will compare the value pointed
-	 * by this address (cq_counters_handle + cq_counters_offset)
-	 * with the supplied target value.
-	 * relevant only when HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ is set
-	 */
-	__u64 cq_counters_offset;
+	__u32 pad;
 };
 
 #define HL_WAIT_CS_STATUS_COMPLETED	0
 #define HL_WAIT_CS_STATUS_BUSY		1
 #define HL_WAIT_CS_STATUS_TIMEDOUT	2
 #define HL_WAIT_CS_STATUS_ABORTED	3
+#define HL_WAIT_CS_STATUS_INTERRUPTED	4
 
 #define HL_WAIT_CS_STATUS_FLAG_GONE		0x1
 #define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD	0x2
@@ -1046,15 +706,8 @@
 	__u32 status;
 	/* HL_WAIT_CS_STATUS_FLAG* */
 	__u32 flags;
-	/*
-	 * valid only if HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD is set
-	 * for wait_cs: timestamp of CS completion
-	 * for wait_multi_cs: timestamp of FIRST CS completion
-	 */
+	/* valid only if HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD is set */
 	__s64 timestamp_nsec;
-	/* multi CS completion bitmap */
-	__u32 cs_completion_map;
-	__u32 pad;
 };
 
 union hl_wait_cs_args {
@@ -1072,16 +725,11 @@
 #define HL_MEM_OP_UNMAP			3
 /* Opcode to map a hw block */
 #define HL_MEM_OP_MAP_BLOCK		4
-/* Opcode to create DMA-BUF object for an existing device memory allocation
- * and to export an FD of that DMA-BUF back to the caller
- */
-#define HL_MEM_OP_EXPORT_DMABUF_FD	5
 
 /* Memory flags */
 #define HL_MEM_CONTIGUOUS	0x1
 #define HL_MEM_SHARED		0x2
 #define HL_MEM_USERPTR		0x4
-#define HL_MEM_FORCE_HINT	0x8
 
 struct hl_mem_in {
 	union {
@@ -1147,26 +795,11 @@
 			/* Virtual address returned from HL_MEM_OP_MAP */
 			__u64 device_virt_addr;
 		} unmap;
-
-		/* HL_MEM_OP_EXPORT_DMABUF_FD */
-		struct {
-			/* Handle returned from HL_MEM_OP_ALLOC. In Gaudi,
-			 * where we don't have MMU for the device memory, the
-			 * driver expects a physical address (instead of
-			 * a handle) in the device memory space.
-			 */
-			__u64 handle;
-			/* Size of memory allocation. Relevant only for GAUDI */
-			__u64 mem_size;
-		} export_dmabuf_fd;
 	};
 
 	/* HL_MEM_OP_* */
 	__u32 op;
-	/* HL_MEM_* flags.
-	 * For the HL_MEM_OP_EXPORT_DMABUF_FD opcode, this field holds the
-	 * DMA-BUF file/FD flags.
-	 */
+	/* HL_MEM_* flags */
 	__u32 flags;
 	/* Context ID - Currently not in use */
 	__u32 ctx_id;
@@ -1203,13 +836,6 @@
 
 			__u32 pad;
 		};
-
-		/* Returned in HL_MEM_OP_EXPORT_DMABUF_FD. Represents the
-		 * DMA-BUF object that was created to describe a memory
-		 * allocation on the device's memory space. The FD should be
-		 * passed to the importer driver
-		 */
-		__s32 fd;
 	};
 };
 
@@ -1373,8 +999,8 @@
  * Each JOB will be enqueued on a specific queue, according to the user's input.
  * There can be more then one JOB per queue.
  *
- * The CS IOCTL will receive two sets of JOBS. One set is for "restore" phase
- * and a second set is for "execution" phase.
+ * The CS IOCTL will receive three sets of JOBS. One set is for "restore" phase,
+ * a second set is for "execution" phase and a third set is for "store" phase.
  * The JOBS on the "restore" phase are enqueued only after context-switch
  * (or if its the first CS for this context). The user can also order the
  * driver to run the "restore" phase explicitly
@@ -1431,8 +1057,7 @@
  * EIO       - The CS was aborted (usually because the device was reset)
  * ENODEV    - The device wants to do hard-reset (so user need to close FD)
  *
- * The driver also returns a custom define in case the IOCTL call returned 0.
- * The define can be one of the following:
+ * The driver also returns a custom define inside the IOCTL which can be:
  *
  * HL_WAIT_CS_STATUS_COMPLETED   - The CS has been completed successfully (0)
  * HL_WAIT_CS_STATUS_BUSY        - The CS is still executing (0)
@@ -1440,6 +1065,8 @@
  *                                 (ETIMEDOUT)
  * HL_WAIT_CS_STATUS_ABORTED     - The CS was aborted, usually because the
  *                                 device was reset (EIO)
+ * HL_WAIT_CS_STATUS_INTERRUPTED - Waiting for the CS was interrupted (EINTR)
+ *
  */
 
 #define HL_IOCTL_WAIT_CS			\
diff --git a/original/uapi/misc/uacce/hisi_qm.h b/original/uapi/misc/uacce/hisi_qm.h
index 1faef5f..6435f0b 100644
--- a/original/uapi/misc/uacce/hisi_qm.h
+++ b/original/uapi/misc/uacce/hisi_qm.h
@@ -16,7 +16,6 @@
 
 #define HISI_QM_API_VER_BASE "hisi_qm_v1"
 #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
-#define HISI_QM_API_VER3_BASE "hisi_qm_v3"
 
 /* UACCE_CMD_QM_SET_QP_CTX: Set qp algorithm type */
 #define UACCE_CMD_QM_SET_QP_CTX	_IOWR('H', 10, struct hisi_qp_ctx)
diff --git a/original/uapi/mtd/mtd-abi.h b/original/uapi/mtd/mtd-abi.h
index b869990..65b9db9 100644
--- a/original/uapi/mtd/mtd-abi.h
+++ b/original/uapi/mtd/mtd-abi.h
@@ -205,8 +205,6 @@
  * without OOB, e.g., NOR flash.
  */
 #define MEMWRITE		_IOWR('M', 24, struct mtd_write_req)
-/* Erase a given range of user data (must be in mode %MTD_FILE_MODE_OTP_USER) */
-#define OTPERASE		_IOW('M', 25, struct otp_info)
 
 /*
  * Obsolete legacy interface. Keep it in order not to break userspace
diff --git a/original/uapi/rdma/bnxt_re-abi.h b/original/uapi/rdma/bnxt_re-abi.h
index b1de99b..dc52e3c 100644
--- a/original/uapi/rdma/bnxt_re-abi.h
+++ b/original/uapi/rdma/bnxt_re-abi.h
@@ -49,14 +49,7 @@
 #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT		0x18
 
 enum {
-	BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL,
-	BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
-};
-
-enum bnxt_re_wqe_mode {
-	BNXT_QPLIB_WQE_MODE_STATIC	= 0x00,
-	BNXT_QPLIB_WQE_MODE_VARIABLE	= 0x01,
-	BNXT_QPLIB_WQE_MODE_INVALID	= 0x02,
+	BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
 };
 
 struct bnxt_re_uctx_resp {
@@ -69,8 +62,6 @@
 	__aligned_u64 comp_mask;
 	__u32 chip_id0;
 	__u32 chip_id1;
-	__u32 mode;
-	__u32 rsvd1; /* padding */
 };
 
 /*
diff --git a/original/uapi/rdma/efa-abi.h b/original/uapi/rdma/efa-abi.h
index 08035cc..f89fbb5 100644
--- a/original/uapi/rdma/efa-abi.h
+++ b/original/uapi/rdma/efa-abi.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-2-Clause) */
 /*
- * Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All rights reserved.
+ * Copyright 2018-2020 Amazon.com, Inc. or its affiliates. All rights reserved.
  */
 
 #ifndef EFA_ABI_USER_H
@@ -52,20 +52,11 @@
 	__u8 reserved_30[2];
 };
 
-enum {
-	EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0,
-};
-
 struct efa_ibv_create_cq {
 	__u32 comp_mask;
 	__u32 cq_entry_size;
 	__u16 num_sub_cqs;
-	__u8 flags;
-	__u8 reserved_58[5];
-};
-
-enum {
-	EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0,
+	__u8 reserved_50[6];
 };
 
 struct efa_ibv_create_cq_resp {
@@ -74,9 +65,7 @@
 	__aligned_u64 q_mmap_key;
 	__aligned_u64 q_mmap_size;
 	__u16 cq_idx;
-	__u8 reserved_d0[2];
-	__u32 db_off;
-	__aligned_u64 db_mmap_key;
+	__u8 reserved_d0[6];
 };
 
 enum {
@@ -117,7 +106,6 @@
 enum {
 	EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
 	EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
-	EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
 };
 
 struct efa_ibv_ex_query_device_resp {
diff --git a/original/uapi/rdma/hns-abi.h b/original/uapi/rdma/hns-abi.h
index f6fde06..90b739d 100644
--- a/original/uapi/rdma/hns-abi.h
+++ b/original/uapi/rdma/hns-abi.h
@@ -77,19 +77,15 @@
 	HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
 	HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1,
 	HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2,
-	HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5,
 };
 
 struct hns_roce_ib_create_qp_resp {
 	__aligned_u64 cap_flags;
-	__aligned_u64 dwqe_mmap_key;
 };
 
 struct hns_roce_ib_alloc_ucontext_resp {
 	__u32	qp_tab_size;
 	__u32	cqe_size;
-	__u32	srq_tab_size;
-	__u32	reserved;
 };
 
 struct hns_roce_ib_alloc_pd_resp {
diff --git a/original/uapi/rdma/i40iw-abi.h b/original/uapi/rdma/i40iw-abi.h
new file mode 100644
index 0000000..79890ba
--- /dev/null
+++ b/original/uapi/rdma/i40iw-abi.h
@@ -0,0 +1,107 @@
+/*
+ * Copyright (c) 2006 - 2016 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 I40IW_ABI_H
+#define I40IW_ABI_H
+
+#include <linux/types.h>
+
+#define I40IW_ABI_VER 5
+
+struct i40iw_alloc_ucontext_req {
+	__u32 reserved32;
+	__u8 userspace_ver;
+	__u8 reserved8[3];
+};
+
+struct i40iw_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 kernel_ver;
+	__u8 reserved[3];
+};
+
+struct i40iw_alloc_pd_resp {
+	__u32 pd_id;
+	__u8 reserved[4];
+};
+
+struct i40iw_create_cq_req {
+	__aligned_u64 user_cq_buffer;
+	__aligned_u64 user_shadow_area;
+};
+
+struct i40iw_create_qp_req {
+	__aligned_u64 user_wqe_buffers;
+	__aligned_u64 user_compl_ctx;
+
+	/* UDA QP PHB */
+	__aligned_u64 user_sq_phb;	/* place for VA of the sq phb buff */
+	__aligned_u64 user_rq_phb;	/* place for VA of the rq phb buff */
+};
+
+enum i40iw_memreg_type {
+	IW_MEMREG_TYPE_MEM = 0x0000,
+	IW_MEMREG_TYPE_QP = 0x0001,
+	IW_MEMREG_TYPE_CQ = 0x0002,
+};
+
+struct i40iw_mem_reg_req {
+	__u16 reg_type;		/* Memory, QP or CQ */
+	__u16 cq_pages;
+	__u16 rq_pages;
+	__u16 sq_pages;
+};
+
+struct i40iw_create_cq_resp {
+	__u32 cq_id;
+	__u32 cq_size;
+	__u32 mmap_db_index;
+	__u32 reserved;
+};
+
+struct i40iw_create_qp_resp {
+	__u32 qp_id;
+	__u32 actual_sq_size;
+	__u32 actual_rq_size;
+	__u32 i40iw_drv_opt;
+	__u16 push_idx;
+	__u8  lsmm;
+	__u8  rsvd2;
+};
+
+#endif
diff --git a/original/uapi/rdma/ib_user_ioctl_verbs.h b/original/uapi/rdma/ib_user_ioctl_verbs.h
index 3072e5d..2248379 100644
--- a/original/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/original/uapi/rdma/ib_user_ioctl_verbs.h
@@ -240,7 +240,6 @@
 	RDMA_DRIVER_OCRDMA,
 	RDMA_DRIVER_NES,
 	RDMA_DRIVER_I40IW,
-	RDMA_DRIVER_IRDMA = RDMA_DRIVER_I40IW,
 	RDMA_DRIVER_VMW_PVRDMA,
 	RDMA_DRIVER_QEDR,
 	RDMA_DRIVER_HNS,
diff --git a/original/uapi/rdma/ib_user_mad.h b/original/uapi/rdma/ib_user_mad.h
index 10b5f6a..90c0cf2 100644
--- a/original/uapi/rdma/ib_user_mad.h
+++ b/original/uapi/rdma/ib_user_mad.h
@@ -143,7 +143,7 @@
  */
 struct ib_user_mad {
 	struct ib_user_mad_hdr hdr;
-	__aligned_u64	data[];
+	__aligned_u64	data[0];
 };
 
 /*
diff --git a/original/uapi/rdma/irdma-abi.h b/original/uapi/rdma/irdma-abi.h
deleted file mode 100644
index a7085e0..0000000
--- a/original/uapi/rdma/irdma-abi.h
+++ /dev/null
@@ -1,111 +0,0 @@
-/* SPDX-License-Identifier: (GPL-2.0 WITH Linux-syscall-note) OR Linux-OpenIB */
-/*
- * Copyright (c) 2006 - 2021 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.
- */
-
-#ifndef IRDMA_ABI_H
-#define IRDMA_ABI_H
-
-#include <linux/types.h>
-
-/* irdma must support legacy GEN_1 i40iw kernel
- * and user-space whose last ABI ver is 5
- */
-#define IRDMA_ABI_VER 5
-
-enum irdma_memreg_type {
-	IRDMA_MEMREG_TYPE_MEM  = 0,
-	IRDMA_MEMREG_TYPE_QP   = 1,
-	IRDMA_MEMREG_TYPE_CQ   = 2,
-};
-
-struct irdma_alloc_ucontext_req {
-	__u32 rsvd32;
-	__u8 userspace_ver;
-	__u8 rsvd8[3];
-};
-
-struct irdma_alloc_ucontext_resp {
-	__u32 max_pds;
-	__u32 max_qps;
-	__u32 wq_size; /* size of the WQs (SQ+RQ) in the mmaped area */
-	__u8 kernel_ver;
-	__u8 rsvd[3];
-	__aligned_u64 feature_flags;
-	__aligned_u64 db_mmap_key;
-	__u32 max_hw_wq_frags;
-	__u32 max_hw_read_sges;
-	__u32 max_hw_inline;
-	__u32 max_hw_rq_quanta;
-	__u32 max_hw_wq_quanta;
-	__u32 min_hw_cq_size;
-	__u32 max_hw_cq_size;
-	__u16 max_hw_sq_chunk;
-	__u8 hw_rev;
-	__u8 rsvd2;
-};
-
-struct irdma_alloc_pd_resp {
-	__u32 pd_id;
-	__u8 rsvd[4];
-};
-
-struct irdma_resize_cq_req {
-	__aligned_u64 user_cq_buffer;
-};
-
-struct irdma_create_cq_req {
-	__aligned_u64 user_cq_buf;
-	__aligned_u64 user_shadow_area;
-};
-
-struct irdma_create_qp_req {
-	__aligned_u64 user_wqe_bufs;
-	__aligned_u64 user_compl_ctx;
-};
-
-struct irdma_mem_reg_req {
-	__u16 reg_type; /* enum irdma_memreg_type */
-	__u16 cq_pages;
-	__u16 rq_pages;
-	__u16 sq_pages;
-};
-
-struct irdma_modify_qp_req {
-	__u8 sq_flush;
-	__u8 rq_flush;
-	__u8 rsvd[6];
-};
-
-struct irdma_create_cq_resp {
-	__u32 cq_id;
-	__u32 cq_size;
-};
-
-struct irdma_create_qp_resp {
-	__u32 qp_id;
-	__u32 actual_sq_size;
-	__u32 actual_rq_size;
-	__u32 irdma_drv_opt;
-	__u16 push_idx;
-	__u8 lsmm;
-	__u8 rsvd;
-	__u32 qp_caps;
-};
-
-struct irdma_modify_qp_resp {
-	__aligned_u64 push_wqe_mmap_key;
-	__aligned_u64 push_db_mmap_key;
-	__u16 push_offset;
-	__u8 push_valid;
-	__u8 rsvd[5];
-};
-
-struct irdma_create_ah_resp {
-	__u32 ah_id;
-	__u8 rsvd[4];
-};
-#endif /* IRDMA_ABI_H */
diff --git a/original/uapi/rdma/mlx5-abi.h b/original/uapi/rdma/mlx5-abi.h
index 86be4a9..27905a0 100644
--- a/original/uapi/rdma/mlx5-abi.h
+++ b/original/uapi/rdma/mlx5-abi.h
@@ -50,7 +50,6 @@
 	MLX5_QP_FLAG_ALLOW_SCATTER_CQE	= 1 << 8,
 	MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE	= 1 << 9,
 	MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
-	MLX5_QP_FLAG_DCI_STREAM	= 1 << 11,
 };
 
 enum {
@@ -102,8 +101,6 @@
 	MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
 	MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY    = 1UL << 1,
 	MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE               = 1UL << 2,
-	MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS           = 1UL << 3,
-	MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS	   = 1UL << 4,
 };
 
 enum mlx5_user_cmds_supp_uhw {
@@ -239,11 +236,6 @@
 	__u32 reserved;
 };
 
-struct mlx5_ib_dci_streams_caps {
-	__u8 max_log_num_concurent;
-	__u8 max_log_num_errored;
-};
-
 enum mlx5_ib_query_dev_resp_flags {
 	/* Support 128B CQE compression */
 	MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
@@ -272,14 +264,12 @@
 	struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
 	struct mlx5_ib_striding_rq_caps striding_rq_caps;
 	__u32	tunnel_offloads_caps; /* enum mlx5_ib_tunnel_offloads */
-	struct  mlx5_ib_dci_streams_caps dci_streams_caps;
-	__u16 reserved;
+	__u32	reserved;
 };
 
 enum mlx5_ib_create_cq_flags {
 	MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD	= 1 << 0,
 	MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX  = 1 << 1,
-	MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS	= 1 << 2,
 };
 
 struct mlx5_ib_create_cq {
@@ -320,11 +310,6 @@
 	__u32	reserved;
 };
 
-struct mlx5_ib_create_qp_dci_streams {
-	__u8 log_num_concurent;
-	__u8 log_num_errored;
-};
-
 struct mlx5_ib_create_qp {
 	__aligned_u64 buf_addr;
 	__aligned_u64 db_addr;
@@ -339,8 +324,7 @@
 		__aligned_u64 access_key;
 	};
 	__u32  ece_options;
-	struct  mlx5_ib_create_qp_dci_streams dci_streams;
-	__u16 reserved;
+	__u32  reserved;
 };
 
 /* RX Hash function flags */
diff --git a/original/uapi/rdma/mlx5_user_ioctl_cmds.h b/original/uapi/rdma/mlx5_user_ioctl_cmds.h
index e539c84..3fd9b38 100644
--- a/original/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/original/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -41,25 +41,6 @@
 	MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
 };
 
-enum mlx5_ib_dm_methods {
-	MLX5_IB_METHOD_DM_MAP_OP_ADDR  = (1U << UVERBS_ID_NS_SHIFT),
-	MLX5_IB_METHOD_DM_QUERY,
-};
-
-enum mlx5_ib_dm_map_op_addr_attrs {
-	MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
-	MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
-	MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
-	MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
-};
-
-enum mlx5_ib_query_dm_attrs {
-	MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
-	MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
-	MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
-	MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
-};
-
 enum mlx5_ib_alloc_dm_attrs {
 	MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
 	MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
@@ -173,7 +154,6 @@
 	MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
 	MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
 	MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
-	MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
 };
 
 enum mlx5_ib_devx_umem_dereg_attrs {
@@ -252,7 +232,7 @@
 	MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
 
-#define MLX5_IB_DW_MATCH_PARAM 0xA0
+#define MLX5_IB_DW_MATCH_PARAM 0x90
 
 struct mlx5_ib_match_params {
 	__u32	match_params[MLX5_IB_DW_MATCH_PARAM];
@@ -320,13 +300,4 @@
 
 };
 
-enum mlx5_ib_device_methods {
-	MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
-};
-
-enum mlx5_ib_query_port_attrs {
-	MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
-	MLX5_IB_ATTR_QUERY_PORT,
-};
-
 #endif
diff --git a/original/uapi/rdma/mlx5_user_ioctl_verbs.h b/original/uapi/rdma/mlx5_user_ioctl_verbs.h
index a21ca8e..56b26ea 100644
--- a/original/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/original/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -83,30 +83,5 @@
 	MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
 };
 
-enum mlx5_ib_uapi_query_port_flags {
-	MLX5_IB_UAPI_QUERY_PORT_VPORT			= 1 << 0,
-	MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID		= 1 << 1,
-	MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX	= 1 << 2,
-	MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX	= 1 << 3,
-	MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0		= 1 << 4,
-	MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID	= 1 << 5,
-};
-
-struct mlx5_ib_uapi_reg {
-	__u32 value;
-	__u32 mask;
-};
-
-struct mlx5_ib_uapi_query_port {
-	__aligned_u64 flags;
-	__u16 vport;
-	__u16 vport_vhca_id;
-	__u16 esw_owner_vhca_id;
-	__u16 rsvd0;
-	__aligned_u64 vport_steering_icm_rx;
-	__aligned_u64 vport_steering_icm_tx;
-	struct mlx5_ib_uapi_reg reg_c0;
-};
-
 #endif
 
diff --git a/original/uapi/rdma/rdma_netlink.h b/original/uapi/rdma/rdma_netlink.h
index e50c357..d2f5b83 100644
--- a/original/uapi/rdma/rdma_netlink.h
+++ b/original/uapi/rdma/rdma_netlink.h
@@ -293,12 +293,6 @@
 
 	RDMA_NLDEV_CMD_RES_MR_GET_RAW,
 
-	RDMA_NLDEV_CMD_RES_CTX_GET, /* can dump */
-
-	RDMA_NLDEV_CMD_RES_SRQ_GET, /* can dump */
-
-	RDMA_NLDEV_CMD_STAT_GET_STATUS,
-
 	RDMA_NLDEV_NUM_OPS
 };
 
@@ -539,21 +533,6 @@
 
 	RDMA_NLDEV_ATTR_RES_RAW,	/* binary */
 
-	RDMA_NLDEV_ATTR_RES_CTX,		/* nested table */
-	RDMA_NLDEV_ATTR_RES_CTX_ENTRY,		/* nested table */
-
-	RDMA_NLDEV_ATTR_RES_SRQ,		/* nested table */
-	RDMA_NLDEV_ATTR_RES_SRQ_ENTRY,		/* nested table */
-	RDMA_NLDEV_ATTR_RES_SRQN,		/* u32 */
-
-	RDMA_NLDEV_ATTR_MIN_RANGE,		/* u32 */
-	RDMA_NLDEV_ATTR_MAX_RANGE,		/* u32 */
-
-	RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,	/* u8 */
-
-	RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,	/* u32 */
-	RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC, /* u8 */
-
 	/*
 	 * Always the end
 	 */
diff --git a/original/uapi/rdma/rdma_user_rxe.h b/original/uapi/rdma/rdma_user_rxe.h
index f09c5c9..068433e 100644
--- a/original/uapi/rdma/rdma_user_rxe.h
+++ b/original/uapi/rdma/rdma_user_rxe.h
@@ -98,21 +98,8 @@
 			__u32	remote_qpn;
 			__u32	remote_qkey;
 			__u16	pkey_index;
-			__u16	reserved;
-			__u32	ah_num;
-			__u32	pad[4];
-			struct rxe_av av;
 		} ud;
-		struct {
-			__aligned_u64	addr;
-			__aligned_u64	length;
-			__u32		mr_lkey;
-			__u32		mw_rkey;
-			__u32		rkey;
-			__u32		access;
-		} mw;
 		/* reg is only used by the kernel and is not part of the uapi */
-#ifdef __KERNEL__
 		struct {
 			union {
 				struct ib_mr *mr;
@@ -121,7 +108,6 @@
 			__u32	     key;
 			__u32	     access;
 		} reg;
-#endif
 	} wr;
 };
 
@@ -145,13 +131,14 @@
 	__u32			sge_offset;
 	__u32			reserved;
 	union {
-		__DECLARE_FLEX_ARRAY(__u8, inline_data);
-		__DECLARE_FLEX_ARRAY(struct rxe_sge, sge);
+		__u8		inline_data[0];
+		struct rxe_sge	sge[0];
 	};
 };
 
 struct rxe_send_wqe {
 	struct rxe_send_wr	wr;
+	struct rxe_av		av;
 	__u32			status;
 	__u32			state;
 	__aligned_u64		iova;
@@ -171,11 +158,6 @@
 	struct rxe_dma_info	dma;
 };
 
-struct rxe_create_ah_resp {
-	__u32 ah_num;
-	__u32 reserved;
-};
-
 struct rxe_create_cq_resp {
 	struct mminfo mi;
 };
diff --git a/original/uapi/scsi/fc/fc_els.h b/original/uapi/scsi/fc/fc_els.h
index c9812c5..91d4be9 100644
--- a/original/uapi/scsi/fc/fc_els.h
+++ b/original/uapi/scsi/fc/fc_els.h
@@ -41,7 +41,6 @@
 	ELS_REC =	0x13,	/* read exchange concise */
 	ELS_SRR =	0x14,	/* sequence retransmission request */
 	ELS_FPIN =	0x16,	/* Fabric Performance Impact Notification */
-	ELS_EDC =	0x17,	/* Exchange Diagnostic Capabilities */
 	ELS_RDP =	0x18,	/* Read Diagnostic Parameters */
 	ELS_RDF =	0x19,	/* Register Diagnostic Functions */
 	ELS_PRLI =	0x20,	/* process login */
@@ -112,7 +111,6 @@
 	[ELS_REC] =	"REC",			\
 	[ELS_SRR] =	"SRR",			\
 	[ELS_FPIN] =	"FPIN",			\
-	[ELS_EDC] =	"EDC",			\
 	[ELS_RDP] =	"RDP",			\
 	[ELS_RDF] =	"RDF",			\
 	[ELS_PRLI] =	"PRLI",			\
@@ -220,10 +218,6 @@
 enum fc_ls_tlv_dtag {
 	ELS_DTAG_LS_REQ_INFO =		0x00000001,
 		/* Link Service Request Information Descriptor */
-	ELS_DTAG_LNK_FAULT_CAP =	0x0001000D,
-		/* Link Fault Capability Descriptor */
-	ELS_DTAG_CG_SIGNAL_CAP =	0x0001000F,
-		/* Congestion Signaling Capability Descriptor */
 	ELS_DTAG_LNK_INTEGRITY =	0x00020001,
 		/* Link Integrity Notification Descriptor */
 	ELS_DTAG_DELIVERY =		0x00020002,
@@ -242,8 +236,6 @@
  */
 #define FC_LS_TLV_DTAG_INIT {					      \
 	{ ELS_DTAG_LS_REQ_INFO,		"Link Service Request Information" }, \
-	{ ELS_DTAG_LNK_FAULT_CAP,	"Link Fault Capability" },	      \
-	{ ELS_DTAG_CG_SIGNAL_CAP,	"Congestion Signaling Capability" },  \
 	{ ELS_DTAG_LNK_INTEGRITY,	"Link Integrity Notification" },      \
 	{ ELS_DTAG_DELIVERY,		"Delivery Notification Present" },    \
 	{ ELS_DTAG_PEER_CONGEST,	"Peer Congestion Notification" },     \
@@ -1152,102 +1144,4 @@
 };
 
 
-/*
- * Diagnostic Capability Descriptors for EDC ELS
- */
-
-/*
- * Diagnostic: Link Fault Capability Descriptor
- */
-struct fc_diag_lnkflt_desc {
-	__be32		desc_tag;	/* Descriptor Tag (0x0001000D) */
-	__be32		desc_len;	/* Length of Descriptor (in bytes).
-					 * Size of descriptor excluding
-					 * desc_tag and desc_len fields.
-					 * 12 bytes
-					 */
-	__be32		degrade_activate_threshold;
-	__be32		degrade_deactivate_threshold;
-	__be32		fec_degrade_interval;
-};
-
-enum fc_edc_cg_signal_cap_types {
-	/* Note: Capability: bits 31:4 Rsvd; bits 3:0 are capabilities */
-	EDC_CG_SIG_NOTSUPPORTED =	0x00, /* neither supported */
-	EDC_CG_SIG_WARN_ONLY =		0x01,
-	EDC_CG_SIG_WARN_ALARM =		0x02, /* both supported */
-};
-
-/*
- * Initializer useful for decoding table.
- * Please keep this in sync with the above definitions.
- */
-#define FC_EDC_CG_SIGNAL_CAP_TYPES_INIT {				\
-	{ EDC_CG_SIG_NOTSUPPORTED,	"Signaling Not Supported" },	\
-	{ EDC_CG_SIG_WARN_ONLY,		"Warning Signal" },		\
-	{ EDC_CG_SIG_WARN_ALARM,	"Warning and Alarm Signals" },	\
-}
-
-enum fc_diag_cg_sig_freq_types {
-	EDC_CG_SIGFREQ_CNT_MIN =	1,	/* Min Frequency Count */
-	EDC_CG_SIGFREQ_CNT_MAX =	999,	/* Max Frequency Count */
-
-	EDC_CG_SIGFREQ_SEC =		0x1,	/* Units: seconds */
-	EDC_CG_SIGFREQ_MSEC =		0x2,	/* Units: milliseconds */
-};
-
-struct fc_diag_cg_sig_freq {
-	__be16		count;		/* Time between signals
-					 * note: upper 6 bits rsvd
-					 */
-	__be16		units;		/* Time unit for count
-					 * note: upper 12 bits rsvd
-					 */
-};
-
-/*
- * Diagnostic: Congestion Signaling Capability Descriptor
- */
-struct fc_diag_cg_sig_desc {
-	__be32		desc_tag;	/* Descriptor Tag (0x0001000F) */
-	__be32		desc_len;	/* Length of Descriptor (in bytes).
-					 * Size of descriptor excluding
-					 * desc_tag and desc_len fields.
-					 * 16 bytes
-					 */
-	__be32				xmt_signal_capability;
-	struct fc_diag_cg_sig_freq	xmt_signal_frequency;
-	__be32				rcv_signal_capability;
-	struct fc_diag_cg_sig_freq	rcv_signal_frequency;
-};
-
-/*
- * ELS_EDC - Exchange Diagnostic Capabilities
- */
-struct fc_els_edc {
-	__u8		edc_cmd;	/* command (0x17) */
-	__u8		edc_zero[3];	/* specified as zero - part of cmd */
-	__be32		desc_len;	/* Length of Descriptor List (in bytes).
-					 * Size of ELS excluding edc_cmd,
-					 * edc_zero and desc_len fields.
-					 */
-	struct fc_tlv_desc	desc[0];
-					/* Diagnostic Descriptor list */
-};
-
-/*
- * ELS EDC LS_ACC Response.
- */
-struct fc_els_edc_resp {
-	struct fc_els_ls_acc	acc_hdr;
-	__be32			desc_list_len;	/* Length of response (in
-						 * bytes). Excludes acc_hdr
-						 * and desc_list_len fields.
-						 */
-	struct fc_els_lsri_desc	lsri;
-	struct fc_tlv_desc	desc[0];
-				    /* Supported Diagnostic Descriptor list */
-};
-
-
 #endif /* _FC_ELS_H_ */
diff --git a/original/uapi/sound/asoc.h b/original/uapi/sound/asoc.h
index 0539492..da61398 100644
--- a/original/uapi/sound/asoc.h
+++ b/original/uapi/sound/asoc.h
@@ -240,8 +240,8 @@
 struct snd_soc_tplg_private {
 	__le32 size;	/* in bytes of private data */
 	union {
-		__DECLARE_FLEX_ARRAY(char, data);
-		__DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
+		char data[0];
+		struct snd_soc_tplg_vendor_array array[0];
 	};
 } __attribute__((packed));
 
diff --git a/original/uapi/sound/asound.h b/original/uapi/sound/asound.h
index 2d3e5df..535a722 100644
--- a/original/uapi/sound/asound.h
+++ b/original/uapi/sound/asound.h
@@ -56,10 +56,8 @@
  *                                                                          *
  ****************************************************************************/
 
-#define AES_IEC958_STATUS_SIZE		24
-
 struct snd_aes_iec958 {
-	unsigned char status[AES_IEC958_STATUS_SIZE]; /* AES/IEC958 channel status bits */
+	unsigned char status[24];	/* AES/IEC958 channel status bits */
 	unsigned char subcode[147];	/* AES/IEC958 subcode bits */
 	unsigned char pad;		/* nothing */
 	unsigned char dig_subframe[4];	/* AES/IEC958 subframe bits */
@@ -204,11 +202,6 @@
 #define	SNDRV_PCM_FORMAT_S24_BE	((__force snd_pcm_format_t) 7) /* low three bytes */
 #define	SNDRV_PCM_FORMAT_U24_LE	((__force snd_pcm_format_t) 8) /* low three bytes */
 #define	SNDRV_PCM_FORMAT_U24_BE	((__force snd_pcm_format_t) 9) /* low three bytes */
-/*
- * For S32/U32 formats, 'msbits' hardware parameter is often used to deliver information about the
- * available bit count in most significant bit. It's for the case of so-called 'left-justified' or
- * `right-padding` sample which has less width than 32 bit.
- */
 #define	SNDRV_PCM_FORMAT_S32_LE	((__force snd_pcm_format_t) 10)
 #define	SNDRV_PCM_FORMAT_S32_BE	((__force snd_pcm_format_t) 11)
 #define	SNDRV_PCM_FORMAT_U32_LE	((__force snd_pcm_format_t) 12)
@@ -306,8 +299,7 @@
 #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME     0x02000000  /* report absolute hardware link audio time, not reset on startup */
 #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME    0x04000000  /* report estimated link audio time */
 #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000  /* report synchronized audio/system time */
-#define SNDRV_PCM_INFO_EXPLICIT_SYNC	0x10000000	/* needs explicit sync of pointers and data */
-#define SNDRV_PCM_INFO_NO_REWINDS	0x20000000	/* hardware can only support monotonic changes of appl_ptr */
+
 #define SNDRV_PCM_INFO_DRAIN_TRIGGER	0x40000000		/* internal kernel flag - trigger in drain */
 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES	0x80000000	/* internal kernel flag - FIFO size is in frames */
 
@@ -718,7 +710,7 @@
  *  Raw MIDI section - /dev/snd/midi??
  */
 
-#define SNDRV_RAWMIDI_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 2)
+#define SNDRV_RAWMIDI_VERSION		SNDRV_PROTOCOL_VERSION(2, 0, 1)
 
 enum {
 	SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
@@ -744,38 +736,12 @@
 	unsigned char reserved[64];	/* reserved for future use */
 };
 
-#define SNDRV_RAWMIDI_MODE_FRAMING_MASK		(7<<0)
-#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT	0
-#define SNDRV_RAWMIDI_MODE_FRAMING_NONE		(0<<0)
-#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP	(1<<0)
-#define SNDRV_RAWMIDI_MODE_CLOCK_MASK		(7<<3)
-#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT		3
-#define SNDRV_RAWMIDI_MODE_CLOCK_NONE		(0<<3)
-#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME	(1<<3)
-#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC	(2<<3)
-#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW	(3<<3)
-
-#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16
-
-struct snd_rawmidi_framing_tstamp {
-	/* For now, frame_type is always 0. Midi 2.0 is expected to add new
-	 * types here. Applications are expected to skip unknown frame types.
-	 */
-	__u8 frame_type;
-	__u8 length; /* number of valid bytes in data field */
-	__u8 reserved[2];
-	__u32 tv_nsec;		/* nanoseconds */
-	__u64 tv_sec;		/* seconds */
-	__u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH];
-} __packed;
-
 struct snd_rawmidi_params {
 	int stream;
 	size_t buffer_size;		/* queue size in bytes */
 	size_t avail_min;		/* minimum avail bytes for wakeup */
 	unsigned int no_active_sensing: 1; /* do not send active sensing byte in close() */
-	unsigned int mode;		/* For input data only, frame incoming data */
-	unsigned char reserved[12];	/* reserved for future use */
+	unsigned char reserved[16];	/* reserved for future use */
 };
 
 #ifndef __KERNEL__
@@ -791,7 +757,6 @@
 
 #define SNDRV_RAWMIDI_IOCTL_PVERSION	_IOR('W', 0x00, int)
 #define SNDRV_RAWMIDI_IOCTL_INFO	_IOR('W', 0x01, struct snd_rawmidi_info)
-#define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int)
 #define SNDRV_RAWMIDI_IOCTL_PARAMS	_IOWR('W', 0x10, struct snd_rawmidi_params)
 #define SNDRV_RAWMIDI_IOCTL_STATUS	_IOWR('W', 0x20, struct snd_rawmidi_status)
 #define SNDRV_RAWMIDI_IOCTL_DROP	_IOW('W', 0x30, int)
@@ -1009,7 +974,7 @@
 #define SNDRV_CTL_ELEM_ACCESS_WRITE		(1<<1)
 #define SNDRV_CTL_ELEM_ACCESS_READWRITE		(SNDRV_CTL_ELEM_ACCESS_READ|SNDRV_CTL_ELEM_ACCESS_WRITE)
 #define SNDRV_CTL_ELEM_ACCESS_VOLATILE		(1<<2)	/* control value may be changed without a notification */
-/* (1 << 3) is unused. */
+// (1 << 3) is unused.
 #define SNDRV_CTL_ELEM_ACCESS_TLV_READ		(1<<4)	/* TLV read is possible */
 #define SNDRV_CTL_ELEM_ACCESS_TLV_WRITE		(1<<5)	/* TLV write is possible */
 #define SNDRV_CTL_ELEM_ACCESS_TLV_READWRITE	(SNDRV_CTL_ELEM_ACCESS_TLV_READ|SNDRV_CTL_ELEM_ACCESS_TLV_WRITE)
diff --git a/original/uapi/sound/firewire.h b/original/uapi/sound/firewire.h
index 39cf6eb..ae12826 100644
--- a/original/uapi/sound/firewire.h
+++ b/original/uapi/sound/firewire.h
@@ -13,7 +13,6 @@
 #define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE	0x746e736c
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION	0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL	0x7473636d
-#define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE	0x4d545244
 
 struct snd_firewire_event_common {
 	unsigned int type; /* SNDRV_FIREWIRE_EVENT_xxx */
@@ -66,12 +65,6 @@
 	struct snd_firewire_tascam_change changes[0];
 };
 
-struct snd_firewire_event_motu_register_dsp_change {
-	unsigned int type;
-	__u32 count;		/* The number of changes. */
-	__u32 changes[];	/* Encoded event for change of register DSP. */
-};
-
 union snd_firewire_event {
 	struct snd_firewire_event_common            common;
 	struct snd_firewire_event_lock_status       lock_status;
@@ -80,7 +73,6 @@
 	struct snd_firewire_event_digi00x_message   digi00x_message;
 	struct snd_firewire_event_tascam_control    tascam_control;
 	struct snd_firewire_event_motu_notification motu_notification;
-	struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
 };
 
 
@@ -88,9 +80,6 @@
 #define SNDRV_FIREWIRE_IOCTL_LOCK      _IO('H', 0xf9)
 #define SNDRV_FIREWIRE_IOCTL_UNLOCK    _IO('H', 0xfa)
 #define SNDRV_FIREWIRE_IOCTL_TASCAM_STATE _IOR('H', 0xfb, struct snd_firewire_tascam_state)
-#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_METER	_IOR('H', 0xfc, struct snd_firewire_motu_register_dsp_meter)
-#define SNDRV_FIREWIRE_IOCTL_MOTU_COMMAND_DSP_METER	_IOR('H', 0xfd, struct snd_firewire_motu_command_dsp_meter)
-#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_PARAMETER	_IOR('H', 0xfe, struct snd_firewire_motu_register_dsp_parameter)
 
 #define SNDRV_FIREWIRE_TYPE_DICE	1
 #define SNDRV_FIREWIRE_TYPE_FIREWORKS	2
@@ -119,143 +108,4 @@
 	__be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT];
 };
 
-/*
- * In below MOTU models, software is allowed to control their DSP by accessing to registers.
- *  - 828mk2
- *  - 896hd
- *  - Traveler
- *  - 8 pre
- *  - Ultralite
- *  - 4 pre
- *  - Audio Express
- *
- * On the other hand, the status of DSP is split into specific messages included in the sequence of
- * isochronous packet. ALSA firewire-motu driver gathers the messages and allow userspace applications
- * to read it via ioctl. In 828mk2, 896hd, and Traveler, hardware meter for all of physical inputs
- * are put into the message, while one pair of physical outputs is selected. The selection is done by
- * LSB one byte in asynchronous write quadlet transaction to 0x'ffff'f000'0b2c.
- *
- * I note that V3HD/V4HD uses asynchronous transaction for the purpose. The destination address is
- * registered to 0x'ffff'f000'0b38 and '0b3c by asynchronous write quadlet request. The size of
- * message differs between 23 and 51 quadlets. For the case, the number of mixer bus can be extended
- * up to 12.
- */
-
-#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT	24
-#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT	24
-#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT \
-	(SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT + SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT)
-
-/**
- * struct snd_firewire_motu_register_dsp_meter - the container for meter information in DSP
- *						 controlled by register access
- * @data: Signal level meters. The mapping between position and input/output channel is
- *	  model-dependent.
- *
- * The structure expresses the part of DSP status for hardware meter. The u8 storage includes linear
- * value for audio signal level between 0x00 and 0x7f.
- */
-struct snd_firewire_motu_register_dsp_meter {
-	__u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT];
-};
-
-#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT		4
-#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT	20
-#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT		10
-#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT	(SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT + 2)
-
-/**
- * snd_firewire_motu_register_dsp_parameter - the container for parameters of DSP controlled
- *					      by register access.
- * @mixer.source.gain: The gain of source to mixer.
- * @mixer.source.pan: The L/R balance of source to mixer.
- * @mixer.source.flag: The flag of source to mixer, including mute, solo.
- * @mixer.source.paired_balance: The L/R balance of paired source to mixer, only for 4 pre and
- *				 Audio Express.
- * @mixer.source.paired_width: The width of paired source to mixer, only for 4 pre and
- *			       Audio Express.
- * @mixer.output.paired_volume: The volume of paired output from mixer.
- * @mixer.output.paired_flag: The flag of paired output from mixer.
- * @output.main_paired_volume: The volume of paired main output.
- * @output.hp_paired_volume: The volume of paired hp output.
- * @output.hp_paired_assignment: The source assigned to paired hp output.
- * @output.reserved: Padding for 32 bit alignment for future extension.
- * @line_input.boost_flag: The flags of boost for line inputs, only for 828mk2 and Traveler.
- * @line_input.nominal_level_flag: The flags of nominal level for line inputs, only for 828mk2 and
- *				   Traveler.
- * @line_input.reserved: Padding for 32 bit alignment for future extension.
- * @input.gain_and_invert: The value including gain and invert for input, only for Ultralite, 4 pre
- *			   and Audio Express.
- * @input.flag: The flag of input; e.g. jack detection, phantom power, and pad, only for Ultralite,
- *		4 pre and Audio express.
- * @reserved: Padding so that the size of structure is kept to 512 byte, but for future extension.
- *
- * The structure expresses the set of parameters for DSP controlled by register access.
- */
-struct snd_firewire_motu_register_dsp_parameter {
-	struct {
-		struct {
-			__u8 gain[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
-			__u8 pan[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
-			__u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
-			__u8 paired_balance[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
-			__u8 paired_width[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
-		} source[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
-		struct {
-			__u8 paired_volume[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
-			__u8 paired_flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
-		} output;
-	} mixer;
-	struct {
-		__u8 main_paired_volume;
-		__u8 hp_paired_volume;
-		__u8 hp_paired_assignment;
-		__u8 reserved[5];
-	} output;
-	struct {
-		__u8 boost_flag;
-		__u8 nominal_level_flag;
-		__u8 reserved[6];
-	} line_input;
-	struct {
-		__u8 gain_and_invert[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
-		__u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
-	} input;
-	__u8 reserved[64];
-};
-
-/*
- * In below MOTU models, software is allowed to control their DSP by command in frame of
- * asynchronous transaction to 0x'ffff'0001'0000:
- *
- *  - 828 mk3 (FireWire only and Hybrid)
- *  - 896 mk3 (FireWire only and Hybrid)
- *  - Ultralite mk3 (FireWire only and Hybrid)
- *  - Traveler mk3
- *  - Track 16
- *
- * On the other hand, the states of hardware meter is split into specific messages included in the
- * sequence of isochronous packet. ALSA firewire-motu driver gathers the message and allow userspace
- * application to read it via ioctl.
- */
-
-#define SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT	400
-
-/**
- * struct snd_firewire_motu_command_dsp_meter - the container for meter information in DSP
- *						controlled by command
- * @data: Signal level meters. The mapping between position and signal channel is model-dependent.
- *
- * The structure expresses the part of DSP status for hardware meter. The 32 bit storage is
- * estimated to include IEEE 764 32 bit single precision floating point (binary32) value. It is
- * expected to be linear value (not logarithm) for audio signal level between 0.0 and +1.0.
- */
-struct snd_firewire_motu_command_dsp_meter {
-#ifdef __KERNEL__
-	__u32 data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT];
-#else
-	float data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT];
-#endif
-};
-
 #endif /* _UAPI_SOUND_FIREWIRE_H_INCLUDED */
diff --git a/original/uapi/sound/snd_ar_tokens.h b/original/uapi/sound/snd_ar_tokens.h
deleted file mode 100644
index 440c072..0000000
--- a/original/uapi/sound/snd_ar_tokens.h
+++ /dev/null
@@ -1,208 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-
-#ifndef __SND_AR_TOKENS_H__
-#define __SND_AR_TOKENS_H__
-
-#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER	0x1
-#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY	0x2
-
-#define APM_SUB_GRAPH_DIRECTION_TX		0x1
-#define APM_SUB_GRAPH_DIRECTION_RX		0x2
-
-/** Scenario ID Audio Playback */
-#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK          0x1
-/* Scenario ID Audio Record */
-#define APM_SUB_GRAPH_SID_AUDIO_RECORD            0x2
-/* Scenario ID Voice call. */
-#define APM_SUB_GRAPH_SID_VOICE_CALL              0x3
-
-/* container capability ID Pre/Post Processing (PP) */
-#define APM_CONTAINER_CAP_ID_PP                   0x1
-/* container capability ID Compression/Decompression (CD) */
-#define APM_CONTAINER_CAP_ID_CD                   0x2
-/* container capability ID End Point(EP) */
-#define APM_CONTAINER_CAP_ID_EP                   0x3
-/* container capability ID Offload (OLC) */
-#define APM_CONTAINER_CAP_ID_OLC                  0x4
-
-/* container graph position Stream */
-#define APM_CONT_GRAPH_POS_STREAM                 0x1
-/* container graph position Per Stream Per Device*/
-#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV        0x2
-/* container graph position Stream-Device */
-#define APM_CONT_GRAPH_POS_STR_DEV                0x3
-/* container graph position Global Device */
-#define APM_CONT_GRAPH_POS_GLOBAL_DEV             0x4
-
-#define APM_PROC_DOMAIN_ID_MDSP			0x1
-#define APM_PROC_DOMAIN_ID_ADSP			0x2
-#define APM_PROC_DOMAIN_ID_SDSP			0x4
-#define APM_PROC_DOMAIN_ID_CDSP			0x5
-
-#define PCM_INTERLEAVED			1
-#define PCM_DEINTERLEAVED_PACKED	2
-#define PCM_DEINTERLEAVED_UNPACKED	3
-#define AR_I2S_WS_SRC_EXTERNAL	0
-#define AR_I2S_WS_SRC_INTERNAL	1
-
-enum ar_event_types {
-	AR_EVENT_NONE = 0,
-	AR_PGA_DAPM_EVENT
-};
-
-/*
- * Kcontrol IDs
- */
-#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX	256
-#define SND_SOC_AR_TPLG_VOL_CTL			257
-
-/**
- * %AR_TKN_U32_SUB_GRAPH_INSTANCE_ID:		Sub Graph Instance Id
- *
- * %AR_TKN_U32_SUB_GRAPH_PERF_MODE:		Performance mode of subgraph
- *						APM_SUB_GRAPH_PERF_MODE_LOW_POWER = 1,
- *						APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY = 2
- *
- * %AR_TKN_U32_SUB_GRAPH_DIRECTION:		Direction of subgraph
- *						APM_SUB_GRAPH_DIRECTION_TX = 1,
- *						APM_SUB_GRAPH_DIRECTION_RX = 2
- *
- * %AR_TKN_U32_SUB_GRAPH_SCENARIO_ID:		Scenario ID for subgraph
- *						APM_SUB_GRAPH_SID_AUDIO_PLAYBACK = 1,
- *						APM_SUB_GRAPH_SID_AUDIO_RECORD = 2,
- *						APM_SUB_GRAPH_SID_VOICE_CALL = 3
- *
- * %AR_TKN_U32_CONTAINER_INSTANCE_ID:		Container Instance ID
- *
- * %AR_TKN_U32_CONTAINER_CAPABILITY_ID:		Container capability ID
- *						APM_CONTAINER_CAP_ID_PP = 1,
- *						APM_CONTAINER_CAP_ID_CD = 2,
- *						APM_CONTAINER_CAP_ID_EP = 3,
- *						APM_CONTAINER_CAP_ID_OLC = 4
- *
- * %AR_TKN_U32_CONTAINER_STACK_SIZE:		Stack size in the container.
- *
- * %AR_TKN_U32_CONTAINER_GRAPH_POS:		Graph Position
- *						APM_CONT_GRAPH_POS_STREAM = 1,
- *						APM_CONT_GRAPH_POS_PER_STR_PER_DEV = 2,
- *						APM_CONT_GRAPH_POS_STR_DEV = 3,
- *						APM_CONT_GRAPH_POS_GLOBAL_DEV = 4
- *
- * %AR_TKN_U32_CONTAINER_PROC_DOMAIN:		Processor domain of container
- *						APM_PROC_DOMAIN_ID_MDSP = 1,
- *						APM_PROC_DOMAIN_ID_ADSP = 2,
- *						APM_PROC_DOMAIN_ID_SDSP = 4,
- *						APM_PROC_DOMAIN_ID_CDSP = 5
- *
- * %AR_TKN_U32_MODULE_ID:			Module ID
- *
- * %AR_TKN_U32_MODULE_INSTANCE_ID:		Module Instance ID.
- *
- * %AR_TKN_U32_MODULE_MAX_IP_PORTS:		Module maximum input ports
- *
- * %AR_TKN_U32_MODULE_MAX_OP_PORTS:		Module maximum output ports.
- *
- * %AR_TKN_U32_MODULE_IN_PORTS:			Number of in ports
- *
- * %AR_TKN_U32_MODULE_OUT_PORTS:		Number of out ports.
- *
- * %AR_TKN_U32_MODULE_SRC_OP_PORT_ID:		Source module output port ID
- *
- * %AR_TKN_U32_MODULE_DST_IN_PORT_ID:		Destination module input port ID
- *
- * %AR_TKN_U32_MODULE_HW_IF_IDX:		Interface index types for I2S/LPAIF
- *
- * %AR_TKN_U32_MODULE_HW_IF_TYPE:		Interface type
- *						LPAIF = 0,
- *						LPAIF_RXTX = 1,
- *						LPAIF_WSA = 2,
- *						LPAIF_VA = 3,
- *						LPAIF_AXI = 4
- *
- * %AR_TKN_U32_MODULE_FMT_INTERLEAVE:		PCM Interleaving
- *						PCM_INTERLEAVED = 1,
- *						PCM_DEINTERLEAVED_PACKED = 2,
- *						PCM_DEINTERLEAVED_UNPACKED = 3
- *
- * %AR_TKN_U32_MODULE_FMT_DATA:			data format
- *						FIXED POINT = 1,
- *						IEC60958 PACKETIZED = 3,
- *						IEC60958 PACKETIZED NON LINEAR = 8,
- *						COMPR OVER PCM PACKETIZED = 7,
- *						IEC61937 PACKETIZED = 2,
- *						GENERIC COMPRESSED = 5
- *
- * %AR_TKN_U32_MODULE_FMT_SAMPLE_RATE:		sample rate
- *
- * %AR_TKN_U32_MODULE_FMT_BIT_DEPTH:		bit depth
- *
- * %AR_TKN_U32_MODULE_SD_LINE_IDX:		I2S serial data line idx
- *						I2S_SD0 = 1,
- *						I2S_SD1 = 2,
- *						I2S_SD2 = 3,
- *						I2S_SD3 = 4,
- *						I2S_QUAD01 = 5,
- *						I2S_QUAD23 = 6,
- *						I2S_6CHS = 7,
- *						I2S_8CHS = 8
- *
- * %AR_TKN_U32_MODULE_WS_SRC:			Word Select Source
- *						AR_I2S_WS_SRC_EXTERNAL = 0,
- *						AR_I2S_WS_SRC_INTERNAL = 1,
- *
- * %AR_TKN_U32_MODULE_FRAME_SZ_FACTOR:		Frame size factor
- *
- * %AR_TKN_U32_MODULE_LOG_CODE:			Log Module Code
- *
- * %AR_TKN_U32_MODULE_LOG_TAP_POINT_ID:		logging tap point of this module
- *
- * %AR_TKN_U32_MODULE_LOG_MODE:			logging mode
- *						LOG_WAIT = 0,
- *						LOG_IMMEDIATELY = 1
- *
- * %AR_TKN_DAI_INDEX:				dai index
- *
- */
-
-/* DAI Tokens */
-#define AR_TKN_DAI_INDEX			1
-/* SUB GRAPH Tokens */
-#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID	2
-#define AR_TKN_U32_SUB_GRAPH_PERF_MODE		3
-#define AR_TKN_U32_SUB_GRAPH_DIRECTION		4
-#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID	5
-
-/* Container Tokens */
-#define AR_TKN_U32_CONTAINER_INSTANCE_ID	100
-#define AR_TKN_U32_CONTAINER_CAPABILITY_ID	101
-#define AR_TKN_U32_CONTAINER_STACK_SIZE		102
-#define AR_TKN_U32_CONTAINER_GRAPH_POS		103
-#define AR_TKN_U32_CONTAINER_PROC_DOMAIN	104
-
-/* Module Tokens */
-#define AR_TKN_U32_MODULE_ID			200
-#define AR_TKN_U32_MODULE_INSTANCE_ID		201
-#define AR_TKN_U32_MODULE_MAX_IP_PORTS		202
-#define AR_TKN_U32_MODULE_MAX_OP_PORTS		203
-#define AR_TKN_U32_MODULE_IN_PORTS		204
-#define AR_TKN_U32_MODULE_OUT_PORTS		205
-#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID	206
-#define AR_TKN_U32_MODULE_DST_IN_PORT_ID	207
-#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID	208
-#define AR_TKN_U32_MODULE_DST_INSTANCE_ID	209
-
-
-#define AR_TKN_U32_MODULE_HW_IF_IDX		250
-#define AR_TKN_U32_MODULE_HW_IF_TYPE		251
-#define AR_TKN_U32_MODULE_FMT_INTERLEAVE	252
-#define AR_TKN_U32_MODULE_FMT_DATA		253
-#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE	254
-#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH		255
-#define AR_TKN_U32_MODULE_SD_LINE_IDX		256
-#define AR_TKN_U32_MODULE_WS_SRC		257
-#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR	258
-#define AR_TKN_U32_MODULE_LOG_CODE		259
-#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID	260
-#define AR_TKN_U32_MODULE_LOG_MODE		261
-
-#endif /* __SND_AR_TOKENS_H__ */
diff --git a/original/uapi/sound/snd_sst_tokens.h b/original/uapi/sound/snd_sst_tokens.h
index ff3748e..8ba0112 100644
--- a/original/uapi/sound/snd_sst_tokens.h
+++ b/original/uapi/sound/snd_sst_tokens.h
@@ -233,8 +233,6 @@
  *
  * %SKL_TKN_U32_ASTATE_CLK_SRC: Clock source for A-State entry
  *
- * %SKL_TKN_U32_FMT_CFG_IDX:    Format config index
- *
  * module_id and loadable flags dont have tokens as these values will be
  * read from the DSP FW manifest
  *
@@ -326,9 +324,7 @@
 	SKL_TKN_U32_ASTATE_COUNT,
 	SKL_TKN_U32_ASTATE_KCPS,
 	SKL_TKN_U32_ASTATE_CLK_SRC,
-
-	SKL_TKN_U32_FMT_CFG_IDX = 96,
-	SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX,
+	SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC,
 };
 
 #endif
diff --git a/original/uapi/sound/sof/tokens.h b/original/uapi/sound/sof/tokens.h
index b72fa38..a642bf3 100644
--- a/original/uapi/sound/sof/tokens.h
+++ b/original/uapi/sound/sof/tokens.h
@@ -51,7 +51,6 @@
 #define SOF_TKN_SCHED_CORE			203
 #define SOF_TKN_SCHED_FRAMES			204
 #define SOF_TKN_SCHED_TIME_DOMAIN		205
-#define SOF_TKN_SCHED_DYNAMIC_PIPELINE		206
 
 /* volume */
 #define SOF_TKN_VOLUME_RAMP_STEP_TYPE		250
@@ -140,9 +139,4 @@
 #define SOF_TKN_INTEL_HDA_RATE			1500
 #define SOF_TKN_INTEL_HDA_CH			1501
 
-/* AFE */
-#define SOF_TKN_MEDIATEK_AFE_RATE		1600
-#define SOF_TKN_MEDIATEK_AFE_CH			1601
-#define SOF_TKN_MEDIATEK_AFE_FORMAT		1602
-
 #endif
diff --git a/original/uapi/xen/gntdev.h b/original/uapi/xen/gntdev.h
index 7a71453..9ac5515 100644
--- a/original/uapi/xen/gntdev.h
+++ b/original/uapi/xen/gntdev.h
@@ -47,13 +47,7 @@
 /*
  * Inserts the grant references into the mapping table of an instance
  * of gntdev. N.B. This does not perform the mapping, which is deferred
- * until mmap() is called with @index as the offset. @index should be
- * considered opaque to userspace, with one exception: if no grant
- * references have ever been inserted into the mapping table of this
- * instance, @index will be set to 0. This is necessary to use gntdev
- * with userspace APIs that expect a file descriptor that can be
- * mmap()'d at offset 0, such as Wayland. If @count is set to 0, this
- * ioctl will fail.
+ * until mmap() is called with @index as the offset.
  */
 #define IOCTL_GNTDEV_MAP_GRANT_REF \
 _IOC(_IOC_NONE, 'G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))