Update to v6.0 kernel headers.

Kernel headers coming from:

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

Test: Boots on coral.
Test: Bionic unit tests pass.
Change-Id: I282de83f23b432bef58214108a93700bdadddf0f
diff --git a/libc/kernel/uapi/rdma/erdma-abi.h b/libc/kernel/uapi/rdma/erdma-abi.h
new file mode 100644
index 0000000..4df1757
--- /dev/null
+++ b/libc/kernel/uapi/rdma/erdma-abi.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ERDMA_USER_H__
+#define __ERDMA_USER_H__
+#include <linux/types.h>
+#define ERDMA_ABI_VERSION 1
+struct erdma_ureq_create_cq {
+  __aligned_u64 db_record_va;
+  __aligned_u64 qbuf_va;
+  __u32 qbuf_len;
+  __u32 rsvd0;
+};
+struct erdma_uresp_create_cq {
+  __u32 cq_id;
+  __u32 num_cqe;
+};
+struct erdma_ureq_create_qp {
+  __aligned_u64 db_record_va;
+  __aligned_u64 qbuf_va;
+  __u32 qbuf_len;
+  __u32 rsvd0;
+};
+struct erdma_uresp_create_qp {
+  __u32 qp_id;
+  __u32 num_sqe;
+  __u32 num_rqe;
+  __u32 rq_offset;
+};
+struct erdma_uresp_alloc_ctx {
+  __u32 dev_id;
+  __u32 pad;
+  __u32 sdb_type;
+  __u32 sdb_offset;
+  __aligned_u64 sdb;
+  __aligned_u64 rdb;
+  __aligned_u64 cdb;
+};
+#endif
diff --git a/libc/kernel/uapi/rdma/hfi/hfi1_user.h b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
index 3352907..6d58600 100644
--- a/libc/kernel/uapi/rdma/hfi/hfi1_user.h
+++ b/libc/kernel/uapi/rdma/hfi/hfi1_user.h
@@ -80,7 +80,7 @@
 struct hfi1_status {
   __aligned_u64 dev;
   __aligned_u64 port;
-  char freezemsg[0];
+  char freezemsg[];
 };
 enum sdma_req_opcode {
   EXPECTED = 0,
diff --git a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index 3b94907..766d5be 100644
--- a/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -191,6 +191,7 @@
   RDMA_DRIVER_QIB,
   RDMA_DRIVER_EFA,
   RDMA_DRIVER_SIW,
+  RDMA_DRIVER_ERDMA,
 };
 enum ib_uverbs_gid_type {
   IB_UVERBS_GID_TYPE_IB,
diff --git a/libc/kernel/uapi/rdma/ib_user_verbs.h b/libc/kernel/uapi/rdma/ib_user_verbs.h
index e24410e..552c80a 100644
--- a/libc/kernel/uapi/rdma/ib_user_verbs.h
+++ b/libc/kernel/uapi/rdma/ib_user_verbs.h
@@ -106,16 +106,16 @@
 };
 struct ib_uverbs_get_context {
   __aligned_u64 response;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_get_context_resp {
   __u32 async_fd;
   __u32 num_comp_vectors;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_query_device {
   __aligned_u64 response;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_query_device_resp {
   __aligned_u64 fw_ver;
@@ -208,7 +208,7 @@
   __aligned_u64 response;
   __u8 port_num;
   __u8 reserved[7];
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_query_port_resp {
   __u32 port_cap_flags;
@@ -236,11 +236,11 @@
 };
 struct ib_uverbs_alloc_pd {
   __aligned_u64 response;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_alloc_pd_resp {
   __u32 pd_handle;
-  __u32 driver_data[0];
+  __u32 driver_data[];
 };
 struct ib_uverbs_dealloc_pd {
   __u32 pd_handle;
@@ -249,11 +249,11 @@
   __aligned_u64 response;
   __u32 fd;
   __u32 oflags;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_open_xrcd_resp {
   __u32 xrcd_handle;
-  __u32 driver_data[0];
+  __u32 driver_data[];
 };
 struct ib_uverbs_close_xrcd {
   __u32 xrcd_handle;
@@ -265,13 +265,13 @@
   __aligned_u64 hca_va;
   __u32 pd_handle;
   __u32 access_flags;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_reg_mr_resp {
   __u32 mr_handle;
   __u32 lkey;
   __u32 rkey;
-  __u32 driver_data[0];
+  __u32 driver_data[];
 };
 struct ib_uverbs_rereg_mr {
   __aligned_u64 response;
@@ -282,12 +282,12 @@
   __aligned_u64 hca_va;
   __u32 pd_handle;
   __u32 access_flags;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_rereg_mr_resp {
   __u32 lkey;
   __u32 rkey;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_dereg_mr {
   __u32 mr_handle;
@@ -297,12 +297,12 @@
   __u32 pd_handle;
   __u8 mw_type;
   __u8 reserved[3];
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_alloc_mw_resp {
   __u32 mw_handle;
   __u32 rkey;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_dealloc_mw {
   __u32 mw_handle;
@@ -320,7 +320,7 @@
   __u32 comp_vector;
   __s32 comp_channel;
   __u32 reserved;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 enum ib_uverbs_ex_create_cq_flags {
   IB_UVERBS_CQ_FLAGS_TIMESTAMP_COMPLETION = 1 << 0,
@@ -349,12 +349,12 @@
   __aligned_u64 response;
   __u32 cq_handle;
   __u32 cqe;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_resize_cq_resp {
   __u32 cqe;
   __u32 reserved;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_poll_cq {
   __aligned_u64 response;
@@ -394,7 +394,7 @@
 struct ib_uverbs_poll_cq_resp {
   __u32 count;
   __u32 reserved;
-  struct ib_uverbs_wc wc[0];
+  struct ib_uverbs_wc wc[];
 };
 struct ib_uverbs_req_notify_cq {
   __u32 cq_handle;
@@ -476,7 +476,7 @@
   __u8 qp_type;
   __u8 is_srq;
   __u8 reserved;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 enum ib_uverbs_create_qp_mask {
   IB_UVERBS_CREATE_QP_MASK_IND_TABLE = 1UL << 0,
@@ -511,7 +511,7 @@
   __u32 qpn;
   __u8 qp_type;
   __u8 reserved[7];
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_create_qp_resp {
   __u32 qp_handle;
@@ -547,7 +547,7 @@
   __aligned_u64 response;
   __u32 qp_handle;
   __u32 attr_mask;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_query_qp_resp {
   struct ib_uverbs_qp_dest dest;
@@ -580,7 +580,7 @@
   __u8 alt_timeout;
   __u8 sq_sig_all;
   __u8 reserved[5];
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_modify_qp {
   struct ib_uverbs_qp_dest dest;
@@ -685,7 +685,7 @@
   __u32 wr_count;
   __u32 sge_count;
   __u32 wqe_size;
-  struct ib_uverbs_send_wr send_wr[0];
+  struct ib_uverbs_send_wr send_wr[];
 };
 struct ib_uverbs_post_send_resp {
   __u32 bad_wr;
@@ -701,7 +701,7 @@
   __u32 wr_count;
   __u32 sge_count;
   __u32 wqe_size;
-  struct ib_uverbs_recv_wr recv_wr[0];
+  struct ib_uverbs_recv_wr recv_wr[];
 };
 struct ib_uverbs_post_recv_resp {
   __u32 bad_wr;
@@ -712,7 +712,7 @@
   __u32 wr_count;
   __u32 sge_count;
   __u32 wqe_size;
-  struct ib_uverbs_recv_wr recv[0];
+  struct ib_uverbs_recv_wr recv[];
 };
 struct ib_uverbs_post_srq_recv_resp {
   __u32 bad_wr;
@@ -723,11 +723,11 @@
   __u32 pd_handle;
   __u32 reserved;
   struct ib_uverbs_ah_attr attr;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_create_ah_resp {
   __u32 ah_handle;
-  __u32 driver_data[0];
+  __u32 driver_data[];
 };
 struct ib_uverbs_destroy_ah {
   __u32 ah_handle;
@@ -737,14 +737,14 @@
   __u32 qp_handle;
   __u16 mlid;
   __u16 reserved;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_detach_mcast {
   __u8 gid[16];
   __u32 qp_handle;
   __u16 mlid;
   __u16 reserved;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_flow_spec_hdr {
   __u32 type;
@@ -944,7 +944,7 @@
   __u8 reserved[2];
   __u8 port;
   __u32 flags;
-  struct ib_uverbs_flow_spec_hdr flow_specs[0];
+  struct ib_uverbs_flow_spec_hdr flow_specs[];
 };
 struct ib_uverbs_create_flow {
   __u32 comp_mask;
@@ -966,7 +966,7 @@
   __u32 max_wr;
   __u32 max_sge;
   __u32 srq_limit;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_create_xsrq {
   __aligned_u64 response;
@@ -979,27 +979,27 @@
   __u32 max_num_tags;
   __u32 xrcd_handle;
   __u32 cq_handle;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_create_srq_resp {
   __u32 srq_handle;
   __u32 max_wr;
   __u32 max_sge;
   __u32 srqn;
-  __u32 driver_data[0];
+  __u32 driver_data[];
 };
 struct ib_uverbs_modify_srq {
   __u32 srq_handle;
   __u32 attr_mask;
   __u32 max_wr;
   __u32 srq_limit;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_query_srq {
   __aligned_u64 response;
   __u32 srq_handle;
   __u32 reserved;
-  __aligned_u64 driver_data[0];
+  __aligned_u64 driver_data[];
 };
 struct ib_uverbs_query_srq_resp {
   __u32 max_wr;
@@ -1056,7 +1056,7 @@
 struct ib_uverbs_ex_create_rwq_ind_table {
   __u32 comp_mask;
   __u32 log_ind_tbl_size;
-  __u32 wq_handles[0];
+  __u32 wq_handles[];
 };
 struct ib_uverbs_ex_create_rwq_ind_table_resp {
   __u32 comp_mask;
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index 862abcb..dc3eb1f 100644
--- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -179,6 +179,7 @@
   MLX5_IB_OBJECT_VAR,
   MLX5_IB_OBJECT_PP,
   MLX5_IB_OBJECT_UAR,
+  MLX5_IB_OBJECT_STEERING_ANCHOR,
 };
 enum mlx5_ib_flow_matcher_create_attrs {
   MLX5_IB_ATTR_FLOW_MATCHER_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
@@ -195,6 +196,19 @@
   MLX5_IB_METHOD_FLOW_MATCHER_CREATE = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_METHOD_FLOW_MATCHER_DESTROY,
 };
+enum mlx5_ib_flow_steering_anchor_create_attrs {
+  MLX5_IB_ATTR_STEERING_ANCHOR_CREATE_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_STEERING_ANCHOR_FT_TYPE,
+  MLX5_IB_ATTR_STEERING_ANCHOR_PRIORITY,
+  MLX5_IB_ATTR_STEERING_ANCHOR_FT_ID,
+};
+enum mlx5_ib_flow_steering_anchor_destroy_attrs {
+  MLX5_IB_ATTR_STEERING_ANCHOR_DESTROY_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_steering_anchor_methods {
+  MLX5_IB_METHOD_STEERING_ANCHOR_CREATE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_METHOD_STEERING_ANCHOR_DESTROY,
+};
 enum mlx5_ib_device_query_context_attrs {
   MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
diff --git a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index c3c3f89..f68c0b3 100644
--- a/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -43,6 +43,7 @@
   MLX5_IB_UAPI_DM_TYPE_MEMIC,
   MLX5_IB_UAPI_DM_TYPE_STEERING_SW_ICM,
   MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_SW_ICM,
+  MLX5_IB_UAPI_DM_TYPE_HEADER_MODIFY_PATTERN_SW_ICM,
 };
 enum mlx5_ib_uapi_devx_create_event_channel_flags {
   MLX5_IB_UAPI_DEVX_CR_EV_CH_FLAGS_OMIT_DATA = 1 << 0,
diff --git a/libc/kernel/uapi/rdma/rdma_user_cm.h b/libc/kernel/uapi/rdma/rdma_user_cm.h
index 7b1f7ee..37927f8 100644
--- a/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -145,7 +145,7 @@
 struct rdma_ucm_query_path_resp {
   __u32 num_paths;
   __u32 reserved;
-  struct ib_path_rec_data path_data[0];
+  struct ib_path_rec_data path_data[];
 };
 struct rdma_ucm_conn_param {
   __u32 qp_num;
diff --git a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
index 22adfaa..dbaf9ed 100644
--- a/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
+++ b/libc/kernel/uapi/rdma/rdma_user_ioctl_cmds.h
@@ -50,6 +50,6 @@
   __aligned_u64 reserved1;
   __u32 driver_id;
   __u32 reserved2;
-  struct ib_uverbs_attr attrs[0];
+  struct ib_uverbs_attr attrs[];
 };
 #endif