All of lore.kernel.org
 help / color / mirror / Atom feed
* [for-next v4 0/4] RDMA: modify_port improvements
@ 2019-10-28 15:59 Kamal Heib
  2019-10-28 15:59 ` [for-next v4 1/4] RDMA/core: Fix return code when modify_port isn't supported Kamal Heib
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Kamal Heib @ 2019-10-28 15:59 UTC (permalink / raw)
  To: linux-rdma
  Cc: Doug Ledford, Jason Gunthorpe, Lijun Ou, Selvin Xavier,
	Michal Kalderon, Kamal Heib

Changelog:
v4: Allow only IB_PORT_CM_SUP fake manipulation for RoCE providers.
v3: Improve [patch 1/4].
v2: Include fixes lines.

This series includes three patches which fix the return values from
modify_port() callbacks when they aren't supported.

Kamal Heib (4):
  RDMA/core: Fix return code when modify_port isn't supported
  RDMA/hns: Remove unsupported modify_port callback
  RDMA/ocrdma: Remove unsupported modify_port callback
  RDMA/qedr: Remove unsupported modify_port callback

 drivers/infiniband/core/device.c            | 6 +++++-
 drivers/infiniband/hw/hns/hns_roce_main.c   | 7 -------
 drivers/infiniband/hw/ocrdma/ocrdma_main.c  | 1 -
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 ------
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 2 --
 drivers/infiniband/hw/qedr/main.c           | 1 -
 drivers/infiniband/hw/qedr/verbs.c          | 6 ------
 drivers/infiniband/hw/qedr/verbs.h          | 2 --
 8 files changed, 5 insertions(+), 26 deletions(-)

-- 
2.20.1


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

* [for-next v4 1/4] RDMA/core: Fix return code when modify_port isn't supported
  2019-10-28 15:59 [for-next v4 0/4] RDMA: modify_port improvements Kamal Heib
@ 2019-10-28 15:59 ` Kamal Heib
  2019-10-28 15:59 ` [for-next v4 2/4] RDMA/hns: Remove unsupported modify_port callback Kamal Heib
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Kamal Heib @ 2019-10-28 15:59 UTC (permalink / raw)
  To: linux-rdma
  Cc: Doug Ledford, Jason Gunthorpe, Lijun Ou, Selvin Xavier,
	Michal Kalderon, Kamal Heib

Improving return code from ib_modify_port() by doing the following:
1- Use "-EOPNOTSUPP" instead "-ENOSYS" which is the proper return code.
2- Allow only IB_PORT_CM_SUP fake manipulation for RoCE providers that
   didn't implement the modify_port callback, otherwise return "-EOPNOTSUPP".

Fixes: 61e0962d5221 ("IB: Avoid ib_modify_port() failure for RoCE devices")
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
---
 drivers/infiniband/core/device.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/core/device.c b/drivers/infiniband/core/device.c
index eb35b663a742..ee5fe20bd8b0 100644
--- a/drivers/infiniband/core/device.c
+++ b/drivers/infiniband/core/device.c
@@ -2395,8 +2395,12 @@ int ib_modify_port(struct ib_device *device,
 		rc = device->ops.modify_port(device, port_num,
 					     port_modify_mask,
 					     port_modify);
+	else if (rdma_protocol_roce(device, port_num) &&
+		 ((port_modify->set_port_cap_mask & ~IB_PORT_CM_SUP) == 0 ||
+		  (port_modify->clr_port_cap_mask & ~IB_PORT_CM_SUP) == 0))
+		rc = 0;
 	else
-		rc = rdma_protocol_roce(device, port_num) ? 0 : -ENOSYS;
+		rc = -EOPNOTSUPP;
 	return rc;
 }
 EXPORT_SYMBOL(ib_modify_port);
-- 
2.20.1


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

* [for-next v4 2/4] RDMA/hns: Remove unsupported modify_port callback
  2019-10-28 15:59 [for-next v4 0/4] RDMA: modify_port improvements Kamal Heib
  2019-10-28 15:59 ` [for-next v4 1/4] RDMA/core: Fix return code when modify_port isn't supported Kamal Heib
@ 2019-10-28 15:59 ` Kamal Heib
  2019-10-28 15:59 ` [for-next v4 3/4] RDMA/ocrdma: " Kamal Heib
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Kamal Heib @ 2019-10-28 15:59 UTC (permalink / raw)
  To: linux-rdma
  Cc: Doug Ledford, Jason Gunthorpe, Lijun Ou, Selvin Xavier,
	Michal Kalderon, Kamal Heib

There is no need to return always zero for function which is not
supported.

Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver")
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
---
 drivers/infiniband/hw/hns/hns_roce_main.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c
index b5d196c119ee..b241f74a7e3b 100644
--- a/drivers/infiniband/hw/hns/hns_roce_main.c
+++ b/drivers/infiniband/hw/hns/hns_roce_main.c
@@ -301,12 +301,6 @@ static int hns_roce_modify_device(struct ib_device *ib_dev, int mask,
 	return 0;
 }
 
