Updated to v4.4.1 kernel headers.

Small modifications needed to allow compilation with the new headers:

- Manually modify bionic/libc/kernel/uapi/asm-mips/asm/siginfo.h to
  remove the uapi from the include.
- PR_XXX defines are now available for mips, so remove the definition
  from linker_mips.cpp.

Bug: 23789423
Change-Id: I6dc8a03b012426d3a937db15cb24d3a50fab5a8c
diff --git a/libc/kernel/uapi/linux/raid/md_p.h b/libc/kernel/uapi/linux/raid/md_p.h
index bdf8e7c..b24e5d6 100644
--- a/libc/kernel/uapi/linux/raid/md_p.h
+++ b/libc/kernel/uapi/linux/raid/md_p.h
@@ -49,21 +49,31 @@
 #define MD_DISK_ACTIVE 1
 #define MD_DISK_SYNC 2
 #define MD_DISK_REMOVED 3
-#define MD_DISK_WRITEMOSTLY 9
+#define MD_DISK_CLUSTER_ADD 4
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_DISK_CANDIDATE 5
+#define MD_DISK_WRITEMOSTLY 9
+#define MD_DISK_JOURNAL 18
+#define MD_DISK_ROLE_SPARE 0xffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_DISK_ROLE_FAULTY 0xfffe
+#define MD_DISK_ROLE_JOURNAL 0xfffd
+#define MD_DISK_ROLE_MAX 0xff00
 typedef struct mdp_device_descriptor_s {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __u32 number;
   __u32 major;
   __u32 minor;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __u32 raid_disk;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __u32 state;
   __u32 reserved[MD_SB_DESCRIPTOR_WORDS - 5];
 } mdp_disk_t;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MD_SB_MAGIC 0xa92b4efc
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MD_SB_CLEAN 0
 #define MD_SB_ERRORS 1
+#define MD_SB_CLUSTERED 5
 #define MD_SB_BITMAP_PRESENT 8
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct mdp_superblock_s {
@@ -163,37 +173,94 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __le64 data_size;
   __le64 super_offset;
-  __le64 recovery_offset;
-  __le32 dev_number;
+  union {
+    __le64 recovery_offset;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+    __le64 journal_tail;
+  };
+  __le32 dev_number;
   __le32 cnt_corrected_read;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __u8 device_uuid[16];
   __u8 devflags;
 #define WriteMostly1 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __u8 bblog_shift;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __le16 bblog_size;
   __le32 bblog_offset;
   __le64 utime;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __le64 events;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __le64 resync_offset;
   __le32 sb_csum;
   __le32 max_dev;
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __u8 pad3[64 - 32];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   __le16 dev_roles[0];
 };
 #define MD_FEATURE_BITMAP_OFFSET 1
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MD_FEATURE_RECOVERY_OFFSET 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MD_FEATURE_RESHAPE_ACTIVE 4
 #define MD_FEATURE_BAD_BLOCKS 8
 #define MD_FEATURE_REPLACEMENT 16
-/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MD_FEATURE_RESHAPE_BACKWARDS 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MD_FEATURE_NEW_OFFSET 64
 #define MD_FEATURE_RECOVERY_BITMAP 128
