All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-next 0/5] Add scatter FCS support
@ 2016-04-17 14:19 Matan Barak
       [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  0 siblings, 1 reply; 15+ messages in thread
From: Matan Barak @ 2016-04-17 14:19 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

Hi Doug,

Frame Check Sequence (FCS) is an error detecting code that terminates
an Ethernet frame. When using Raw Ethernet, users sometimes want
to validate the FCS themselves, and therefore it should be scattered
to the receive buffers.

This series adds the above support.

The user can control scattering the FCS using Queue-Pair(QP) creation
flag called IB_QP_CREATE_SCATTER_FCS.

Also, to report this new device capability, we had to add a new
device capability flags in the uverbs response called
device_cap_flags_ex, since all the current device_cap_flags are
occupied.

device_cap_flags_ex 0-31 bits are identical to the legacy
device_cap_flags, and the upper 32 bits (32-63 bits) report new
extended device capabilities.

Devices that support scattering the FCS should report it in
device_cap_flags_ex using IB_DEVICE_RAW_SCATTER_FCS.

This patch depends on the mlx5 core shared code that was sent to both
IB and net trees and was already accepted by Dave Miller:
net/mlx5: Update mlx5_ifc hardware features
net/mlx5: Fix mlx5 ifc cmd_hca_cap bad offsets

Moreover, this patch conflicts with the LSO series (that will be
sent soon). The resolution of this conflict is available in
Mellanox's tree.

Thanks,
Majd and Matan

Majd Dibbiny (5):
  IB/core: Add extended device capability flags
  IB/core: Add Raw Scatter FCS device capability
  IB/core: Add Scatter FCS create flag
  IB/mlx5: Add Scatter FCS support for Raw Packet QP
  IB/mlx5: Report Scatter FCS device capability when supported

 drivers/infiniband/core/uverbs_cmd.c |  8 +++++++-
 drivers/infiniband/hw/mlx5/main.c    |  4 ++++
 drivers/infiniband/hw/mlx5/mlx5_ib.h |  1 +
 drivers/infiniband/hw/mlx5/qp.c      | 20 +++++++++++++++++++-
 include/rdma/ib_verbs.h              |  2 ++
 include/uapi/rdma/ib_user_verbs.h    |  1 +
 6 files changed, 34 insertions(+), 2 deletions(-)

-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH for-next 1/5] IB/core: Add extended device capability flags
       [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
@ 2016-04-17 14:19   ` Matan Barak
  2016-04-17 14:19   ` [PATCH for-next 2/5] IB/core: Add Raw Scatter FCS device capability Matan Barak
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Matan Barak @ 2016-04-17 14:19 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

From: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

Since all the uverbs device_cap_flags are occupied, we need a place to
expose more device capabilities.

This patch adds a new 64 bit device_cap_flags_ex to expose new
device capabilities.

The lower 32 bits will be identical to the original device_cap_flags,
The upper 32 bits will be new capabilities.

Signed-off-by: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/core/uverbs_cmd.c | 5 +++++
 include/uapi/rdma/ib_user_verbs.h    | 1 +
 2 files changed, 6 insertions(+)

diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 6fdc7ec..9acb849 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -3655,6 +3655,11 @@ int ib_uverbs_ex_query_device(struct ib_uverbs_file *file,
 	resp.hca_core_clock = attr.hca_core_clock;
 	resp.response_length += sizeof(resp.hca_core_clock);
 
+	if (ucore->outlen < resp.response_length + sizeof(resp.device_cap_flags_ex))
+		goto end;
+
+	resp.device_cap_flags_ex = attr.device_cap_flags;
+	resp.response_length += sizeof(resp.device_cap_flags_ex);
 end:
 	err = ib_copy_to_udata(ucore, &resp, resp.response_length);
 	return err;
diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h
index 8126c14..b6543d7 100644
--- a/include/uapi/rdma/ib_user_verbs.h
+++ b/include/uapi/rdma/ib_user_verbs.h
@@ -226,6 +226,7 @@ struct ib_uverbs_ex_query_device_resp {
 	struct ib_uverbs_odp_caps odp_caps;
 	__u64 timestamp_mask;
 	__u64 hca_core_clock; /* in KHZ */
+	__u64 device_cap_flags_ex;
 };
 
 struct ib_uverbs_query_port {
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH for-next 2/5] IB/core: Add Raw Scatter FCS device capability
       [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  2016-04-17 14:19   ` [PATCH for-next 1/5] IB/core: Add extended device capability flags Matan Barak
@ 2016-04-17 14:19   ` Matan Barak
  2016-04-17 14:19   ` [PATCH for-next 3/5] IB/core: Add Scatter FCS create flag Matan Barak
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Matan Barak @ 2016-04-17 14:19 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

From: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

Raw Scatter FCS device capability is set when the NIC supports
scattering the FCS to the receive buffers of Raw Packet QPs.

Signed-off-by: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 include/rdma/ib_verbs.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index fb2cef4..6d6172d 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -220,6 +220,7 @@ enum ib_device_cap_flags {
 	IB_DEVICE_ON_DEMAND_PAGING		= (1 << 31),
 	IB_DEVICE_SG_GAPS_REG			= (1ULL << 32),
 	IB_DEVICE_VIRTUAL_FUNCTION		= ((u64)1 << 33),
+	IB_DEVICE_RAW_SCATTER_FCS		= ((u64)1 << 34),
 };
 
 enum ib_signature_prot_cap {
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH for-next 3/5] IB/core: Add Scatter FCS create flag
       [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  2016-04-17 14:19   ` [PATCH for-next 1/5] IB/core: Add extended device capability flags Matan Barak
  2016-04-17 14:19   ` [PATCH for-next 2/5] IB/core: Add Raw Scatter FCS device capability Matan Barak
@ 2016-04-17 14:19   ` Matan Barak
  2016-04-17 14:19   ` [PATCH for-next 4/5] IB/mlx5: Add Scatter FCS support for Raw Packet QP Matan Barak
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 15+ messages in thread
From: Matan Barak @ 2016-04-17 14:19 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

From: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

Raw Packet QPs that were created with Scatter FCS flag, will scatter
the FCS into the receive buffers.

Signed-off-by: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/core/uverbs_cmd.c | 3 ++-
 include/rdma/ib_verbs.h              | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 9acb849..03e39c2 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1833,7 +1833,8 @@ static int create_qp(struct ib_uverbs_file *file,
 	if (attr.create_flags & ~(IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK |
 				IB_QP_CREATE_CROSS_CHANNEL |
 				IB_QP_CREATE_MANAGED_SEND |
-				IB_QP_CREATE_MANAGED_RECV)) {
+				IB_QP_CREATE_MANAGED_RECV |
+				IB_QP_CREATE_SCATTER_FCS)) {
 		ret = -EINVAL;
 		goto err_put;
 	}
diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h
index 6d6172d..195b233 100644
--- a/include/rdma/ib_verbs.h
+++ b/include/rdma/ib_verbs.h
@@ -982,6 +982,7 @@ enum ib_qp_create_flags {
 	IB_QP_CREATE_NETIF_QP			= 1 << 5,
 	IB_QP_CREATE_SIGNATURE_EN		= 1 << 6,
 	IB_QP_CREATE_USE_GFP_NOIO		= 1 << 7,
+	IB_QP_CREATE_SCATTER_FCS		= 1 << 8,
 	/* reserve bits 26-31 for low level drivers' internal use */
 	IB_QP_CREATE_RESERVED_START		= 1 << 26,
 	IB_QP_CREATE_RESERVED_END		= 1 << 31,
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH for-next 4/5] IB/mlx5: Add Scatter FCS support for Raw Packet QP
       [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
                     ` (2 preceding siblings ...)
  2016-04-17 14:19   ` [PATCH for-next 3/5] IB/core: Add Scatter FCS create flag Matan Barak
@ 2016-04-17 14:19   ` Matan Barak
       [not found]     ` <1460902778-5977-5-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  2016-04-17 14:19   ` [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported Matan Barak
  2016-05-13 20:39   ` [PATCH for-next 0/5] Add scatter FCS support Doug Ledford
  5 siblings, 1 reply; 15+ messages in thread
From: Matan Barak @ 2016-04-17 14:19 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

From: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

Enable Scatter FCS in the RQ context when the user passes
Scatter FCS create flag.

Signed-off-by: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/hw/mlx5/mlx5_ib.h |  1 +
 drivers/infiniband/hw/mlx5/qp.c      | 20 +++++++++++++++++++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h
index f16c818..ac23780 100644
--- a/drivers/infiniband/hw/mlx5/mlx5_ib.h
+++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h
@@ -356,6 +356,7 @@ enum mlx5_ib_qp_flags {
 	MLX5_IB_QP_SIGNATURE_HANDLING           = 1 << 5,
 	/* QP uses 1 as its source QP number */
 	MLX5_IB_QP_SQPN_QP1			= 1 << 6,
+	MLX5_IB_QP_CAP_SCATTER_FCS		= 1 << 7,
 };
 
 struct mlx5_umr_wr {
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c
index 8dee8bc..5041176 100644
--- a/drivers/infiniband/hw/mlx5/qp.c
+++ b/drivers/infiniband/hw/mlx5/qp.c
@@ -1028,6 +1028,7 @@ static int get_rq_pas_size(void *qpc)
 static int create_raw_packet_qp_rq(struct mlx5_ib_dev *dev,
 				   struct mlx5_ib_rq *rq, void *qpin)
 {
+	struct mlx5_ib_qp *mqp = rq->base.container_mibqp;
 	__be64 *pas;
 	__be64 *qp_pas;
 	void *in;
@@ -1051,6 +1052,9 @@ static int create_raw_packet_qp_rq(struct mlx5_ib_dev *dev,
 	MLX5_SET(rqc, rqc, user_index, MLX5_GET(qpc, qpc, user_index));
 	MLX5_SET(rqc, rqc, cqn, MLX5_GET(qpc, qpc, cqn_rcv));
 
+	if (mqp->flags & MLX5_IB_QP_CAP_SCATTER_FCS)
+		MLX5_SET(rqc, rqc, scatter_fcs, 1);
+
 	wq = MLX5_ADDR_OF(rqc, rqc, wq);
 	MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC);
 	MLX5_SET(wq, wq, end_padding_mode,
@@ -1136,11 +1140,12 @@ static int create_raw_packet_qp(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
 	}
 
 	if (qp->rq.wqe_cnt) {
+		rq->base.container_mibqp = qp;
+
 		err = create_raw_packet_qp_rq(dev, rq, in);
 		if (err)
 			goto err_destroy_sq;
 
-		rq->base.container_mibqp = qp;
 
 		err = create_raw_packet_qp_tir(dev, rq, tdn);
 		if (err)
@@ -1252,6 +1257,19 @@ static int create_qp_common(struct mlx5_ib_dev *dev, struct ib_pd *pd,
 			return -EOPNOTSUPP;
 		}
 
+	if (init_attr->create_flags & IB_QP_CREATE_SCATTER_FCS) {
+		if (init_attr->qp_type != IB_QPT_RAW_PACKET) {
+			mlx5_ib_dbg(dev, "Scatter FCS is supported only for Raw Packet QPs");
+			return -EOPNOTSUPP;
+		}
+		if (!MLX5_CAP_GEN(dev->mdev, eth_net_offloads) ||
+		    !MLX5_CAP_ETH(dev->mdev, scatter_fcs)) {
+			mlx5_ib_dbg(dev, "Scatter FCS isn't supported\n");
+			return -EOPNOTSUPP;
+		}
+		qp->flags |= MLX5_IB_QP_CAP_SCATTER_FCS;
+	}
+
 	if (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR)
 		qp->sq_signal_bits = MLX5_WQE_CTRL_CQ_UPDATE;
 
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported
       [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
                     ` (3 preceding siblings ...)
  2016-04-17 14:19   ` [PATCH for-next 4/5] IB/mlx5: Add Scatter FCS support for Raw Packet QP Matan Barak
@ 2016-04-17 14:19   ` Matan Barak
       [not found]     ` <1460902778-5977-6-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  2016-05-13 20:39   ` [PATCH for-next 0/5] Add scatter FCS support Doug Ledford
  5 siblings, 1 reply; 15+ messages in thread
From: Matan Barak @ 2016-04-17 14:19 UTC (permalink / raw)
  To: Doug Ledford; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

From: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>

Report Scatter FCS support when the Firmware supports as well.

Signed-off-by: Majd Dibbiny <majd-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Signed-off-by: Matan Barak <matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
 drivers/infiniband/hw/mlx5/main.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index 5acf346..d0a3734 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -517,6 +517,10 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
 		props->device_cap_flags |= IB_DEVICE_UD_TSO;
 	}
 
+	if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) &&
+	    MLX5_CAP_ETH(dev->mdev, scatter_fcs))
+		props->device_cap_flags |= IB_DEVICE_RAW_SCATTER_FCS;
+
 	props->vendor_part_id	   = mdev->pdev->device;
 	props->hw_ver		   = mdev->pdev->revision;
 
-- 
2.5.0

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 4/5] IB/mlx5: Add Scatter FCS support for Raw Packet QP
       [not found]     ` <1460902778-5977-5-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
@ 2016-04-17 15:10       ` kbuild test robot
  2016-04-17 15:32       ` kbuild test robot
  2016-04-17 15:44       ` kbuild test robot
  2 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2016-04-17 15:10 UTC (permalink / raw)
  Cc: kbuild-all-JC7UmRfGjtg, Doug Ledford,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