-static int hns_roce_modify_port(struct ib_device *ib_dev, u8 port_num, int mask,
-				struct ib_port_modify *props)
-{
-	return 0;
-}
-
 static int hns_roce_alloc_ucontext(struct ib_ucontext *uctx,
 				   struct ib_udata *udata)
 {
@@ -438,7 +432,6 @@ static const struct ib_device_ops hns_roce_dev_ops = {
 	.get_port_immutable = hns_roce_port_immutable,
 	.mmap = hns_roce_mmap,
 	.modify_device = hns_roce_modify_device,
-	.modify_port = hns_roce_modify_port,
 	.modify_qp = hns_roce_modify_qp,
 	.query_ah = hns_roce_query_ah,
 	.query_device = hns_roce_query_device,
-- 
2.20.1


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

* [for-next v4 3/4] RDMA/ocrdma: Remove unsupported modify_port callback
  2019-10-28 15:59 [for-next v4 0/4] RDMA: modify_port improvements Kamal Heib
  2019-10-28 15:59 ` [for-next v4 1/4] RDMA/core: Fix return code when modify_port isn't supported Kamal Heib
  2019-10-28 15:59 ` [for-next v4 2/4] RDMA/hns: Remove unsupported modify_port callback Kamal Heib
@ 2019-10-28 15:59 ` Kamal Heib
  2019-10-28 15:59 ` [for-next v4 4/4] RDMA/qedr: " Kamal Heib
  2019-11-06 17:35 ` [for-next v4 0/4] RDMA: modify_port improvements Jason Gunthorpe
  4 siblings, 0 replies; 6+ messages in thread
From: Kamal Heib @ 2019-10-28 15:59 UTC (permalink / raw)
  To: linux-rdma
  Cc: Doug Ledford, Jason Gunthorpe, Lijun Ou, Selvin Xavier,
	Michal Kalderon, Kamal Heib

There is no need to return always zero for function which is not
supported.

Fixes: fe2caefcdf58 ("RDMA/ocrdma: Add driver for Emulex OneConnect IBoE RDMAadapter")
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
---
 drivers/infiniband/hw/ocrdma/ocrdma_main.c  | 1 -
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 6 ------
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 2 --
 3 files changed, 9 deletions(-)

diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
index c15cfc6cef81..d8c47d24d6d6 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
@@ -166,7 +166,6 @@ static const struct ib_device_ops ocrdma_dev_ops = {
 	.get_port_immutable = ocrdma_port_immutable,
 	.map_mr_sg = ocrdma_map_mr_sg,
 	.mmap = ocrdma_mmap,
-	.modify_port = ocrdma_modify_port,
 	.modify_qp = ocrdma_modify_qp,
 	.poll_cq = ocrdma_poll_cq,
 	.post_recv = ocrdma_post_recv,
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
index e8267e590772..e72050de5734 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c
@@ -190,12 +190,6 @@ int ocrdma_query_port(struct ib_device *ibdev,
 	return 0;
 }
 
-int ocrdma_modify_port(struct ib_device *ibdev, u8 port, int mask,
-		       struct ib_port_modify *props)
-{
-	return 0;
-}
-
 static int ocrdma_add_mmap(struct ocrdma_ucontext *uctx, u64 phy_addr,
 			   unsigned long len)
 {
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h
index 32488da1b752..3a5010881be5 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h
@@ -54,8 +54,6 @@ int ocrdma_arm_cq(struct ib_cq *, enum ib_cq_notify_flags flags);
 int ocrdma_query_device(struct ib_device *, struct ib_device_attr *props,
 			struct ib_udata *uhw);
 int ocrdma_query_port(struct ib_device *, u8 port, struct ib_port_attr *props);
-int ocrdma_modify_port(struct ib_device *, u8 port, int mask,
-		       struct ib_port_modify *props);
 
 enum rdma_protocol_type
 ocrdma_query_protocol(struct ib_device *device, u8 port_num);
-- 
2.20.1


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

* [for-next v4 4/4] RDMA/qedr: Remove unsupported modify_port callback
  2019-10-28 15:59 [for-next v4 0/4] RDMA: modify_port improvements Kamal Heib
                   ` (2 preceding siblings ...)
  2019-10-28 15:59 ` [for-next v4 3/4] RDMA/ocrdma: " Kamal Heib
@ 2019-10-28 15:59 ` Kamal Heib
  2019-11-06 17:35 ` [for-next v4 0/4] RDMA: modify_port improvements Jason Gunthorpe
  4 siblings, 0 replies; 6+ messages in thread
From: Kamal Heib @ 2019-10-28 15:59 UTC (permalink / raw)
  To: linux-rdma
  Cc: Doug Ledford, Jason Gunthorpe, Lijun Ou, Selvin Xavier,
	Michal Kalderon, Kamal Heib

There is no need to return always zero for function which is not
supported.

Fixes: ac1b36e55a51 ("qedr: Add support for user context verbs")
Signed-off-by: Kamal Heib <kamalheib1@gmail.com>
---
 drivers/infiniband/hw/qedr/main.c  | 1 -
 drivers/infiniband/hw/qedr/verbs.c | 6 ------
 drivers/infiniband/hw/qedr/verbs.h | 2 --
 3 files changed, 9 deletions(-)

diff --git a/drivers/infiniband/hw/qedr/main.c b/drivers/infiniband/hw/qedr/main.c
index 5136b835e1ba..e5f36adb0120 100644
--- a/drivers/infiniband/hw/qedr/main.c
+++ b/drivers/infiniband/hw/qedr/main.c
@@ -212,7 +212,6 @@ static const struct ib_device_ops qedr_dev_ops = {
 	.get_link_layer = qedr_link_layer,
 	.map_mr_sg = qedr_map_mr_sg,
 	.mmap = qedr_mmap,
-	.modify_port = qedr_modify_port,
 	.modify_qp = qedr_modify_qp,
 	.modify_srq = qedr_modify_srq,
 	.poll_cq = qedr_poll_cq,
diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c
index 6f3ce86019b7..fee02ac47f32 100644
--- a/drivers/infiniband/hw/qedr/verbs.c
+++ b/drivers/infiniband/hw/qedr/verbs.c
@@ -250,12 +250,6 @@ int qedr_query_port(struct ib_device *ibdev, u8 port, struct ib_port_attr *attr)
 	return 0;
 }
 
-int qedr_modify_port(struct ib_device *ibdev, u8 port, int mask,
-		     struct ib_port_modify *props)
-{
-	return 0;
-}
-
 static int qedr_add_mmap(struct qedr_ucontext *uctx, u64 phy_addr,
 			 unsigned long len)
 {
diff --git a/drivers/infiniband/hw/qedr/verbs.h b/drivers/infiniband/hw/qedr/verbs.h
index 9aaa90283d6e..d81b81f86f0a 100644
--- a/drivers/infiniband/hw/qedr/verbs.h
+++ b/drivers/infiniband/hw/qedr/verbs.h
@@ -35,8 +35,6 @@
 int qedr_query_device(struct ib_device *ibdev,
 		      struct ib_device_attr *attr, struct ib_udata *udata);
 int qedr_query_port(struct ib_device *, u8 port, struct ib_port_attr *props);
-int qedr_modify_port(struct ib_device *, u8 port, int mask,
-		     struct ib_port_modify *props);
 
 int qedr_iw_query_gid(struct ib_device *ibdev, u8 port,
 		      int index, union ib_gid *gid);
-- 
2.20.1


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

* Re: [for-next v4 0/4] RDMA: modify_port improvements
  2019-10-28 15:59 [for-next v4 0/4] RDMA: modify_port improvements Kamal Heib
                   ` (3 preceding siblings ...)
  2019-10-28 15:59 ` [for-next v4 4/4] RDMA/qedr: " Kamal Heib
@ 2019-11-06 17:35 ` Jason Gunthorpe
  4 siblings, 0 replies; 6+ messages in thread
From: Jason Gunthorpe @ 2019-11-06 17:35 UTC (permalink / raw)
  To: Kamal Heib
  Cc: linux-rdma, Doug Ledford, Lijun Ou, Selvin Xavier, Michal Kalderon

On Mon, Oct 28, 2019 at 05:59:27PM +0200, Kamal Heib wrote:
> Changelog:
> v4: Allow only IB_PORT_CM_SUP fake manipulation for RoCE providers.
> v3: Improve [patch 1/4].
> v2: Include fixes lines.
> 
> This series includes three patches which fix the return values from
> modify_port() callbacks when they aren't supported.
> 
> Kamal Heib (4):
>   RDMA/core: Fix return code when modify_port isn't supported
>   RDMA/hns: Remove unsupported modify_port callback
>   RDMA/ocrdma: Remove unsupported modify_port callback
>   RDMA/qedr: Remove unsupported modify_port callback

Applied to for-next, thanks

Jason

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

end of thread, other threads:[~2019-11-06 17:35 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-28 15:59 [for-next v4 0/4] RDMA: modify_port improvements Kamal Heib
2019-10-28 15:59 ` [for-next v4 1/4] RDMA/core: Fix return code when modify_port isn't supported Kamal Heib
2019-10-28 15:59 ` [for-next v4 2/4] RDMA/hns: Remove unsupported modify_port callback Kamal Heib
2019-10-28 15:59 ` [for-next v4 3/4] RDMA/ocrdma: " Kamal Heib
2019-10-28 15:59 ` [for-next v4 4/4] RDMA/qedr: " Kamal Heib
2019-11-06 17:35 ` [for-next v4 0/4] RDMA: modify_port improvements 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.