Thread (80 messages) 80 messages, 6 authors, 2021-02-05

RE: [PATCH 20/22] RDMA/irdma: Add ABI definitions

flat view

From: Saleem, Shiraz <hidden>
Date: 2021-01-30 01:22:41
Also in: linux-rdma

Subject: Re: [PATCH 20/22] RDMA/irdma: Add ABI definitions

On Fri, Jan 22, 2021 at 05:48:25PM -0600, Shiraz Saleem wrote:
quoted
From: Mustafa Ismail <redacted>

Add ABI definitions for irdma.

Signed-off-by: Mustafa Ismail <redacted>
Signed-off-by: Shiraz Saleem <redacted>
include/uapi/rdma/irdma-abi.h | 140
++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 140 insertions(+)
 create mode 100644 include/uapi/rdma/irdma-abi.h
diff --git a/include/uapi/rdma/irdma-abi.h
b/include/uapi/rdma/irdma-abi.h new file mode 100644 index
0000000..d9c8ce1
+++ b/include/uapi/rdma/irdma-abi.h
@@ -0,0 +1,140 @@
+/* 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 6
I don't want to see this value increase, either this is ABI compatible with i40iw or it
is not and should be a new driver_id.
I am not sure I understand how it's possible without a ver. bump.
We support user-space libirdma with this driver as well as libi40iw. 

libi40iw - legacy support which is ABIv 4 & 5. GEN_1 devices only
libirdma - replaces libi40iw; supports i40iw (GEN1) driver and irdma
This should have a small diff against include/uapi/rdma/i40iw-abi.h that is
obviously compatible
quoted
+struct irdma_create_qp_resp {
+	__u32 qp_id;
+	__u32 actual_sq_size;
+	__u32 actual_rq_size;
+	__u32 irdma_drv_opt;
+	__u32 qp_caps;
+	__u16 rsvd1;
+	__u8 lsmm;
+	__u8 rsvd2;
+};
quoted
+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 rsvd;
+};
For instance these are almost the same, why put qp_caps in the middle?
Add it to the end so the whole thing is properly compatible with a single structure.

Jason
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help