-#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET | MD_FEATURE_RECOVERY_OFFSET | MD_FEATURE_RESHAPE_ACTIVE | MD_FEATURE_BAD_BLOCKS | MD_FEATURE_REPLACEMENT | MD_FEATURE_RESHAPE_BACKWARDS | MD_FEATURE_NEW_OFFSET | MD_FEATURE_RECOVERY_BITMAP)
+#define MD_FEATURE_CLUSTERED 256
+#define MD_FEATURE_JOURNAL 512
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_FEATURE_ALL (MD_FEATURE_BITMAP_OFFSET | MD_FEATURE_RECOVERY_OFFSET | MD_FEATURE_RESHAPE_ACTIVE | MD_FEATURE_BAD_BLOCKS | MD_FEATURE_REPLACEMENT | MD_FEATURE_RESHAPE_BACKWARDS | MD_FEATURE_NEW_OFFSET | MD_FEATURE_RECOVERY_BITMAP | MD_FEATURE_CLUSTERED | MD_FEATURE_JOURNAL)
+struct r5l_payload_header {
+  __le16 type;
+  __le16 flags;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} __attribute__((__packed__));
+enum r5l_payload_type {
+  R5LOG_PAYLOAD_DATA = 0,
+  R5LOG_PAYLOAD_PARITY = 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  R5LOG_PAYLOAD_FLUSH = 2,
+};
+struct r5l_payload_data_parity {
+  struct r5l_payload_header header;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __le32 size;
+  __le64 location;
+  __le32 checksum[];
+} __attribute__((__packed__));
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum r5l_payload_data_parity_flag {
+  R5LOG_PAYLOAD_FLAG_DISCARD = 1,
+  R5LOG_PAYLOAD_FLAG_RESHAPED = 2,
+  R5LOG_PAYLOAD_FLAG_RESHAPING = 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct r5l_payload_flush {
+  struct r5l_payload_header header;
+  __le32 size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __le64 flush_stripes[];
+} __attribute__((__packed__));
+enum r5l_payload_flush_flag {
+  R5LOG_PAYLOAD_FLAG_FLUSH_STRIPE = 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct r5l_meta_block {
+  __le32 magic;
+  __le32 checksum;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __u8 version;
+  __u8 __zero_pading_1;
+  __le16 __zero_pading_2;
+  __le32 meta_size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  __le64 seq;
+  __le64 position;
+  struct r5l_payload_header payloads[];
+} __attribute__((__packed__));
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R5LOG_VERSION 0x1
+#define R5LOG_MAGIC 0x6433c509
 #endif
diff --git a/libc/kernel/uapi/linux/raid/md_u.h b/libc/kernel/uapi/linux/raid/md_u.h
index 7a9fa61..66ab2ba 100644
--- a/libc/kernel/uapi/linux/raid/md_u.h
+++ b/libc/kernel/uapi/linux/raid/md_u.h
@@ -48,68 +48,69 @@
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define STOP_ARRAY_RO _IO(MD_MAJOR, 0x33)
 #define RESTART_ARRAY_RW _IO(MD_MAJOR, 0x34)
+#define CLUSTERED_DISK_NACK _IO(MD_MAJOR, 0x35)
 #define MdpMinorShift 6
-typedef struct mdu_version_s {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct mdu_version_s {
   int major;
   int minor;
   int patchlevel;
-} mdu_version_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} mdu_version_t;
 typedef struct mdu_array_info_s {
   int major_version;
   int minor_version;
-  int patch_version;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int patch_version;
   int ctime;
   int level;
   int size;
-  int nr_disks;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int nr_disks;
   int raid_disks;
   int md_minor;
   int not_persistent;
-  int utime;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int utime;
   int state;
   int active_disks;
   int working_disks;
-  int failed_disks;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int failed_disks;
   int spare_disks;
   int layout;
   int chunk_size;
-} mdu_array_info_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} mdu_array_info_t;
 #define LEVEL_MULTIPATH (- 4)
 #define LEVEL_LINEAR (- 1)
 #define LEVEL_FAULTY (- 5)
-#define LEVEL_NONE (- 1000000)
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LEVEL_NONE (- 1000000)
 typedef struct mdu_disk_info_s {
   int number;
   int major;
-  int minor;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int minor;
   int raid_disk;
   int state;
 } mdu_disk_info_t;
-typedef struct mdu_start_info_s {
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct mdu_start_info_s {
   int major;
   int minor;
   int raid_disk;
-  int state;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int state;
 } mdu_start_info_t;
 typedef struct mdu_bitmap_file_s {
   char pathname[4096];
-} mdu_bitmap_file_t;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} mdu_bitmap_file_t;
 typedef struct mdu_param_s {
   int personality;
   int chunk_size;
-  int max_fault;
 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+  int max_fault;
 } mdu_param_t;
 #endif