[-- Attachment #1: Type: text/plain, Size: 3666 bytes --]

Hi Majd,

[auto build test ERROR on rdma/master]
[also build test ERROR on v4.6-rc3 next-20160415]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Matan-Barak/Add-scatter-FCS-support/20160417-222225
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma master
config: tile-allmodconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=tile 

All errors (new ones prefixed by >>):

   drivers/infiniband/hw/mlx5/qp.c: In function 'create_raw_packet_qp_rq':
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'

vim +1056 drivers/infiniband/hw/mlx5/qp.c

  1050		MLX5_SET(rqc, rqc, state, MLX5_RQC_STATE_RST);
  1051		MLX5_SET(rqc, rqc, flush_in_error_en, 1);
  1052		MLX5_SET(rqc, rqc, user_index, MLX5_GET(qpc, qpc, user_index));
  1053		MLX5_SET(rqc, rqc, cqn, MLX5_GET(qpc, qpc, cqn_rcv));
  1054	
  1055		if (mqp->flags & MLX5_IB_QP_CAP_SCATTER_FCS)
> 1056			MLX5_SET(rqc, rqc, scatter_fcs, 1);
  1057	
  1058		wq = MLX5_ADDR_OF(rqc, rqc, wq);
  1059		MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 43820 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported
       [not found]     ` <1460902778-5977-6-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
@ 2016-04-17 15:15       ` kbuild test robot
  2016-04-17 15:44       ` kbuild test robot
  1 sibling, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2016-04-17 15:15 UTC (permalink / raw)
  Cc: kbuild-all-JC7UmRfGjtg, Doug Ledford,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

[-- Attachment #1: Type: text/plain, Size: 2720 bytes --]

Hi Majd,

[auto build test ERROR on rdma/master]
[also build test ERROR on v4.6-rc3 next-20160415]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Matan-Barak/Add-scatter-FCS-support/20160417-222225
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma master
config: tile-allmodconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=tile 

All errors (new ones prefixed by >>):

   drivers/infiniband/hw/mlx5/main.c: In function 'mlx5_ib_query_device':
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>> drivers/infiniband/hw/mlx5/main.c:521:6: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'

vim +521 drivers/infiniband/hw/mlx5/main.c

   515		if (MLX5_CAP_GEN(mdev, ipoib_basic_offloads)) {
   516			props->device_cap_flags |= IB_DEVICE_UD_IP_CSUM;
   517			props->device_cap_flags |= IB_DEVICE_UD_TSO;
   518		}
   519	
   520		if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) &&
 > 521		    MLX5_CAP_ETH(dev->mdev, scatter_fcs))
   522			props->device_cap_flags |= IB_DEVICE_RAW_SCATTER_FCS;
   523	
   524		props->vendor_part_id	   = mdev->pdev->device;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 43820 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 4/5] IB/mlx5: Add Scatter FCS support for Raw Packet QP
       [not found]     ` <1460902778-5977-5-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  2016-04-17 15:10       ` kbuild test robot
@ 2016-04-17 15:32       ` kbuild test robot
  2016-04-17 15:44       ` kbuild test robot
  2 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2016-04-17 15:32 UTC (permalink / raw)
  Cc: kbuild-all-JC7UmRfGjtg, Doug Ledford,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

[-- Attachment #1: Type: text/plain, Size: 11471 bytes --]

Hi Majd,

[auto build test ERROR on rdma/master]
[also build test ERROR on v4.6-rc3 next-20160415]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Matan-Barak/Add-scatter-FCS-support/20160417-222225
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma master
config: xtensa-allmodconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=xtensa 

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/mlx5/driver.h:45:0,
                    from drivers/infiniband/hw/mlx5/mlx5_ib.h:40,
                    from drivers/infiniband/hw/mlx5/qp.c:37:
   drivers/infiniband/hw/mlx5/qp.c: In function 'create_raw_packet_qp_rq':
>> include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
>> include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
>> include/linux/mlx5/device.h:70:20: note: in expansion of macro '__mlx5_dw_off'
     *((__be32 *)(p) + __mlx5_dw_off(typ, fld)) = \
                       ^
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   In file included from include/linux/byteorder/big_endian.h:4:0,
                    from arch/xtensa/include/uapi/asm/byteorder.h:7,
                    from arch/xtensa/include/asm/bitops.h:23,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/module.h:9,
                    from drivers/infiniband/hw/mlx5/qp.c:33:
>> include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__cpu_to_be32'
    #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
                                                      ^
>> include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
>> include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:71:45: note: in expansion of macro '__mlx5_dw_off'
     cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
                                                ^
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__cpu_to_be32'
    #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
                                                      ^
>> include/linux/mlx5/device.h:55:47: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
                                                  ^
>> include/linux/mlx5/device.h:56:35: note: in expansion of macro '__mlx5_mask'
    #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
                                      ^
>> include/linux/mlx5/device.h:72:10: note: in expansion of macro '__mlx5_dw_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
             ^
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__cpu_to_be32'
    #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
                                                      ^
   include/linux/mlx5/device.h:54:43: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
                                              ^
>> include/linux/mlx5/device.h:56:60: note: in expansion of macro '__mlx5_dw_bit_off'
    #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
                                                               ^
>> include/linux/mlx5/device.h:72:10: note: in expansion of macro '__mlx5_dw_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
             ^
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
>> include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__cpu_to_be32'
    #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
                                                      ^
   include/linux/mlx5/device.h:54:70: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
                                                                         ^
>> include/linux/mlx5/device.h:56:60: note: in expansion of macro '__mlx5_dw_bit_off'
    #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
                                                               ^
>> include/linux/mlx5/device.h:72:10: note: in expansion of macro '__mlx5_dw_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
             ^
>> drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/uapi/linux/byteorder/big_endian.h:38:51: note: in definition of macro '__cpu_to_be32'
    #define __cpu_to_be32(x) ((__force __be32)(__u32)(x))
                                                      ^
>> include/linux/mlx5/device.h:55:47: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
                                                  ^
   include/linux/mlx5/device.h:72:47: note: in expansion of macro '__mlx5_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
                                                  ^

vim +51 include/linux/mlx5/device.h

e126ba97 Eli Cohen      2013-07-07  44  #else
e126ba97 Eli Cohen      2013-07-07  45  #error Host endianness not defined
e126ba97 Eli Cohen      2013-07-07  46  #endif
e126ba97 Eli Cohen      2013-07-07  47  
d29b796a Eli Cohen      2014-10-02  48  /* helper macros */
d29b796a Eli Cohen      2014-10-02  49  #define __mlx5_nullp(typ) ((struct mlx5_ifc_##typ##_bits *)0)
d29b796a Eli Cohen      2014-10-02 @50  #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
d29b796a Eli Cohen      2014-10-02 @51  #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
d29b796a Eli Cohen      2014-10-02 @52  #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
d29b796a Eli Cohen      2014-10-02  53  #define __mlx5_64_off(typ, fld) (__mlx5_bit_off(typ, fld) / 64)
d29b796a Eli Cohen      2014-10-02  54  #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
d29b796a Eli Cohen      2014-10-02 @55  #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
d29b796a Eli Cohen      2014-10-02 @56  #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
d29b796a Eli Cohen      2014-10-02  57  #define __mlx5_st_sz_bits(typ) sizeof(struct mlx5_ifc_##typ##_bits)
d29b796a Eli Cohen      2014-10-02  58  
d29b796a Eli Cohen      2014-10-02  59  #define MLX5_FLD_SZ_BYTES(typ, fld) (__mlx5_bit_sz(typ, fld) / 8)
d29b796a Eli Cohen      2014-10-02  60  #define MLX5_ST_SZ_BYTES(typ) (sizeof(struct mlx5_ifc_##typ##_bits) / 8)
d29b796a Eli Cohen      2014-10-02  61  #define MLX5_ST_SZ_DW(typ) (sizeof(struct mlx5_ifc_##typ##_bits) / 32)
938fe83c Saeed Mahameed 2015-05-28  62  #define MLX5_UN_SZ_BYTES(typ) (sizeof(union mlx5_ifc_##typ##_bits) / 8)
938fe83c Saeed Mahameed 2015-05-28  63  #define MLX5_UN_SZ_DW(typ) (sizeof(union mlx5_ifc_##typ##_bits) / 32)
d29b796a Eli Cohen      2014-10-02  64  #define MLX5_BYTE_OFF(typ, fld) (__mlx5_bit_off(typ, fld) / 8)
d29b796a Eli Cohen      2014-10-02  65  #define MLX5_ADDR_OF(typ, p, fld) ((char *)(p) + MLX5_BYTE_OFF(typ, fld))
d29b796a Eli Cohen      2014-10-02  66  
d29b796a Eli Cohen      2014-10-02  67  /* insert a value to a struct */
d29b796a Eli Cohen      2014-10-02  68  #define MLX5_SET(typ, p, fld, v) do { \
d29b796a Eli Cohen      2014-10-02  69  	BUILD_BUG_ON(__mlx5_st_sz_bits(typ) % 32);             \
d29b796a Eli Cohen      2014-10-02 @70  	*((__be32 *)(p) + __mlx5_dw_off(typ, fld)) = \
d29b796a Eli Cohen      2014-10-02  71  	cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
d29b796a Eli Cohen      2014-10-02 @72  		     (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
d29b796a Eli Cohen      2014-10-02 @73  		     << __mlx5_dw_bit_off(typ, fld))); \
d29b796a Eli Cohen      2014-10-02  74  } while (0)
d29b796a Eli Cohen      2014-10-02  75  
e281682b Saeed Mahameed 2015-05-28  76  #define MLX5_SET_TO_ONES(typ, p, fld) do { \

:::::: The code at line 51 was first introduced by commit
:::::: d29b796adada8780db3512c4a34b339f9aeef1ae net/mlx5_core: Use hardware registers description header file

:::::: TO: Eli Cohen <eli-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
:::::: CC: David S. Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public.gmane.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 44813 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 4/5] IB/mlx5: Add Scatter FCS support for Raw Packet QP
       [not found]     ` <1460902778-5977-5-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  2016-04-17 15:10       ` kbuild test robot
  2016-04-17 15:32       ` kbuild test robot
@ 2016-04-17 15:44       ` kbuild test robot
  2 siblings, 0 replies; 15+ messages in thread
From: kbuild test robot @ 2016-04-17 15:44 UTC (permalink / raw)
  Cc: kbuild-all-JC7UmRfGjtg, Doug Ledford,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

[-- Attachment #1: Type: text/plain, Size: 19472 bytes --]

Hi Majd,

[auto build test WARNING on rdma/master]
[also build test WARNING on v4.6-rc3 next-20160415]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Matan-Barak/Add-scatter-FCS-support/20160417-222225
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma master
config: alpha-allmodconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=alpha 

All warnings (new ones prefixed by >>):

   In file included from include/linux/mlx5/driver.h:45:0,
                    from drivers/infiniband/hw/mlx5/mlx5_ib.h:40,
                    from drivers/infiniband/hw/mlx5/qp.c:37:
   drivers/infiniband/hw/mlx5/qp.c: In function 'create_raw_packet_qp_rq':
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:70:20: note: in expansion of macro '__mlx5_dw_off'
     *((__be32 *)(p) + __mlx5_dw_off(typ, fld)) = \
                       ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   In file included from include/linux/swab.h:4:0,
                    from include/uapi/linux/byteorder/little_endian.h:12,
                    from include/linux/byteorder/little_endian.h:4,
                    from arch/alpha/include/uapi/asm/byteorder.h:4,
                    from include/asm-generic/bitops/le.h:5,
                    from arch/alpha/include/asm/bitops.h:454,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/module.h:9,
                    from drivers/infiniband/hw/mlx5/qp.c:33:
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
>> include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
   include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:71:45: note: in expansion of macro '__mlx5_dw_off'
     cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
                                                ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
>> include/uapi/linux/swab.h:116:2: note: in expansion of macro '___constant_swab32'
     ___constant_swab32(x) :   \
     ^
>> include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
   include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:71:45: note: in expansion of macro '__mlx5_dw_off'
     cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
                                                ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
>> include/uapi/linux/swab.h:116:2: note: in expansion of macro '___constant_swab32'
     ___constant_swab32(x) :   \
     ^
>> include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
   include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:71:45: note: in expansion of macro '__mlx5_dw_off'
     cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
                                                ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
>> include/uapi/linux/swab.h:116:2: note: in expansion of macro '___constant_swab32'
     ___constant_swab32(x) :   \
     ^
>> include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
   include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:71:45: note: in expansion of macro '__mlx5_dw_off'
     cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
                                                ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
>> include/uapi/linux/swab.h:116:2: note: in expansion of macro '___constant_swab32'
     ___constant_swab32(x) :   \
     ^
>> include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
   include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:71:45: note: in expansion of macro '__mlx5_dw_off'
     cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
                                                ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
>> include/uapi/linux/byteorder/little_endian.h:39:26: note: in expansion of macro '__swab32'
    #define __be32_to_cpu(x) __swab32((__force __u32)(__be32)(x))
                             ^
   include/linux/byteorder/generic.h:94:21: note: in expansion of macro '__be32_to_cpu'
    #define be32_to_cpu __be32_to_cpu
                        ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:71:45: note: in expansion of macro '__mlx5_dw_off'
     cpu_to_be32((be32_to_cpu(*((__be32 *)(p) + __mlx5_dw_off(typ, fld))) & \
                                                ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
   include/linux/mlx5/device.h:55:47: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
                                                  ^
   include/linux/mlx5/device.h:56:35: note: in expansion of macro '__mlx5_mask'
    #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
                                      ^
   include/linux/mlx5/device.h:72:10: note: in expansion of macro '__mlx5_dw_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
             ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
   include/linux/mlx5/device.h:54:43: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
                                              ^
   include/linux/mlx5/device.h:56:60: note: in expansion of macro '__mlx5_dw_bit_off'
    #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
                                                               ^
   include/linux/mlx5/device.h:72:10: note: in expansion of macro '__mlx5_dw_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
             ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
   include/linux/mlx5/device.h:54:70: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
                                                                         ^
   include/linux/mlx5/device.h:56:60: note: in expansion of macro '__mlx5_dw_bit_off'
    #define __mlx5_dw_mask(typ, fld) (__mlx5_mask(typ, fld) << __mlx5_dw_bit_off(typ, fld))
                                                               ^
   include/linux/mlx5/device.h:72:10: note: in expansion of macro '__mlx5_dw_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
             ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^
>> include/linux/byteorder/generic.h:93:21: note: in expansion of macro '__cpu_to_be32'
    #define cpu_to_be32 __cpu_to_be32
                        ^
   include/linux/mlx5/device.h:55:47: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
                                                  ^
   include/linux/mlx5/device.h:72:47: note: in expansion of macro '__mlx5_mask'
           (~__mlx5_dw_mask(typ, fld))) | (((v) & __mlx5_mask(typ, fld)) \
                                                  ^
   drivers/infiniband/hw/mlx5/qp.c:1056:3: note: in expansion of macro 'MLX5_SET'
      MLX5_SET(rqc, rqc, scatter_fcs, 1);
      ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_rqc_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/uapi/linux/swab.h:115:32: note: in definition of macro '__swab32'
     (__builtin_constant_p((__u32)(x)) ? \
                                   ^

vim +/__cpu_to_be32 +93 include/linux/byteorder/generic.h

^1da177e Linus Torvalds 2005-04-16   77   *	cpu_to_[bl]eXXs(__uXX x)
^1da177e Linus Torvalds 2005-04-16   78   *	[bl]eXX_to_cpus(__uXX x)
^1da177e Linus Torvalds 2005-04-16   79   *
^1da177e Linus Torvalds 2005-04-16   80   * See asm-foo/byteorder.h for examples of how to provide
^1da177e Linus Torvalds 2005-04-16   81   * architecture-optimized versions
^1da177e Linus Torvalds 2005-04-16   82   *
^1da177e Linus Torvalds 2005-04-16   83   */
^1da177e Linus Torvalds 2005-04-16   84  
^1da177e Linus Torvalds 2005-04-16   85  #define cpu_to_le64 __cpu_to_le64
^1da177e Linus Torvalds 2005-04-16   86  #define le64_to_cpu __le64_to_cpu
^1da177e Linus Torvalds 2005-04-16   87  #define cpu_to_le32 __cpu_to_le32
^1da177e Linus Torvalds 2005-04-16   88  #define le32_to_cpu __le32_to_cpu
^1da177e Linus Torvalds 2005-04-16   89  #define cpu_to_le16 __cpu_to_le16
^1da177e Linus Torvalds 2005-04-16   90  #define le16_to_cpu __le16_to_cpu
^1da177e Linus Torvalds 2005-04-16   91  #define cpu_to_be64 __cpu_to_be64
^1da177e Linus Torvalds 2005-04-16   92  #define be64_to_cpu __be64_to_cpu
^1da177e Linus Torvalds 2005-04-16  @93  #define cpu_to_be32 __cpu_to_be32
^1da177e Linus Torvalds 2005-04-16   94  #define be32_to_cpu __be32_to_cpu
^1da177e Linus Torvalds 2005-04-16   95  #define cpu_to_be16 __cpu_to_be16
^1da177e Linus Torvalds 2005-04-16   96  #define be16_to_cpu __be16_to_cpu
^1da177e Linus Torvalds 2005-04-16   97  #define cpu_to_le64p __cpu_to_le64p
^1da177e Linus Torvalds 2005-04-16   98  #define le64_to_cpup __le64_to_cpup
^1da177e Linus Torvalds 2005-04-16   99  #define cpu_to_le32p __cpu_to_le32p
^1da177e Linus Torvalds 2005-04-16  100  #define le32_to_cpup __le32_to_cpup
^1da177e Linus Torvalds 2005-04-16  101  #define cpu_to_le16p __cpu_to_le16p

:::::: The code at line 93 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds-gWtpgVMusWVb5UGfqNBoRg@public.gmane.org>
:::::: CC: Linus Torvalds <torvalds-gWtpgVMusWVb5UGfqNBoRg@public.gmane.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 45738 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported
       [not found]     ` <1460902778-5977-6-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
  2016-04-17 15:15       ` kbuild test robot
@ 2016-04-17 15:44       ` kbuild test robot
       [not found]         ` <201604172352.60qppaot%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
  1 sibling, 1 reply; 15+ messages in thread
From: kbuild test robot @ 2016-04-17 15:44 UTC (permalink / raw)
  Cc: kbuild-all-JC7UmRfGjtg, Doug Ledford,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny, Matan Barak

[-- Attachment #1: Type: text/plain, Size: 6857 bytes --]

Hi Majd,

[auto build test WARNING on rdma/master]
[also build test WARNING on v4.6-rc3 next-20160415]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/Matan-Barak/Add-scatter-FCS-support/20160417-222225
base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma master
config: xtensa-allmodconfig (attached as .config)
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=xtensa 

All warnings (new ones prefixed by >>):

   In file included from include/linux/byteorder/big_endian.h:4:0,
                    from arch/xtensa/include/uapi/asm/byteorder.h:7,
                    from arch/xtensa/include/asm/bitops.h:23,
                    from include/linux/bitops.h:36,
                    from include/linux/kernel.h:10,
                    from include/linux/list.h:8,
                    from include/linux/wait.h:6,
                    from include/linux/fs.h:5,
                    from include/linux/highmem.h:4,
                    from drivers/infiniband/hw/mlx5/main.c:33:
   drivers/infiniband/hw/mlx5/main.c: In function 'mlx5_ib_query_device':
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__be32_to_cpu'
    #define __be32_to_cpu(x) ((__force __u32)(__be32)(x))
                                                      ^
   include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
                                     ^
   include/linux/mlx5/device.h:85:1: note: in expansion of macro '__mlx5_dw_off'
    __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
    ^
   include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
     MLX5_GET(per_protocol_networking_offload_caps,\
     ^
>> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
         MLX5_CAP_ETH(dev->mdev, scatter_fcs))
         ^
   In file included from include/linux/mlx5/driver.h:45:0,
                    from include/linux/mlx5/port.h:36,
                    from drivers/infiniband/hw/mlx5/main.c:45:
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/linux/mlx5/device.h:54:43: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
                                              ^
   include/linux/mlx5/device.h:85:30: note: in expansion of macro '__mlx5_dw_bit_off'
    __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
                                 ^
   include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
     MLX5_GET(per_protocol_networking_offload_caps,\
     ^
>> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
         MLX5_CAP_ETH(dev->mdev, scatter_fcs))
         ^
   include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
                                                                                   ^
   include/linux/mlx5/device.h:54:70: note: in expansion of macro '__mlx5_bit_off'
    #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
                                                                         ^
   include/linux/mlx5/device.h:85:30: note: in expansion of macro '__mlx5_dw_bit_off'
    __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
                                 ^
   include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
     MLX5_GET(per_protocol_networking_offload_caps,\
     ^
>> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
         MLX5_CAP_ETH(dev->mdev, scatter_fcs))
         ^
   include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
    #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
                                                            ^
   include/linux/mlx5/device.h:55:47: note: in expansion of macro '__mlx5_bit_sz'
    #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
                                                  ^
   include/linux/mlx5/device.h:86:1: note: in expansion of macro '__mlx5_mask'
    __mlx5_mask(typ, fld))
    ^
   include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
     MLX5_GET(per_protocol_networking_offload_caps,\
     ^
>> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
         MLX5_CAP_ETH(dev->mdev, scatter_fcs))
         ^

vim +/MLX5_CAP_ETH +521 drivers/infiniband/hw/mlx5/main.c

   505			props->sig_guard_cap = IB_GUARD_T10DIF_CRC |
   506					       IB_GUARD_T10DIF_CSUM;
   507		}
   508		if (MLX5_CAP_GEN(mdev, block_lb_mc))
   509			props->device_cap_flags |= IB_DEVICE_BLOCK_MULTICAST_LOOPBACK;
   510	
   511		if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) &&
   512		    (MLX5_CAP_ETH(dev->mdev, csum_cap)))
   513				props->device_cap_flags |= IB_DEVICE_RAW_IP_CSUM;
   514	
   515		if (MLX5_CAP_GEN(mdev, ipoib_basic_offloads)) {
   516			props->device_cap_flags |= IB_DEVICE_UD_IP_CSUM;
   517			props->device_cap_flags |= IB_DEVICE_UD_TSO;
   518		}
   519	
   520		if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) &&
 > 521		    MLX5_CAP_ETH(dev->mdev, scatter_fcs))
   522			props->device_cap_flags |= IB_DEVICE_RAW_SCATTER_FCS;
   523	
   524		props->vendor_part_id	   = mdev->pdev->device;
   525		props->hw_ver		   = mdev->pdev->revision;
   526	
   527		props->max_mr_size	   = ~0ull;
   528		props->page_size_cap	   = ~(min_page_size - 1);
   529		props->max_qp		   = 1 << MLX5_CAP_GEN(mdev, log_max_qp);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 44813 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported
       [not found]         ` <201604172352.60qppaot%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
@ 2016-04-21  1:24           ` ira.weiny
       [not found]             ` <20160421012442.GA30527-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
  0 siblings, 1 reply; 15+ messages in thread
From: ira.weiny @ 2016-04-21  1:24 UTC (permalink / raw)
  To: kbuild test robot
  Cc: Matan Barak, kbuild-all-JC7UmRfGjtg, Doug Ledford,
	linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny

I will do my best to review this.  But to save time I'll wait for the kbuilds
to be fixed.

Thanks,
Ira


On Sun, Apr 17, 2016 at 11:44:43PM +0800, kbuild test robot wrote:
> Hi Majd,
> 
> [auto build test WARNING on rdma/master]
> [also build test WARNING on v4.6-rc3 next-20160415]
> [if your patch is applied to the wrong git tree, please drop us a note to help improving the system]
> 
> url:    https://github.com/0day-ci/linux/commits/Matan-Barak/Add-scatter-FCS-support/20160417-222225
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma master
> config: xtensa-allmodconfig (attached as .config)
> reproduce:
>         wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         # save the attached .config to linux build tree
>         make.cross ARCH=xtensa 
> 
> All warnings (new ones prefixed by >>):
> 
>    In file included from include/linux/byteorder/big_endian.h:4:0,
>                     from arch/xtensa/include/uapi/asm/byteorder.h:7,
>                     from arch/xtensa/include/asm/bitops.h:23,
>                     from include/linux/bitops.h:36,
>                     from include/linux/kernel.h:10,
>                     from include/linux/list.h:8,
>                     from include/linux/wait.h:6,
>                     from include/linux/fs.h:5,
>                     from include/linux/highmem.h:4,
>                     from drivers/infiniband/hw/mlx5/main.c:33:
>    drivers/infiniband/hw/mlx5/main.c: In function 'mlx5_ib_query_device':
>    include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>     #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
>                                                                                    ^
>    include/uapi/linux/byteorder/big_endian.h:39:51: note: in definition of macro '__be32_to_cpu'
>     #define __be32_to_cpu(x) ((__force __u32)(__be32)(x))
>                                                       ^
>    include/linux/mlx5/device.h:52:34: note: in expansion of macro '__mlx5_bit_off'
>     #define __mlx5_dw_off(typ, fld) (__mlx5_bit_off(typ, fld) / 32)
>                                      ^
>    include/linux/mlx5/device.h:85:1: note: in expansion of macro '__mlx5_dw_off'
>     __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
>     ^
>    include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
>      MLX5_GET(per_protocol_networking_offload_caps,\
>      ^
> >> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
>          MLX5_CAP_ETH(dev->mdev, scatter_fcs))
>          ^
>    In file included from include/linux/mlx5/driver.h:45:0,
>                     from include/linux/mlx5/port.h:36,
>                     from drivers/infiniband/hw/mlx5/main.c:45:
>    include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>     #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
>                                                             ^
>    include/linux/mlx5/device.h:54:43: note: in expansion of macro '__mlx5_bit_sz'
>     #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
>                                               ^
>    include/linux/mlx5/device.h:85:30: note: in expansion of macro '__mlx5_dw_bit_off'
>     __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
>                                  ^
>    include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
>      MLX5_GET(per_protocol_networking_offload_caps,\
>      ^
> >> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
>          MLX5_CAP_ETH(dev->mdev, scatter_fcs))
>          ^
>    include/linux/mlx5/device.h:51:80: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>     #define __mlx5_bit_off(typ, fld) ((unsigned)(unsigned long)(&(__mlx5_nullp(typ)->fld)))
>                                                                                    ^
>    include/linux/mlx5/device.h:54:70: note: in expansion of macro '__mlx5_bit_off'
>     #define __mlx5_dw_bit_off(typ, fld) (32 - __mlx5_bit_sz(typ, fld) - (__mlx5_bit_off(typ, fld) & 0x1f))
>                                                                          ^
>    include/linux/mlx5/device.h:85:30: note: in expansion of macro '__mlx5_dw_bit_off'
>     __mlx5_dw_off(typ, fld))) >> __mlx5_dw_bit_off(typ, fld)) & \
>                                  ^
>    include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
>      MLX5_GET(per_protocol_networking_offload_caps,\
>      ^
> >> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
>          MLX5_CAP_ETH(dev->mdev, scatter_fcs))
>          ^
>    include/linux/mlx5/device.h:50:57: error: 'struct mlx5_ifc_per_protocol_networking_offload_caps_bits' has no member named 'scatter_fcs'
>     #define __mlx5_bit_sz(typ, fld) sizeof(__mlx5_nullp(typ)->fld)
>                                                             ^
>    include/linux/mlx5/device.h:55:47: note: in expansion of macro '__mlx5_bit_sz'
>     #define __mlx5_mask(typ, fld) ((u32)((1ull << __mlx5_bit_sz(typ, fld)) - 1))
>                                                   ^
>    include/linux/mlx5/device.h:86:1: note: in expansion of macro '__mlx5_mask'
>     __mlx5_mask(typ, fld))
>     ^
>    include/linux/mlx5/device.h:1253:2: note: in expansion of macro 'MLX5_GET'
>      MLX5_GET(per_protocol_networking_offload_caps,\
>      ^
> >> drivers/infiniband/hw/mlx5/main.c:521:6: note: in expansion of macro 'MLX5_CAP_ETH'
>          MLX5_CAP_ETH(dev->mdev, scatter_fcs))
>          ^
> 
> vim +/MLX5_CAP_ETH +521 drivers/infiniband/hw/mlx5/main.c
> 
>    505			props->sig_guard_cap = IB_GUARD_T10DIF_CRC |
>    506					       IB_GUARD_T10DIF_CSUM;
>    507		}
>    508		if (MLX5_CAP_GEN(mdev, block_lb_mc))
>    509			props->device_cap_flags |= IB_DEVICE_BLOCK_MULTICAST_LOOPBACK;
>    510	
>    511		if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) &&
>    512		    (MLX5_CAP_ETH(dev->mdev, csum_cap)))
>    513				props->device_cap_flags |= IB_DEVICE_RAW_IP_CSUM;
>    514	
>    515		if (MLX5_CAP_GEN(mdev, ipoib_basic_offloads)) {
>    516			props->device_cap_flags |= IB_DEVICE_UD_IP_CSUM;
>    517			props->device_cap_flags |= IB_DEVICE_UD_TSO;
>    518		}
>    519	
>    520		if (MLX5_CAP_GEN(dev->mdev, eth_net_offloads) &&
>  > 521		    MLX5_CAP_ETH(dev->mdev, scatter_fcs))
>    522			props->device_cap_flags |= IB_DEVICE_RAW_SCATTER_FCS;
>    523	
>    524		props->vendor_part_id	   = mdev->pdev->device;
>    525		props->hw_ver		   = mdev->pdev->revision;
>    526	
>    527		props->max_mr_size	   = ~0ull;
>    528		props->page_size_cap	   = ~(min_page_size - 1);
>    529		props->max_qp		   = 1 << MLX5_CAP_GEN(mdev, log_max_qp);
> 
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported
       [not found]             ` <20160421012442.GA30527-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
@ 2016-04-21  7:07               ` Leon Romanovsky
  0 siblings, 0 replies; 15+ messages in thread
From: Leon Romanovsky @ 2016-04-21  7:07 UTC (permalink / raw)
  To: ira.weiny
  Cc: kbuild test robot, Matan Barak, kbuild-all-JC7UmRfGjtg,
	Doug Ledford, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny

[-- Attachment #1: Type: text/plain, Size: 555 bytes --]

On Wed, Apr 20, 2016 at 09:24:43PM -0400, ira.weiny wrote:
> I will do my best to review this.  But to save time I'll wait for the kbuilds
> to be fixed.

This kbuilds are related to shared code patches which are required for
this patch.

We sent them in advance [1] and it is already part of netdev tree [3].
Once Doug will apply these patches [3], kbuilds errors will disappear.

[1] http://marc.info/?l=linux-netdev&m=146056392230963&w=2
[2] http://marc.info/?l=linux-rdma&m=146075537926850&w=2
[3] http://marc.info/?l=linux-rdma&m=146099436110034&w=2

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 0/5] Add scatter FCS support
       [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
                     ` (4 preceding siblings ...)
  2016-04-17 14:19   ` [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported Matan Barak
@ 2016-05-13 20:39   ` Doug Ledford
       [not found]     ` <92e9a494-c363-db42-894c-17d67fe96ecc-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  5 siblings, 1 reply; 15+ messages in thread
From: Doug Ledford @ 2016-05-13 20:39 UTC (permalink / raw)
  To: Matan Barak; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny

[-- Attachment #1: Type: text/plain, Size: 2831 bytes --]

On 04/17/2016 10:19 AM, Matan Barak wrote:
> Hi Doug,
> 
> Frame Check Sequence (FCS) is an error detecting code that terminates
> an Ethernet frame. When using Raw Ethernet, users sometimes want
> to validate the FCS themselves, and therefore it should be scattered
> to the receive buffers.
> 
> This series adds the above support.
> 
> The user can control scattering the FCS using Queue-Pair(QP) creation
> flag called IB_QP_CREATE_SCATTER_FCS.
> 
> Also, to report this new device capability, we had to add a new
> device capability flags in the uverbs response called
> device_cap_flags_ex, since all the current device_cap_flags are
> occupied.
> 
> device_cap_flags_ex 0-31 bits are identical to the legacy
> device_cap_flags, and the upper 32 bits (32-63 bits) report new
> extended device capabilities.
> 
> Devices that support scattering the FCS should report it in
> device_cap_flags_ex using IB_DEVICE_RAW_SCATTER_FCS.
> 
> This patch depends on the mlx5 core shared code that was sent to both
> IB and net trees and was already accepted by Dave Miller:
> net/mlx5: Update mlx5_ifc hardware features
> net/mlx5: Fix mlx5 ifc cmd_hca_cap bad offsets
> 
> Moreover, this patch conflicts with the LSO series (that will be
> sent soon). The resolution of this conflict is available in
> Mellanox's tree.
> 
> Thanks,
> Majd and Matan
> 
> Majd Dibbiny (5):
>   IB/core: Add extended device capability flags
>   IB/core: Add Raw Scatter FCS device capability
>   IB/core: Add Scatter FCS create flag
>   IB/mlx5: Add Scatter FCS support for Raw Packet QP
>   IB/mlx5: Report Scatter FCS device capability when supported
> 
>  drivers/infiniband/core/uverbs_cmd.c |  8 +++++++-
>  drivers/infiniband/hw/mlx5/main.c    |  4 ++++
>  drivers/infiniband/hw/mlx5/mlx5_ib.h |  1 +
>  drivers/infiniband/hw/mlx5/qp.c      | 20 +++++++++++++++++++-
>  include/rdma/ib_verbs.h              |  2 ++
>  include/uapi/rdma/ib_user_verbs.h    |  1 +
>  6 files changed, 34 insertions(+), 2 deletions(-)
> 

This patchset is a uAPI extending patchset.  Recently, there has been
talk of requiring a higher level of review and acknowledgment from
various vendors for such patches.  However, in this case, it extends the
QP creation code, which is already an extended function, and it extends
it in a manner consistent with the original extension mechanism.  The
only use visible change is a new bit in a bitmap with plenty of space
free at the moment, and the resulting WC SGE entries will be extended.
The overall patches themselves look fine, the extension was done
appropriately, and this isn't a newly extended API, so I'm OK taking
these as they are.  Applied.

-- 
Doug Ledford <dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
              GPG KeyID: 0E572FDD



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 884 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH for-next 0/5] Add scatter FCS support
       [not found]     ` <92e9a494-c363-db42-894c-17d67fe96ecc-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
@ 2016-05-13 23:18       ` Jason Gunthorpe
  0 siblings, 0 replies; 15+ messages in thread
From: Jason Gunthorpe @ 2016-05-13 23:18 UTC (permalink / raw)
  To: Doug Ledford; +Cc: Matan Barak, linux-rdma-u79uwXL29TY76Z2rM5mHXA, Majd Dibbiny

On Fri, May 13, 2016 at 04:39:23PM -0400, Doug Ledford wrote:

> This patchset is a uAPI extending patchset.  Recently, there has been
> talk of requiring a higher level of review and acknowledgment from
> various vendors for such patches.  However, in this case, it extends the
> QP creation code, which is already an extended function, and it extends
> it in a manner consistent with the original extension mechanism.

You've missed the point - the extension mechanism is explicitly not
for vendor-specific stuff, the question to ask is this FCS thing
driver specific, is it sufficiently general, and can other vendors
implement it.

I'd say yes to those questions, what it does seems well defined and
generic.

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2016-05-13 23:18 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-17 14:19 [PATCH for-next 0/5] Add scatter FCS support Matan Barak
     [not found] ` <1460902778-5977-1-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-04-17 14:19   ` [PATCH for-next 1/5] IB/core: Add extended device capability flags Matan Barak
2016-04-17 14:19   ` [PATCH for-next 2/5] IB/core: Add Raw Scatter FCS device capability Matan Barak
2016-04-17 14:19   ` [PATCH for-next 3/5] IB/core: Add Scatter FCS create flag Matan Barak
2016-04-17 14:19   ` [PATCH for-next 4/5] IB/mlx5: Add Scatter FCS support for Raw Packet QP Matan Barak
     [not found]     ` <1460902778-5977-5-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-04-17 15:10       ` kbuild test robot
2016-04-17 15:32       ` kbuild test robot
2016-04-17 15:44       ` kbuild test robot
2016-04-17 14:19   ` [PATCH for-next 5/5] IB/mlx5: Report Scatter FCS device capability when supported Matan Barak
     [not found]     ` <1460902778-5977-6-git-send-email-matanb-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2016-04-17 15:15       ` kbuild test robot
2016-04-17 15:44       ` kbuild test robot
     [not found]         ` <201604172352.60qppaot%fengguang.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2016-04-21  1:24           ` ira.weiny
     [not found]             ` <20160421012442.GA30527-W4f6Xiosr+yv7QzWx2u06xL4W9x8LtSr@public.gmane.org>
2016-04-21  7:07               ` Leon Romanovsky
2016-05-13 20:39   ` [PATCH for-next 0/5] Add scatter FCS support Doug Ledford
     [not found]     ` <92e9a494-c363-db42-894c-17d67fe96ecc-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2016-05-13 23:18       ` Jason Gunthorpe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.