public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH for-next 0/9] IB/usnic: Fix kbuild robot, sparse and smatch errs
@ 2013-12-17 16:48 Upinder Malhi
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA

This patch series fixes these kbuild robot, sparse and smatch errors:
https://lists.01.org/pipermail/kbuild/2013-December/000877.html
https://lists.01.org/pipermail/kbuild-all/2013-December/002354.html
https://lists.01.org/pipermail/kbuild-all/2013-December/002335.html
https://lists.01.org/pipermail/kbuild-all/2013-December/002337.html
http://www.spinics.net/lists/linux-rdma/msg18047.html
http://www.spinics.net/lists/linux-rdma/msg18048.html
http://www.spinics.net/lists/linux-rdma/msg18049.html
http://www.spinics.net/lists/linux-rdma/msg18050.html

IB/usnic: Fix stack frame size exceed warnings
IB/usnic: Fix format not a string literal
IB/usnic: Make usNIC built depend on Intel IOMMU
IB/usnic: Fix error handling with IS_ERR_OR_NULL
IB/usnic: Change BUG_ON to WARN_ON
IB/usnic: Initialize all of the data returned to
IB/usnic: Fix printk format warnings
IB/usnic: Remove duplicate and unnecessary
IB/usnic: Fix sparse should be static warnings

drivers/infiniband/hw/usnic/usnic_ib_main.c   |    2 +-
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |    2 +-
drivers/infiniband/hw/usnic/usnic_ib_main.c   |    5 ++--
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |    2 +-
drivers/infiniband/hw/usnic/usnic_vnic.c      |    2 --
drivers/infiniband/hw/usnic/Kconfig           |    3 +-
drivers/infiniband/hw/usnic/usnic_ib_main.c   |   10 +++++---
drivers/infiniband/hw/usnic/usnic_ib_verbs.c  |    2 +-
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |   16 ++++++-------
drivers/infiniband/hw/usnic/usnic_uiom.c      |    2 +-
drivers/infiniband/hw/usnic/usnic_ib_verbs.c  |    2 ++
drivers/infiniband/hw/usnic/usnic_ib_verbs.c  |    6 ++---
drivers/infiniband/hw/usnic/usnic_uiom.c      |   32 ++++++++++++++-----------
drivers/infiniband/hw/usnic/usnic_vnic.c      |    4 ++-
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |   19 +++++++--------
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h |   12 ++++-----
drivers/infiniband/hw/usnic/usnic_vnic.c      |   12 ++++-----
drivers/infiniband/hw/usnic/usnic_vnic.h      |   12 ++++-----
drivers/infiniband/hw/usnic/usnic_ib_main.c   |    4 ++-
drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |    4 ++-
drivers/infiniband/hw/usnic/usnic_ib_sysfs.c  |    2 +-
drivers/infiniband/hw/usnic/usnic_transport.c |    4 ++-
drivers/infiniband/hw/usnic/usnic_transport.h |    1 +
drivers/infiniband/hw/usnic/usnic_uiom.c      |    2 +-
24 files changed, 81 insertions(+), 81 deletions(-)
--
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] 22+ messages in thread

* [PATCH for-next 1/9] IB/usnic: Fix stack frame size exceed warnings
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
@ 2013-12-17 16:48   ` Upinder Malhi
  2013-12-17 16:48   ` [PATCH for-next 2/9] IB/usnic: Fix format not a string literal warnings Upinder Malhi
                     ` (8 subsequent siblings)
  9 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

Compiler spits out stack frame size exceeds warnings if
CONFIG_FRAME_WARN=1024 on usNIC code. This patch provides
a fix for the warnings.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_main.c   | 2 +-
 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
index 2bbfa09..1771eec 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
@@ -73,7 +73,7 @@ static void usnic_ib_dump_vf(struct usnic_ib_vf *vf, char *buf, int buf_sz)
 
 void usnic_ib_log_vf(struct usnic_ib_vf *vf)
 {
-	char buf[1024];
+	char buf[1000];
 	usnic_ib_dump_vf(vf, buf, sizeof(buf));
 	usnic_dbg(buf);
 }
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
index 24da928..5ba8678 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
@@ -430,7 +430,7 @@ static void qp_grp_and_vf_unbind(struct usnic_ib_qp_grp *qp_grp)
 static void log_spec(const struct usnic_vnic_res_spec
 					const *res_spec)
 {
-	char buf[1024];
+	char buf[512];
 	usnic_vnic_spec_dump(buf, sizeof(buf), res_spec);
 	usnic_dbg(buf);
 }
-- 
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 2/9] IB/usnic: Fix format not a string literal warnings
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  2013-12-17 16:48   ` [PATCH for-next 1/9] IB/usnic: Fix stack frame size exceed warnings Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
       [not found]     ` <1387298917-7365-3-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  2013-12-17 16:48   ` [PATCH for-next 3/9] IB/usnic: Make usNIC built depend on Intel IOMMU Upinder Malhi
                     ` (7 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

Few printks in usnic are called w/o a string literal.
Intel GCC is throwing warnings and this patch provides a fix
for these.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_main.c   | 5 ++---
 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 2 +-
 drivers/infiniband/hw/usnic/usnic_vnic.c      | 2 --
 3 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
index 1771eec..4d8cadc 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
@@ -75,7 +75,7 @@ void usnic_ib_log_vf(struct usnic_ib_vf *vf)
 {
 	char buf[1000];
 	usnic_ib_dump_vf(vf, buf, sizeof(buf));
-	usnic_dbg(buf);
+	usnic_dbg("%s\n", buf);
 }

 /* Start of netdev section */
@@ -372,8 +372,7 @@ static void usnic_ib_undiscover_pf(struct kref *kref)
 		}
 	}

-	if (!found)
-		WARN("Failed to remove PF %s\n", pci_name(dev));
+	WARN(found, "Failed to remove PF %s\n", pci_name(dev));

 	mutex_unlock(&usnic_ib_ibdev_list_lock);
 }
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
index 5ba8678..f647b6b 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
@@ -432,7 +432,7 @@ static void log_spec(const struct usnic_vnic_res_spec
 {
 	char buf[512];
 	usnic_vnic_spec_dump(buf, sizeof(buf), res_spec);
-	usnic_dbg(buf);
+	usnic_dbg("%s\n", buf);
 }

 struct usnic_ib_qp_grp *usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev,
diff --git a/drivers/infiniband/hw/usnic/usnic_vnic.c b/drivers/infiniband/hw/usnic/usnic_vnic.c
index 11c2449..ff0b32d 100644
--- a/drivers/infiniband/hw/usnic/usnic_vnic.c
+++ b/drivers/infiniband/hw/usnic/usnic_vnic.c
@@ -182,8 +182,6 @@ int usnic_vnic_spec_dump(char *buf, int buf_sz, const struct usnic_vnic_res_spec
 				res_cnt);
 	}

-	offset += scnprintf(buf + offset, buf_sz - offset,
-				"\n");
 	return offset;
 }

--
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 3/9] IB/usnic: Make usNIC built depend on Intel IOMMU
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  2013-12-17 16:48   ` [PATCH for-next 1/9] IB/usnic: Fix stack frame size exceed warnings Upinder Malhi
  2013-12-17 16:48   ` [PATCH for-next 2/9] IB/usnic: Fix format not a string literal warnings Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
  2013-12-17 16:48   ` [PATCH for-next 4/9] IB/usnic: Fix error handling with IS_ERR_OR_NULL Upinder Malhi
                     ` (6 subsequent siblings)
  9 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

usNIC requires Intel IOMMU to be present in order to function
correctly.  This patch adds a dependency on CONFIG_INTEL_IOMMU
of CONFIG_INFINIBAND_USNIC.  It also fixes iommu_domain_has_cap
not found error that is thrown if usNIC is built with !CONFIG_IOMMU_API.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/Kconfig | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/Kconfig b/drivers/infiniband/hw/usnic/Kconfig
index 0f14b6d..2cc8ba0 100644
--- a/drivers/infiniband/hw/usnic/Kconfig
+++ b/drivers/infiniband/hw/usnic/Kconfig
@@ -1,10 +1,9 @@
 config INFINIBAND_USNIC
 	tristate "Verbs support for Cisco VIC"
-	depends on NETDEVICES && ETHERNET && PCI
+	depends on NETDEVICES && ETHERNET && PCI && INTEL_IOMMU
 	select ENIC
 	select NET_VENDOR_CISCO
 	select PCI_IOV
-	select IOMMU_SUPPORT
 	select INFINIBAND_USER_ACCESS
 	---help---
 	  This is a low-level driver for Cisco's Virtual Interface
--
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 4/9] IB/usnic: Fix error handling with IS_ERR_OR_NULL
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
                     ` (2 preceding siblings ...)
  2013-12-17 16:48   ` [PATCH for-next 3/9] IB/usnic: Make usNIC built depend on Intel IOMMU Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
       [not found]     ` <1387298917-7365-5-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  2013-12-17 16:48   ` [PATCH for-next 5/9] IB/usnic: Change BUG_ON to WARN_ON Upinder Malhi
                     ` (5 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

Errors with IS_ERR_OR_NULL are not handleded correctly in few places
in usNIC.  This patch remedies that.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_main.c  | 10 ++++++----
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
index 4d8cadc..7200861 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
@@ -398,13 +398,14 @@ static struct usnic_ib_dev *usnic_ib_discover_pf(struct usnic_vnic *vnic)
 
 	us_ibdev = usnic_ib_device_add(parent_pci);
 	if (IS_ERR_OR_NULL(us_ibdev)) {
-		us_ibdev = ERR_PTR(-EINVAL);
+		us_ibdev = (us_ibdev) ? us_ibdev : ERR_PTR(-EFAULT);
 		goto out;
 	}
 
 	err = usnic_ib_sysfs_register_usdev(us_ibdev);
 	if (err) {
 		usnic_ib_device_remove(us_ibdev);
+		us_ibdev = ERR_PTR(err);
 		goto out;
 	}
 
@@ -459,9 +460,10 @@ int usnic_ib_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
 	}
 
 	pf = usnic_ib_discover_pf(vf->vnic);
-	if (!pf) {
-		usnic_err("Failed to discover pf of vnic %s with err%d\n",
-				pci_name(pdev), err);
+	if (IS_ERR_OR_NULL(pf)) {
+		usnic_err("Failed to discover pf of vnic %s with err%ld\n",
+				pci_name(pdev), PTR_ERR(pf));
+		err = (pf ? PTR_ERR(pf) : -EFAULT);
 		goto out_clean_vnic;
 	}
 
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
index d305e4e..e19ca90 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
@@ -574,7 +574,7 @@ struct ib_mr *usnic_ib_reg_mr(struct ib_pd *pd, u64 start, u64 length,
 	mr->umem = usnic_uiom_reg_get(to_upd(pd)->umem_pd, start, length,
 					access_flags, 0);
 	if (IS_ERR_OR_NULL(mr->umem)) {
-		err = PTR_ERR(mr->umem);
+		err = (mr->umem) ? PTR_ERR(mr->umem) : -EFAULT;
 		goto err_free;
 	}
 
-- 
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 5/9] IB/usnic: Change BUG_ON to WARN_ON
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
                     ` (3 preceding siblings ...)
  2013-12-17 16:48   ` [PATCH for-next 4/9] IB/usnic: Fix error handling with IS_ERR_OR_NULL Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
       [not found]     ` <1387298917-7365-6-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  2013-12-17 16:48   ` [PATCH for-next 6/9] IB/usnic: Initialize all of the data returned to userspace Upinder Malhi
                     ` (4 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

usNIC calls BUG_ON(spinlock_is_held..) at few places.  In some of these
instances, the call is made with another spinlock already held.  Change
all such calls in usNIC to WARN_ON to make it fool-proof.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 16 ++++++++--------
 drivers/infiniband/hw/usnic/usnic_uiom.c      |  2 +-
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
index f647b6b..ad57a77 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
@@ -82,7 +82,7 @@ static int add_fwd_filter(struct usnic_ib_qp_grp *qp_grp,
 	struct usnic_vnic_res_chunk *chunk;
 	int rq_idx;
 
-	BUG_ON(!spin_is_locked(&qp_grp->lock));
+	WARN_ON(!spin_is_locked(&qp_grp->lock));
 
 	chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ);
 	if (IS_ERR_OR_NULL(chunk) || chunk->cnt < 1) {
@@ -119,7 +119,7 @@ static int del_all_filters(struct usnic_ib_qp_grp *qp_grp)
 	int err, status;
 	struct usnic_fwd_filter_hndl *filter_hndl, *tmp;
 
-	BUG_ON(!spin_is_locked(&qp_grp->lock));
+	WARN_ON(!spin_is_locked(&qp_grp->lock));
 
 	status = 0;
 
@@ -145,7 +145,7 @@ static int enable_qp_grp(struct usnic_ib_qp_grp *qp_grp)
 	struct usnic_vnic_res_chunk *res_chunk;
 	struct usnic_vnic_res *res;
 
-	BUG_ON(!spin_is_locked(&qp_grp->lock));
+	WARN_ON(!spin_is_locked(&qp_grp->lock));
 
 	vnic_idx = usnic_vnic_get_index(qp_grp->vf->vnic);
 
@@ -189,7 +189,7 @@ static int disable_qp_grp(struct usnic_ib_qp_grp *qp_grp)
 	struct usnic_vnic_res *res;
 	int status = 0;
 
-	BUG_ON(!spin_is_locked(&qp_grp->lock));
+	WARN_ON(!spin_is_locked(&qp_grp->lock));
 	vnic_idx = usnic_vnic_get_index(qp_grp->vf->vnic);
 
 	res_chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ);
@@ -392,7 +392,7 @@ static int qp_grp_and_vf_bind(struct usnic_ib_vf *vf,
 	int err;
 	struct pci_dev *pdev;
 
-	BUG_ON(!spin_is_locked(&vf->lock));
+	WARN_ON(!spin_is_locked(&vf->lock));
 
 	pdev = usnic_vnic_get_pdev(vf->vnic);
 	if (vf->qp_grp_ref_cnt++ == 0) {
@@ -416,7 +416,7 @@ static void qp_grp_and_vf_unbind(struct usnic_ib_qp_grp *qp_grp)
 	struct pci_dev *pdev;
 	struct usnic_ib_pd *pd;
 
-	BUG_ON(!spin_is_locked(&qp_grp->vf->lock));
+	WARN_ON(!spin_is_locked(&qp_grp->vf->lock));
 
 	pd = qp_grp->vf->pd;
 	pdev = usnic_vnic_get_pdev(qp_grp->vf->vnic);
@@ -446,7 +446,7 @@ struct usnic_ib_qp_grp *usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev,
 	u16 port_num;
 	int err;
 
-	BUG_ON(!spin_is_locked(&vf->lock));
+	WARN_ON(!spin_is_locked(&vf->lock));
 
 	err = usnic_vnic_res_spec_satisfied(&min_transport_spec[transport],
 						res_spec);
@@ -514,7 +514,7 @@ void usnic_ib_qp_grp_destroy(struct usnic_ib_qp_grp *qp_grp)
 	enum usnic_transport_type transport;
 
 	WARN_ON(qp_grp->state != IB_QPS_RESET);
-	BUG_ON(!spin_is_locked(&qp_grp->vf->lock));
+	WARN_ON(!spin_is_locked(&qp_grp->vf->lock));
 
 	transport = qp_grp->filters[DFLT_FILTER_IDX].transport;
 	default_port_num = qp_grp->filters[DFLT_FILTER_IDX].port_num;
diff --git a/drivers/infiniband/hw/usnic/usnic_uiom.c b/drivers/infiniband/hw/usnic/usnic_uiom.c
index c44acbc..359897d 100644
--- a/drivers/infiniband/hw/usnic/usnic_uiom.c
+++ b/drivers/infiniband/hw/usnic/usnic_uiom.c
@@ -270,7 +270,7 @@ iter_chunk:
 				pa_end = pa;
 			}
 
-			BUG_ON(va_start == -EINVAL);
+			WARN_ON(va_start == -EINVAL);
 
 			if ((pa_end + PAGE_SIZE != pa) &&
 					(pa != pa_start)) {
-- 
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 6/9] IB/usnic: Initialize all of the data returned to userspace
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
                     ` (4 preceding siblings ...)
  2013-12-17 16:48   ` [PATCH for-next 5/9] IB/usnic: Change BUG_ON to WARN_ON Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
  2013-12-17 16:48   ` [PATCH for-next 7/9] IB/usnic: Fix printk format warnings Upinder Malhi
                     ` (3 subsequent siblings)
  9 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

The reserved fields in usnic_ib_create_qp_resp are returned
to userspace uninitialized.  Set these to 0.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
index e19ca90..9f0945a 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
@@ -49,6 +49,8 @@ static int usnic_ib_fill_create_qp_resp(struct usnic_ib_qp_grp *qp_grp,
 	struct usnic_vnic_res_chunk *chunk;
 	int i, err;

+	memset(&resp, 0, sizeof(resp));
+
 	us_ibdev = qp_grp->vf->pf;
 	pdev = usnic_vnic_get_pdev(qp_grp->vf->vnic);
 	if (!pdev) {
--
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 7/9] IB/usnic: Fix printk format warnings
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
                     ` (5 preceding siblings ...)
  2013-12-17 16:48   ` [PATCH for-next 6/9] IB/usnic: Initialize all of the data returned to userspace Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
       [not found]     ` <1387298917-7365-8-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  2013-12-17 16:48   ` [PATCH for-next 8/9] IB/usnic: Remove duplicate and unnecessary consts Upinder Malhi
                     ` (2 subsequent siblings)
  9 siblings, 1 reply; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

dma_addr_t is formatted as %llx and size_t as %lx at few places
in usNIC. Change these to %pa and %zx, respectively.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c |  6 +++---
 drivers/infiniband/hw/usnic/usnic_uiom.c     | 32 ++++++++++++++++------------
 drivers/infiniband/hw/usnic/usnic_vnic.c     |  4 ++--
 3 files changed, 23 insertions(+), 19 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
index 9f0945a..8f8dfa2 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
@@ -592,7 +592,7 @@ int usnic_ib_dereg_mr(struct ib_mr *ibmr)
 {
 	struct usnic_ib_mr *mr = to_umr(ibmr);
 
-	usnic_dbg("va 0x%lx length 0x%lx\n", mr->umem->va, mr->umem->length);
+	usnic_dbg("va 0x%lx length 0x%zx\n", mr->umem->va, mr->umem->length);
 
 	usnic_uiom_reg_release(mr->umem, ibmr->pd->uobject->context->closing);
 	kfree(mr);
@@ -667,8 +667,8 @@ int usnic_ib_mmap(struct ib_ucontext *context,
 			}
 			bus_addr = bar->bus_addr;
 			len = bar->len;
-			usnic_dbg("bus: 0x%llx vaddr: %p size: %ld\n",
-					bus_addr, bar->vaddr, bar->len);
+			usnic_dbg("bus: %pa vaddr: %p size: %ld\n",
+					&bus_addr, bar->vaddr, bar->len);
 			mutex_unlock(&us_ibdev->usdev_lock);
 
 			return remap_pfn_range(vma,
diff --git a/drivers/infiniband/hw/usnic/usnic_uiom.c b/drivers/infiniband/hw/usnic/usnic_uiom.c
index 359897d..0477d70 100644
--- a/drivers/infiniband/hw/usnic/usnic_uiom.c
+++ b/drivers/infiniband/hw/usnic/usnic_uiom.c
@@ -81,15 +81,16 @@ static void usnic_uiom_put_pages(struct list_head *chunk_list, int dirty)
 	struct usnic_uiom_chunk *chunk, *tmp;
 	struct page *page;
 	int i;
+	dma_addr_t pa;
 
 	list_for_each_entry_safe(chunk, tmp, chunk_list, list) {
 		for (i = 0; i < chunk->nents; i++) {
 			page = sg_page(&chunk->page_list[i]);
+			pa = sg_phys(&chunk->page_list[i]);
 			if (dirty)
 				set_page_dirty_lock(page);
 			put_page(page);
-			usnic_dbg("pa: 0x%llx\n",
-					sg_phys(&chunk->page_list[i]));
+			usnic_dbg("pa: %pa\n", &pa);
 		}
 		kfree(chunk);
 	}
@@ -108,6 +109,7 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
 	int off;
 	int i;
 	int flags;
+	dma_addr_t pa;
 	DEFINE_DMA_ATTRS(attrs);
 
 	if (dmasync)
@@ -167,9 +169,9 @@ static int usnic_uiom_get_pages(unsigned long addr, size_t size, int writable,
 				sg_set_page(&chunk->page_list[i],
 							page_list[i + off],
 							PAGE_SIZE, 0);
-				usnic_dbg("va: 0x%lx pa: 0x%llx\n",
-						cur_base + i*PAGE_SIZE,
-						sg_phys(&chunk->page_list[i]));
+				pa = sg_phys(&chunk->page_list[i]);
+				usnic_dbg("va: 0x%lx pa: %pa\n",
+						cur_base + i*PAGE_SIZE, &pa);
 			}
 			cur_base += chunk->nents * PAGE_SIZE;
 			ret -= chunk->nents;
@@ -247,7 +249,9 @@ static int usnic_uiom_map_sorted_intervals(struct list_head *intervals,
 	size_t size;
 	struct usnic_uiom_chunk *chunk;
 	struct usnic_uiom_interval_node *interval_node;
-	long int pa, pa_start, pa_end;
+	dma_addr_t pa;
+	dma_addr_t pa_start = 0;
+	dma_addr_t pa_end = 0;
 	long int va_start = -EINVAL;
 	struct usnic_uiom_pd *pd = uiomr->pd;
 	long int va = uiomr->va & PAGE_MASK;
@@ -276,13 +280,13 @@ iter_chunk:
 					(pa != pa_start)) {
 				/* PAs are not contiguous */
 				size = pa_end - pa_start + PAGE_SIZE;
-				usnic_dbg("va 0x%lx pa 0x%lx size 0x%lx flags 0x%x",
-					va_start, pa_start, size, flags);
+				usnic_dbg("va 0x%lx pa %pa size 0x%zx flags 0x%x",
+					va_start, &pa_start, size, flags);
 				err = iommu_map(pd->domain, va_start, pa_start,
 							size, flags);
 				if (err) {
-					usnic_err("Failed to map va 0x%lx pa 0x%lx size 0x%zx with err %d\n",
-						va_start, pa_start, size, err);
+					usnic_err("Failed to map va 0x%lx pa 0x%pa size 0x%zx with err %d\n",
+						va_start, &pa_start, size, err);
 					goto err_out;
 				}
 				va_start = va;
@@ -293,13 +297,13 @@ iter_chunk:
 			if ((va >> PAGE_SHIFT) == interval_node->last) {
 				/* Last page of the interval */
 				size = pa - pa_start + PAGE_SIZE;
-				usnic_dbg("va 0x%lx pa 0x%lx size 0x%lx flags 0x%x\n",
-					va_start, pa_start, size, flags);
+				usnic_dbg("va 0x%lx pa %pa size 0x%zx flags 0x%x\n",
+					va_start, &pa_start, size, flags);
 				err = iommu_map(pd->domain, va_start, pa_start,
 						size, flags);
 				if (err) {
-					usnic_err("Failed to map va 0x%lx pa 0x%lx size 0x%zx with err %d\n",
-						va_start, pa_start, size, err);
+					usnic_err("Failed to map va 0x%lx pa %pa size 0x%zx with err %d\n",
+						va_start, &pa_start, size, err);
 					goto err_out;
 				}
 				break;
diff --git a/drivers/infiniband/hw/usnic/usnic_vnic.c b/drivers/infiniband/hw/usnic/usnic_vnic.c
index ff0b32d..02d66d9 100644
--- a/drivers/infiniband/hw/usnic/usnic_vnic.c
+++ b/drivers/infiniband/hw/usnic/usnic_vnic.c
@@ -86,9 +86,9 @@ int usnic_vnic_dump(struct usnic_vnic *vnic, char *buf,
 	offset = 0;
 	bar0 = usnic_vnic_get_bar(vnic, 0);
 	offset += scnprintf(buf + offset, buf_sz - offset,
-			"VF:%hu BAR0 bus_addr=0x%llx vaddr=0x%p size=%ld ",
+			"VF:%hu BAR0 bus_addr=%pa vaddr=0x%p size=%ld ",
 			usnic_vnic_get_index(vnic),
-			bar0->bus_addr,
+			&bar0->bus_addr,
 			bar0->vaddr, bar0->len);
 	if (printtitle)
 		offset += printtitle(hdr_obj, buf + offset, buf_sz - offset);
-- 
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 8/9] IB/usnic: Remove duplicate and unnecessary consts
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
                     ` (6 preceding siblings ...)
  2013-12-17 16:48   ` [PATCH for-next 7/9] IB/usnic: Fix printk format warnings Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
  2013-12-17 16:48   ` [PATCH for-next 9/9] IB/usnic: Fix sparse should be static warnings Upinder Malhi
  2013-12-20 20:28   ` [PATCH for-next 0/9] IB/usnic: Fix kbuild robot, sparse and smatch errs Upinder Malhi (umalhi)
  9 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

Sparse, https://lists.01.org/pipermail/kbuild/2013-December/000877.html,
gave lots of duplicate const warnings.  Remove the duplicate const as well
as the original const bc both consts are unnecessary.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 19 +++++++++----------
 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h | 12 +++++-------
 drivers/infiniband/hw/usnic/usnic_vnic.c      | 12 +++++-------
 drivers/infiniband/hw/usnic/usnic_vnic.h      | 12 +++++-------
 4 files changed, 24 insertions(+), 31 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
index ad57a77..b5fb4d4 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
@@ -332,8 +332,8 @@ int usnic_ib_qp_grp_modify(struct usnic_ib_qp_grp *qp_grp,
 }

 struct usnic_vnic_res_chunk**
-alloc_res_chunk_list(struct usnic_vnic *vnic, const struct usnic_vnic_res_spec
-			const *res_spec, void *owner_obj)
+alloc_res_chunk_list(struct usnic_vnic *vnic,
+			struct usnic_vnic_res_spec *res_spec, void *owner_obj)
 {
 	enum usnic_vnic_res_type res_type;
 	struct usnic_vnic_res_chunk **res_chunk_list;
@@ -427,20 +427,19 @@ static void qp_grp_and_vf_unbind(struct usnic_ib_qp_grp *qp_grp)
 	qp_grp->vf = NULL;
 }

-static void log_spec(const struct usnic_vnic_res_spec
-					const *res_spec)
+static void log_spec(struct usnic_vnic_res_spec *res_spec)
 {
 	char buf[512];
 	usnic_vnic_spec_dump(buf, sizeof(buf), res_spec);
 	usnic_dbg("%s\n", buf);
 }

-struct usnic_ib_qp_grp *usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev,
-				struct usnic_ib_vf *vf,
-				struct usnic_ib_pd *pd,
-				const struct usnic_vnic_res_spec
-				const *res_spec,
-				enum usnic_transport_type transport)
+struct usnic_ib_qp_grp *
+usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev,
+			struct usnic_ib_vf *vf,
+			struct usnic_ib_pd *pd,
+			struct usnic_vnic_res_spec *res_spec,
+			enum usnic_transport_type transport)
 {
 	struct usnic_ib_qp_grp *qp_grp;
 	u16 port_num;
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h
index 37423f8..6416a95 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h
@@ -75,13 +75,11 @@ usnic_vnic_res_spec min_transport_spec[USNIC_TRANSPORT_MAX] = {
 const char *usnic_ib_qp_grp_state_to_string(enum ib_qp_state state);
 int usnic_ib_qp_grp_dump_hdr(char *buf, int buf_sz);
 int usnic_ib_qp_grp_dump_rows(void *obj, char *buf, int buf_sz);
-struct usnic_ib_qp_grp *usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev,
-						struct usnic_ib_vf *vf,
-						struct usnic_ib_pd *pd,
-						const struct usnic_vnic_res_spec
-						const *res_spec,
-						enum usnic_transport_type
-							transport);
+struct usnic_ib_qp_grp *
+usnic_ib_qp_grp_create(struct usnic_fwd_dev *ufdev, struct usnic_ib_vf *vf,
+			struct usnic_ib_pd *pd,
+			struct usnic_vnic_res_spec *res_spec,
+			enum usnic_transport_type transport);
 void usnic_ib_qp_grp_destroy(struct usnic_ib_qp_grp *qp_grp);
 int usnic_ib_qp_grp_modify(struct usnic_ib_qp_grp *qp_grp,
 				enum ib_qp_state new_state,
diff --git a/drivers/infiniband/hw/usnic/usnic_vnic.c b/drivers/infiniband/hw/usnic/usnic_vnic.c
index 02d66d9..5a50acb 100644
--- a/drivers/infiniband/hw/usnic/usnic_vnic.c
+++ b/drivers/infiniband/hw/usnic/usnic_vnic.c
@@ -138,10 +138,8 @@ void usnic_vnic_res_spec_update(struct usnic_vnic_res_spec *spec,
 	WARN_ON(1);
 }

-int usnic_vnic_res_spec_satisfied(const struct usnic_vnic_res_spec
-					const *min_spec,
-					const struct usnic_vnic_res_spec
-					const *res_spec)
+int usnic_vnic_res_spec_satisfied(const struct usnic_vnic_res_spec *min_spec,
+					struct usnic_vnic_res_spec *res_spec)
 {
 	int found, i, j;

@@ -165,8 +163,8 @@ int usnic_vnic_res_spec_satisfied(const struct usnic_vnic_res_spec
 	return 0;
 }

-int usnic_vnic_spec_dump(char *buf, int buf_sz, const struct usnic_vnic_res_spec
-						const *res_spec)
+int usnic_vnic_spec_dump(char *buf, int buf_sz,
+				struct usnic_vnic_res_spec *res_spec)
 {
 	enum usnic_vnic_res_type res_type;
 	int res_cnt;
@@ -186,7 +184,7 @@ int usnic_vnic_spec_dump(char *buf, int buf_sz, const struct usnic_vnic_res_spec
 }

 int usnic_vnic_check_room(struct usnic_vnic *vnic,
-			const struct usnic_vnic_res_spec const *res_spec)
+				struct usnic_vnic_res_spec *res_spec)
 {
 	int i;
 	enum usnic_vnic_res_type res_type;
diff --git a/drivers/infiniband/hw/usnic/usnic_vnic.h b/drivers/infiniband/hw/usnic/usnic_vnic.h
index 0a69a5d..14d931a 100644
--- a/drivers/infiniband/hw/usnic/usnic_vnic.h
+++ b/drivers/infiniband/hw/usnic/usnic_vnic.h
@@ -77,14 +77,12 @@ int usnic_vnic_dump(struct usnic_vnic *vnic, char *buf, int buf_sz,
 void usnic_vnic_res_spec_update(struct usnic_vnic_res_spec *spec,
 				enum usnic_vnic_res_type trgt_type,
 				u16 cnt);
-int usnic_vnic_res_spec_satisfied(const struct usnic_vnic_res_spec
-					const *min_spec,
-					const struct usnic_vnic_res_spec
-					const *res_spec);
-int usnic_vnic_spec_dump(char *buf, int buf_sz, const struct usnic_vnic_res_spec
-						const *res_spec);
+int usnic_vnic_res_spec_satisfied(const struct usnic_vnic_res_spec *min_spec,
+					struct usnic_vnic_res_spec *res_spec);
+int usnic_vnic_spec_dump(char *buf, int buf_sz,
+				struct usnic_vnic_res_spec *res_spec);
 int usnic_vnic_check_room(struct usnic_vnic *vnic,
-			const struct usnic_vnic_res_spec const *res_spec);
+				struct usnic_vnic_res_spec *res_spec);
 int usnic_vnic_res_cnt(struct usnic_vnic *vnic,
 				enum usnic_vnic_res_type type);
 int usnic_vnic_res_free_cnt(struct usnic_vnic *vnic,
--
1.8.1

--
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] 22+ messages in thread

* [PATCH for-next 9/9] IB/usnic: Fix sparse should be static warnings
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
                     ` (7 preceding siblings ...)
  2013-12-17 16:48   ` [PATCH for-next 8/9] IB/usnic: Remove duplicate and unnecessary consts Upinder Malhi
@ 2013-12-17 16:48   ` Upinder Malhi
       [not found]     ` <1387298917-7365-10-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  2013-12-20 20:28   ` [PATCH for-next 0/9] IB/usnic: Fix kbuild robot, sparse and smatch errs Upinder Malhi (umalhi)
  9 siblings, 1 reply; 22+ messages in thread
From: Upinder Malhi @ 2013-12-17 16:48 UTC (permalink / raw)
  To: linux-rdma-u79uwXL29TY76Z2rM5mHXA; +Cc: Upinder Malhi

Sparse spit out few functions should be static warnings.  This
patch provides a fix for the warnings.

Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
---
 drivers/infiniband/hw/usnic/usnic_ib_main.c   | 4 +++-
 drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 4 ++--
 drivers/infiniband/hw/usnic/usnic_ib_sysfs.c  | 2 +-
 drivers/infiniband/hw/usnic/usnic_transport.c | 4 ++--
 drivers/infiniband/hw/usnic/usnic_transport.h | 1 +
 drivers/infiniband/hw/usnic/usnic_uiom.c      | 2 +-
 6 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
index 7200861..76bd097 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
@@ -423,7 +423,8 @@ static DEFINE_PCI_DEVICE_TABLE(usnic_ib_pci_ids) = {
 	{0,}
 };
 
-int usnic_ib_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
+static int usnic_ib_pci_probe(struct pci_dev *pdev,
+				const struct pci_device_id *id)
 {
 	int err;
 	struct usnic_ib_dev *pf;
@@ -579,6 +580,7 @@ static void __exit usnic_ib_destroy(void)
 {
 	usnic_dbg("\n");
 	usnic_debugfs_exit();
+	usnic_transport_fini();
 	unregister_netdevice_notifier(&usnic_ib_netdevice_notifier);
 	pci_unregister_driver(&usnic_ib_pci_driver);
 	usnic_uiom_fini();
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
index b5fb4d4..788f47a 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
@@ -331,7 +331,7 @@ int usnic_ib_qp_grp_modify(struct usnic_ib_qp_grp *qp_grp,
 	return status;
 }
 
-struct usnic_vnic_res_chunk**
+static struct usnic_vnic_res_chunk**
 alloc_res_chunk_list(struct usnic_vnic *vnic,
 			struct usnic_vnic_res_spec *res_spec, void *owner_obj)
 {
@@ -377,7 +377,7 @@ out_free_res:
 	return ERR_PTR(err);
 }
 
-void free_qp_grp_res(struct usnic_vnic_res_chunk **res_chunk_list)
+static void free_qp_grp_res(struct usnic_vnic_res_chunk **res_chunk_list)
 {
 	int i;
 	for (i = 0; res_chunk_list[i]; i++)
diff --git a/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c b/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c
index e7925e4..bad985e 100644
--- a/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c
+++ b/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c
@@ -282,7 +282,7 @@ static struct attribute *usnic_ib_qpn_default_attrs[] = {
 	NULL
 };
 
-struct kobj_type usnic_ib_qpn_type = {
+static struct kobj_type usnic_ib_qpn_type = {
 	.sysfs_ops = &usnic_ib_qpn_sysfs_ops,
 	.default_attrs = usnic_ib_qpn_default_attrs
 };
diff --git a/drivers/infiniband/hw/usnic/usnic_transport.c b/drivers/infiniband/hw/usnic/usnic_transport.c
index 6f3d245..723bd6c 100644
--- a/drivers/infiniband/hw/usnic/usnic_transport.c
+++ b/drivers/infiniband/hw/usnic/usnic_transport.c
@@ -26,7 +26,7 @@
 static unsigned long *roce_bitmap;
 static u16 roce_next_port = 1;
 #define ROCE_BITMAP_SZ ((1 << (8 /*CHAR_BIT*/ * sizeof(u16)))/8 /*CHAR BIT*/)
-DEFINE_SPINLOCK(roce_bitmap_lock);
+static DEFINE_SPINLOCK(roce_bitmap_lock);
 
 static const char *transport_to_str(enum usnic_transport_type type)
 {
@@ -106,7 +106,7 @@ out_roce_custom:
 	}
 }
 
-int usnic_transport_init()
+int usnic_transport_init(void)
 {
 	roce_bitmap = kzalloc(ROCE_BITMAP_SZ, GFP_KERNEL);
 	if (!roce_bitmap) {
diff --git a/drivers/infiniband/hw/usnic/usnic_transport.h b/drivers/infiniband/hw/usnic/usnic_transport.h
index e4c924e..091fdaf 100644
--- a/drivers/infiniband/hw/usnic/usnic_transport.h
+++ b/drivers/infiniband/hw/usnic/usnic_transport.h
@@ -24,4 +24,5 @@
 u16 usnic_transport_rsrv_port(enum usnic_transport_type type, u16 port_num);
 void usnic_transport_unrsrv_port(enum usnic_transport_type type, u16 port_num);
 int usnic_transport_init(void);
+void usnic_transport_fini(void);
 #endif /* !USNIC_TRANSPORT_H */
diff --git a/drivers/infiniband/hw/usnic/usnic_uiom.c b/drivers/infiniband/hw/usnic/usnic_uiom.c
index 0477d70..200941f 100644
--- a/drivers/infiniband/hw/usnic/usnic_uiom.c
+++ b/drivers/infiniband/hw/usnic/usnic_uiom.c
@@ -46,7 +46,7 @@
 #include "usnic_uiom.h"
 #include "usnic_uiom_interval_tree.h"
 
-struct workqueue_struct *usnic_uiom_wq;
+static struct workqueue_struct *usnic_uiom_wq;
 
 #define USNIC_UIOM_PAGE_CHUNK						\
 	((PAGE_SIZE - offsetof(struct usnic_uiom_chunk, page_list))	/\
-- 
1.8.1

--
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] 22+ messages in thread

* Re: [PATCH for-next 0/9] IB/usnic: Fix kbuild robot, sparse and smatch errs
       [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
                     ` (8 preceding siblings ...)
  2013-12-17 16:48   ` [PATCH for-next 9/9] IB/usnic: Fix sparse should be static warnings Upinder Malhi
@ 2013-12-20 20:28   ` Upinder Malhi (umalhi)
  9 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi (umalhi) @ 2013-12-20 20:28 UTC (permalink / raw)
  To: <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

This patch set is void.  Succeeded by http://www.spinics.net/lists/linux-rdma/msg18170.html.

Upinder

On Dec 17, 2013, at 8:48 AM, Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org> wrote:

> This patch series fixes these kbuild robot, sparse and smatch errors:
> https://lists.01.org/pipermail/kbuild/2013-December/000877.html
> https://lists.01.org/pipermail/kbuild-all/2013-December/002354.html
> https://lists.01.org/pipermail/kbuild-all/2013-December/002335.html
> https://lists.01.org/pipermail/kbuild-all/2013-December/002337.html
> http://www.spinics.net/lists/linux-rdma/msg18047.html
> http://www.spinics.net/lists/linux-rdma/msg18048.html
> http://www.spinics.net/lists/linux-rdma/msg18049.html
> http://www.spinics.net/lists/linux-rdma/msg18050.html
> 
> IB/usnic: Fix stack frame size exceed warnings
> IB/usnic: Fix format not a string literal
> IB/usnic: Make usNIC built depend on Intel IOMMU
> IB/usnic: Fix error handling with IS_ERR_OR_NULL
> IB/usnic: Change BUG_ON to WARN_ON
> IB/usnic: Initialize all of the data returned to
> IB/usnic: Fix printk format warnings
> IB/usnic: Remove duplicate and unnecessary
> IB/usnic: Fix sparse should be static warnings
> 
> drivers/infiniband/hw/usnic/usnic_ib_main.c   |    2 +-
> drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |    2 +-
> drivers/infiniband/hw/usnic/usnic_ib_main.c   |    5 ++--
> drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |    2 +-
> drivers/infiniband/hw/usnic/usnic_vnic.c      |    2 --
> drivers/infiniband/hw/usnic/Kconfig           |    3 +-
> drivers/infiniband/hw/usnic/usnic_ib_main.c   |   10 +++++---
> drivers/infiniband/hw/usnic/usnic_ib_verbs.c  |    2 +-
> drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |   16 ++++++-------
> drivers/infiniband/hw/usnic/usnic_uiom.c      |    2 +-
> drivers/infiniband/hw/usnic/usnic_ib_verbs.c  |    2 ++
> drivers/infiniband/hw/usnic/usnic_ib_verbs.c  |    6 ++---
> drivers/infiniband/hw/usnic/usnic_uiom.c      |   32 ++++++++++++++-----------
> drivers/infiniband/hw/usnic/usnic_vnic.c      |    4 ++-
> drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |   19 +++++++--------
> drivers/infiniband/hw/usnic/usnic_ib_qp_grp.h |   12 ++++-----
> drivers/infiniband/hw/usnic/usnic_vnic.c      |   12 ++++-----
> drivers/infiniband/hw/usnic/usnic_vnic.h      |   12 ++++-----
> drivers/infiniband/hw/usnic/usnic_ib_main.c   |    4 ++-
> drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c |    4 ++-
> drivers/infiniband/hw/usnic/usnic_ib_sysfs.c  |    2 +-
> drivers/infiniband/hw/usnic/usnic_transport.c |    4 ++-
> drivers/infiniband/hw/usnic/usnic_transport.h |    1 +
> drivers/infiniband/hw/usnic/usnic_uiom.c      |    2 +-
> 24 files changed, 81 insertions(+), 81 deletions(-)
> --
> 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

--
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] 22+ messages in thread

* Re: [PATCH for-next 2/9] IB/usnic: Fix format not a string literal warnings
       [not found]     ` <1387298917-7365-3-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
@ 2013-12-21  9:58       ` Bart Van Assche
       [not found]         ` <52B56634.1020300-HInyCGIudOg@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Bart Van Assche @ 2013-12-21  9:58 UTC (permalink / raw)
  To: Upinder Malhi, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On 12/17/13 17:48, Upinder Malhi wrote:
> Few printks in usnic are called w/o a string literal.
> Intel GCC is throwing warnings and this patch provides a fix
> for these.
> 
> [ ... ]
> @@ -372,8 +372,7 @@ static void usnic_ib_undiscover_pf(struct kref *kref)
>  		}
>  	}
> 
> -	if (!found)
> -		WARN("Failed to remove PF %s\n", pci_name(dev));
> +	WARN(found, "Failed to remove PF %s\n", pci_name(dev));
> 
>  	mutex_unlock(&usnic_ib_ibdev_list_lock);
>  }

The old code printed a warning if found == 0. The new code prints a
warning if found != 0. If this is on purpose I think this change should
be in a separate patch.

Bart.
--
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] 22+ messages in thread

* Re: [PATCH for-next 4/9] IB/usnic: Fix error handling with IS_ERR_OR_NULL
       [not found]     ` <1387298917-7365-5-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
@ 2013-12-21 10:00       ` Bart Van Assche
       [not found]         ` <52B566A9.1080908-HInyCGIudOg@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Bart Van Assche @ 2013-12-21 10:00 UTC (permalink / raw)
  To: Upinder Malhi, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On 12/17/13 17:48, Upinder Malhi wrote:
> Errors with IS_ERR_OR_NULL are not handleded correctly in few places
> in usNIC.  This patch remedies that.
> 
> Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
> ---
>  drivers/infiniband/hw/usnic/usnic_ib_main.c  | 10 ++++++----
>  drivers/infiniband/hw/usnic/usnic_ib_verbs.c |  2 +-
>  2 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
> index 4d8cadc..7200861 100644
> --- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
> +++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
> @@ -398,13 +398,14 @@ static struct usnic_ib_dev *usnic_ib_discover_pf(struct usnic_vnic *vnic)
>  
>  	us_ibdev = usnic_ib_device_add(parent_pci);
>  	if (IS_ERR_OR_NULL(us_ibdev)) {
> -		us_ibdev = ERR_PTR(-EINVAL);
> +		us_ibdev = (us_ibdev) ? us_ibdev : ERR_PTR(-EFAULT);
>  		goto out;
>  	}
>  
>  	err = usnic_ib_sysfs_register_usdev(us_ibdev);
>  	if (err) {
>  		usnic_ib_device_remove(us_ibdev);
> +		us_ibdev = ERR_PTR(err);
>  		goto out;
>  	}
>  
> @@ -459,9 +460,10 @@ int usnic_ib_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>  	}
>  
>  	pf = usnic_ib_discover_pf(vf->vnic);
> -	if (!pf) {
> -		usnic_err("Failed to discover pf of vnic %s with err%d\n",
> -				pci_name(pdev), err);
> +	if (IS_ERR_OR_NULL(pf)) {
> +		usnic_err("Failed to discover pf of vnic %s with err%ld\n",
> +				pci_name(pdev), PTR_ERR(pf));
> +		err = (pf ? PTR_ERR(pf) : -EFAULT);
>  		goto out_clean_vnic;
>  	}
>  
> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
> index d305e4e..e19ca90 100644
> --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
> +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
> @@ -574,7 +574,7 @@ struct ib_mr *usnic_ib_reg_mr(struct ib_pd *pd, u64 start, u64 length,
>  	mr->umem = usnic_uiom_reg_get(to_upd(pd)->umem_pd, start, length,
>  					access_flags, 0);
>  	if (IS_ERR_OR_NULL(mr->umem)) {
> -		err = PTR_ERR(mr->umem);
> +		err = (mr->umem) ? PTR_ERR(mr->umem) : -EFAULT;
>  		goto err_free;
>  	}

Three out of four of the above changes introduce superfluous
parentheses. Please do not introduce superfluous parentheses that do not
improve readability.

Bart.


--
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] 22+ messages in thread

* Re: [PATCH for-next 5/9] IB/usnic: Change BUG_ON to WARN_ON
       [not found]     ` <1387298917-7365-6-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
@ 2013-12-21 10:04       ` Bart Van Assche
       [not found]         ` <52B56799.2010306-HInyCGIudOg@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Bart Van Assche @ 2013-12-21 10:04 UTC (permalink / raw)
  To: Upinder Malhi, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On 12/17/13 17:48, Upinder Malhi wrote:
> usNIC calls BUG_ON(spinlock_is_held..) at few places.  In some of these
> instances, the call is made with another spinlock already held.  Change
> all such calls in usNIC to WARN_ON to make it fool-proof.
> 
> Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
> ---
>  drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 16 ++++++++--------
>  drivers/infiniband/hw/usnic/usnic_uiom.c      |  2 +-
>  2 files changed, 9 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
> index f647b6b..ad57a77 100644
> --- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
> +++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
> @@ -82,7 +82,7 @@ static int add_fwd_filter(struct usnic_ib_qp_grp *qp_grp,
>  	struct usnic_vnic_res_chunk *chunk;
>  	int rq_idx;
>  
> -	BUG_ON(!spin_is_locked(&qp_grp->lock));
> +	WARN_ON(!spin_is_locked(&qp_grp->lock));
>  
>  	chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ);
>  	if (IS_ERR_OR_NULL(chunk) || chunk->cnt < 1) {

Please consider using lockdep_assert_held() instead of
BUG_ON(!spin_is_locked()) or WARN_ON(!spin_is_locked()). Both the old
code and the new code will fail on uniprocessor systems with
CONFIG_DEBUG_SPINLOCK=n. From include/linux/spinlock_up.h:

#ifdef CONFIG_DEBUG_SPINLOCK
...
#else /* DEBUG_SPINLOCK */
#define arch_spin_is_locked(lock)	((void)(lock), 0)
...
#endif

Bart.

--
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] 22+ messages in thread

* Re: [PATCH for-next 7/9] IB/usnic: Fix printk format warnings
       [not found]     ` <1387298917-7365-8-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
@ 2013-12-21 10:07       ` Bart Van Assche
       [not found]         ` <52B56847.5070209-HInyCGIudOg@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Bart Van Assche @ 2013-12-21 10:07 UTC (permalink / raw)
  To: Upinder Malhi, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On 12/17/13 17:48, Upinder Malhi wrote:
> diff --git a/drivers/infiniband/hw/usnic/usnic_uiom.c b/drivers/infiniband/hw/usnic/usnic_uiom.c
> index 359897d..0477d70 100644
> --- a/drivers/infiniband/hw/usnic/usnic_uiom.c
> +++ b/drivers/infiniband/hw/usnic/usnic_uiom.c
> @@ -81,15 +81,16 @@ static void usnic_uiom_put_pages(struct list_head *chunk_list, int dirty)
>  	struct usnic_uiom_chunk *chunk, *tmp;
>  	struct page *page;
>  	int i;
> +	dma_addr_t pa;
>  
>  	list_for_each_entry_safe(chunk, tmp, chunk_list, list) {
>  		for (i = 0; i < chunk->nents; i++) {
>  			page = sg_page(&chunk->page_list[i]);
> +			pa = sg_phys(&chunk->page_list[i]);
>  			if (dirty)
>  				set_page_dirty_lock(page);
>  			put_page(page);
> -			usnic_dbg("pa: 0x%llx\n",
> -					sg_phys(&chunk->page_list[i]));
> +			usnic_dbg("pa: %pa\n", &pa);
>  		}
>  		kfree(chunk);
>  	}

Maybe I'm missing something, but is there any reason why in the above a
regular for-loop is used instead of for_each_sg() ?

Bart.

--
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] 22+ messages in thread

* Re: [PATCH for-next 9/9] IB/usnic: Fix sparse should be static warnings
       [not found]     ` <1387298917-7365-10-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
@ 2013-12-21 10:09       ` Bart Van Assche
       [not found]         ` <52B568CB.2070804-HInyCGIudOg@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Bart Van Assche @ 2013-12-21 10:09 UTC (permalink / raw)
  To: Upinder Malhi, linux-rdma-u79uwXL29TY76Z2rM5mHXA

On 12/17/13 17:48, Upinder Malhi wrote:
> Sparse spit out few functions should be static warnings.  This
> patch provides a fix for the warnings.
> 
> [ ... ]
> @@ -579,6 +580,7 @@ static void __exit usnic_ib_destroy(void)
>  {
>  	usnic_dbg("\n");
>  	usnic_debugfs_exit();
> +	usnic_transport_fini();
>  	unregister_netdevice_notifier(&usnic_ib_netdevice_notifier);
>  	pci_unregister_driver(&usnic_ib_pci_driver);
>  	usnic_uiom_fini();

To me the above looks like a behavior change and not just a fix for a
sparse warning. Shouldn't this change be moved into a separate patch ?

Bart.
--
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] 22+ messages in thread

* Re: [PATCH for-next 2/9] IB/usnic: Fix format not a string literal warnings
       [not found]         ` <52B56634.1020300-HInyCGIudOg@public.gmane.org>
@ 2014-01-07 22:03           ` Upinder Malhi (umalhi)
  0 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi (umalhi) @ 2014-01-07 22:03 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Bart,
	This has been fixed in the latest patchset:
http://www.spinics.net/lists/linux-rdma/msg18170.html
http://www.spinics.net/lists/linux-rdma/msg18171.html

Upinder

On Dec 21, 2013, at 1:58 AM, Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org> wrote:

> On 12/17/13 17:48, Upinder Malhi wrote:
>> Few printks in usnic are called w/o a string literal.
>> Intel GCC is throwing warnings and this patch provides a fix
>> for these.
>> 
>> [ ... ]
>> @@ -372,8 +372,7 @@ static void usnic_ib_undiscover_pf(struct kref *kref)
>> 		}
>> 	}
>> 
>> -	if (!found)
>> -		WARN("Failed to remove PF %s\n", pci_name(dev));
>> +	WARN(found, "Failed to remove PF %s\n", pci_name(dev));
>> 
>> 	mutex_unlock(&usnic_ib_ibdev_list_lock);
>> }
> 
> The old code printed a warning if found == 0. The new code prints a
> warning if found != 0. If this is on purpose I think this change should
> be in a separate patch.
> 
> Bart.
> --
> 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

--
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] 22+ messages in thread

* Re: [PATCH for-next 4/9] IB/usnic: Fix error handling with IS_ERR_OR_NULL
       [not found]         ` <52B566A9.1080908-HInyCGIudOg@public.gmane.org>
@ 2014-01-07 22:03           ` Upinder Malhi (umalhi)
       [not found]             ` <3A32A946-EB43-4609-A04A-3BB846C442DB-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 22+ messages in thread
From: Upinder Malhi (umalhi) @ 2014-01-07 22:03 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Ack.  Will comply.

Upinder

On Dec 21, 2013, at 2:00 AM, Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org> wrote:

> On 12/17/13 17:48, Upinder Malhi wrote:
>> Errors with IS_ERR_OR_NULL are not handleded correctly in few places
>> in usNIC.  This patch remedies that.
>> 
>> Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
>> ---
>> drivers/infiniband/hw/usnic/usnic_ib_main.c  | 10 ++++++----
>> drivers/infiniband/hw/usnic/usnic_ib_verbs.c |  2 +-
>> 2 files changed, 7 insertions(+), 5 deletions(-)
>> 
>> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
>> index 4d8cadc..7200861 100644
>> --- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
>> +++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
>> @@ -398,13 +398,14 @@ static struct usnic_ib_dev *usnic_ib_discover_pf(struct usnic_vnic *vnic)
>> 
>> 	us_ibdev = usnic_ib_device_add(parent_pci);
>> 	if (IS_ERR_OR_NULL(us_ibdev)) {
>> -		us_ibdev = ERR_PTR(-EINVAL);
>> +		us_ibdev = (us_ibdev) ? us_ibdev : ERR_PTR(-EFAULT);
>> 		goto out;
>> 	}
>> 
>> 	err = usnic_ib_sysfs_register_usdev(us_ibdev);
>> 	if (err) {
>> 		usnic_ib_device_remove(us_ibdev);
>> +		us_ibdev = ERR_PTR(err);
>> 		goto out;
>> 	}
>> 
>> @@ -459,9 +460,10 @@ int usnic_ib_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>> 	}
>> 
>> 	pf = usnic_ib_discover_pf(vf->vnic);
>> -	if (!pf) {
>> -		usnic_err("Failed to discover pf of vnic %s with err%d\n",
>> -				pci_name(pdev), err);
>> +	if (IS_ERR_OR_NULL(pf)) {
>> +		usnic_err("Failed to discover pf of vnic %s with err%ld\n",
>> +				pci_name(pdev), PTR_ERR(pf));
>> +		err = (pf ? PTR_ERR(pf) : -EFAULT);
>> 		goto out_clean_vnic;
>> 	}
>> 
>> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
>> index d305e4e..e19ca90 100644
>> --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
>> +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
>> @@ -574,7 +574,7 @@ struct ib_mr *usnic_ib_reg_mr(struct ib_pd *pd, u64 start, u64 length,
>> 	mr->umem = usnic_uiom_reg_get(to_upd(pd)->umem_pd, start, length,
>> 					access_flags, 0);
>> 	if (IS_ERR_OR_NULL(mr->umem)) {
>> -		err = PTR_ERR(mr->umem);
>> +		err = (mr->umem) ? PTR_ERR(mr->umem) : -EFAULT;
>> 		goto err_free;
>> 	}
> 
> Three out of four of the above changes introduce superfluous
> parentheses. Please do not introduce superfluous parentheses that do not
> improve readability.
> 
> Bart.
> 
> 

--
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] 22+ messages in thread

* Re: [PATCH for-next 5/9] IB/usnic: Change BUG_ON to WARN_ON
       [not found]         ` <52B56799.2010306-HInyCGIudOg@public.gmane.org>
@ 2014-01-07 22:05           ` Upinder Malhi (umalhi)
  0 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi (umalhi) @ 2014-01-07 22:05 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Ack.

Upinder

On Dec 21, 2013, at 2:04 AM, Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org> wrote:

> On 12/17/13 17:48, Upinder Malhi wrote:
>> usNIC calls BUG_ON(spinlock_is_held..) at few places.  In some of these
>> instances, the call is made with another spinlock already held.  Change
>> all such calls in usNIC to WARN_ON to make it fool-proof.
>> 
>> Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
>> ---
>> drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c | 16 ++++++++--------
>> drivers/infiniband/hw/usnic/usnic_uiom.c      |  2 +-
>> 2 files changed, 9 insertions(+), 9 deletions(-)
>> 
>> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
>> index f647b6b..ad57a77 100644
>> --- a/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
>> +++ b/drivers/infiniband/hw/usnic/usnic_ib_qp_grp.c
>> @@ -82,7 +82,7 @@ static int add_fwd_filter(struct usnic_ib_qp_grp *qp_grp,
>> 	struct usnic_vnic_res_chunk *chunk;
>> 	int rq_idx;
>> 
>> -	BUG_ON(!spin_is_locked(&qp_grp->lock));
>> +	WARN_ON(!spin_is_locked(&qp_grp->lock));
>> 
>> 	chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ);
>> 	if (IS_ERR_OR_NULL(chunk) || chunk->cnt < 1) {
> 
> Please consider using lockdep_assert_held() instead of
> BUG_ON(!spin_is_locked()) or WARN_ON(!spin_is_locked()). Both the old
> code and the new code will fail on uniprocessor systems with
> CONFIG_DEBUG_SPINLOCK=n. From include/linux/spinlock_up.h:
> 
> #ifdef CONFIG_DEBUG_SPINLOCK
> ...
> #else /* DEBUG_SPINLOCK */
> #define arch_spin_is_locked(lock)	((void)(lock), 0)
> ...
> #endif
> 
> Bart.
> 

--
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] 22+ messages in thread

* Re: [PATCH for-next 7/9] IB/usnic: Fix printk format warnings
       [not found]         ` <52B56847.5070209-HInyCGIudOg@public.gmane.org>
@ 2014-01-07 22:07           ` Upinder Malhi (umalhi)
  0 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi (umalhi) @ 2014-01-07 22:07 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Yes, we can use for_each_sg.  However, that is an existing issue and independent from this patch.  Will fix that in a future patch.

Upinder

On Dec 21, 2013, at 2:07 AM, Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org> wrote:

> On 12/17/13 17:48, Upinder Malhi wrote:
>> diff --git a/drivers/infiniband/hw/usnic/usnic_uiom.c b/drivers/infiniband/hw/usnic/usnic_uiom.c
>> index 359897d..0477d70 100644
>> --- a/drivers/infiniband/hw/usnic/usnic_uiom.c
>> +++ b/drivers/infiniband/hw/usnic/usnic_uiom.c
>> @@ -81,15 +81,16 @@ static void usnic_uiom_put_pages(struct list_head *chunk_list, int dirty)
>> 	struct usnic_uiom_chunk *chunk, *tmp;
>> 	struct page *page;
>> 	int i;
>> +	dma_addr_t pa;
>> 
>> 	list_for_each_entry_safe(chunk, tmp, chunk_list, list) {
>> 		for (i = 0; i < chunk->nents; i++) {
>> 			page = sg_page(&chunk->page_list[i]);
>> +			pa = sg_phys(&chunk->page_list[i]);
>> 			if (dirty)
>> 				set_page_dirty_lock(page);
>> 			put_page(page);
>> -			usnic_dbg("pa: 0x%llx\n",
>> -					sg_phys(&chunk->page_list[i]));
>> +			usnic_dbg("pa: %pa\n", &pa);
>> 		}
>> 		kfree(chunk);
>> 	}
> 
> Maybe I'm missing something, but is there any reason why in the above a
> regular for-loop is used instead of for_each_sg() ?
> 
> Bart.
> 

--
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] 22+ messages in thread

* Re: [PATCH for-next 9/9] IB/usnic: Fix sparse should be static warnings
       [not found]         ` <52B568CB.2070804-HInyCGIudOg@public.gmane.org>
@ 2014-01-07 22:14           ` Upinder Malhi (umalhi)
  0 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi (umalhi) @ 2014-01-07 22:14 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

The below patch fixes the warning, exactly as the description states; no guarantees have been made that the fixes are only comestic.  No reason to put this in another patch.

Upinder

On Dec 21, 2013, at 2:09 AM, Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org> wrote:

> On 12/17/13 17:48, Upinder Malhi wrote:
>> Sparse spit out few functions should be static warnings.  This
>> patch provides a fix for the warnings.
>> 
>> [ ... ]
>> @@ -579,6 +580,7 @@ static void __exit usnic_ib_destroy(void)
>> {
>> 	usnic_dbg("\n");
>> 	usnic_debugfs_exit();
>> +	usnic_transport_fini();
>> 	unregister_netdevice_notifier(&usnic_ib_netdevice_notifier);
>> 	pci_unregister_driver(&usnic_ib_pci_driver);
>> 	usnic_uiom_fini();
> 
> To me the above looks like a behavior change and not just a fix for a
> sparse warning. Shouldn't this change be moved into a separate patch ?
> 
> Bart.

--
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] 22+ messages in thread

* Re: [PATCH for-next 4/9] IB/usnic: Fix error handling with IS_ERR_OR_NULL
       [not found]             ` <3A32A946-EB43-4609-A04A-3BB846C442DB-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
@ 2014-01-08  0:11               ` Upinder Malhi (umalhi)
  0 siblings, 0 replies; 22+ messages in thread
From: Upinder Malhi (umalhi) @ 2014-01-08  0:11 UTC (permalink / raw)
  To: Bart Van Assche
  Cc: <linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>

Looking through the usNIC code, it uses the below notation everywhere in the code.  Hence, I will not change the below patch, so the notation is consistent with rest of the code and will get rid of all of the extraneous parentheses in another cosmetic patch.

Upinder


On Jan 7, 2014, at 2:03 PM, Upinder Malhi (umalhi) <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org> wrote:

> Ack.  Will comply.
> 
> Upinder
> 
> On Dec 21, 2013, at 2:00 AM, Bart Van Assche <bvanassche-HInyCGIudOg@public.gmane.org> wrote:
> 
>> On 12/17/13 17:48, Upinder Malhi wrote:
>>> Errors with IS_ERR_OR_NULL are not handleded correctly in few places
>>> in usNIC.  This patch remedies that.
>>> 
>>> Signed-off-by: Upinder Malhi <umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
>>> ---
>>> drivers/infiniband/hw/usnic/usnic_ib_main.c  | 10 ++++++----
>>> drivers/infiniband/hw/usnic/usnic_ib_verbs.c |  2 +-
>>> 2 files changed, 7 insertions(+), 5 deletions(-)
>>> 
>>> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c
>>> index 4d8cadc..7200861 100644
>>> --- a/drivers/infiniband/hw/usnic/usnic_ib_main.c
>>> +++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c
>>> @@ -398,13 +398,14 @@ static struct usnic_ib_dev *usnic_ib_discover_pf(struct usnic_vnic *vnic)
>>> 
>>> 	us_ibdev = usnic_ib_device_add(parent_pci);
>>> 	if (IS_ERR_OR_NULL(us_ibdev)) {
>>> -		us_ibdev = ERR_PTR(-EINVAL);
>>> +		us_ibdev = (us_ibdev) ? us_ibdev : ERR_PTR(-EFAULT);
>>> 		goto out;
>>> 	}
>>> 
>>> 	err = usnic_ib_sysfs_register_usdev(us_ibdev);
>>> 	if (err) {
>>> 		usnic_ib_device_remove(us_ibdev);
>>> +		us_ibdev = ERR_PTR(err);
>>> 		goto out;
>>> 	}
>>> 
>>> @@ -459,9 +460,10 @@ int usnic_ib_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)
>>> 	}
>>> 
>>> 	pf = usnic_ib_discover_pf(vf->vnic);
>>> -	if (!pf) {
>>> -		usnic_err("Failed to discover pf of vnic %s with err%d\n",
>>> -				pci_name(pdev), err);
>>> +	if (IS_ERR_OR_NULL(pf)) {
>>> +		usnic_err("Failed to discover pf of vnic %s with err%ld\n",
>>> +				pci_name(pdev), PTR_ERR(pf));
>>> +		err = (pf ? PTR_ERR(pf) : -EFAULT);
>>> 		goto out_clean_vnic;
>>> 	}
>>> 
>>> diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
>>> index d305e4e..e19ca90 100644
>>> --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
>>> +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c
>>> @@ -574,7 +574,7 @@ struct ib_mr *usnic_ib_reg_mr(struct ib_pd *pd, u64 start, u64 length,
>>> 	mr->umem = usnic_uiom_reg_get(to_upd(pd)->umem_pd, start, length,
>>> 					access_flags, 0);
>>> 	if (IS_ERR_OR_NULL(mr->umem)) {
>>> -		err = PTR_ERR(mr->umem);
>>> +		err = (mr->umem) ? PTR_ERR(mr->umem) : -EFAULT;
>>> 		goto err_free;
>>> 	}
>> 
>> Three out of four of the above changes introduce superfluous
>> parentheses. Please do not introduce superfluous parentheses that do not
>> improve readability.
>> 
>> Bart.
>> 
>> 
> 
> --
> 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

--
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] 22+ messages in thread

end of thread, other threads:[~2014-01-08  0:11 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-17 16:48 [PATCH for-next 0/9] IB/usnic: Fix kbuild robot, sparse and smatch errs Upinder Malhi
     [not found] ` <1387298917-7365-1-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2013-12-17 16:48   ` [PATCH for-next 1/9] IB/usnic: Fix stack frame size exceed warnings Upinder Malhi
2013-12-17 16:48   ` [PATCH for-next 2/9] IB/usnic: Fix format not a string literal warnings Upinder Malhi
     [not found]     ` <1387298917-7365-3-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2013-12-21  9:58       ` Bart Van Assche
     [not found]         ` <52B56634.1020300-HInyCGIudOg@public.gmane.org>
2014-01-07 22:03           ` Upinder Malhi (umalhi)
2013-12-17 16:48   ` [PATCH for-next 3/9] IB/usnic: Make usNIC built depend on Intel IOMMU Upinder Malhi
2013-12-17 16:48   ` [PATCH for-next 4/9] IB/usnic: Fix error handling with IS_ERR_OR_NULL Upinder Malhi
     [not found]     ` <1387298917-7365-5-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2013-12-21 10:00       ` Bart Van Assche
     [not found]         ` <52B566A9.1080908-HInyCGIudOg@public.gmane.org>
2014-01-07 22:03           ` Upinder Malhi (umalhi)
     [not found]             ` <3A32A946-EB43-4609-A04A-3BB846C442DB-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2014-01-08  0:11               ` Upinder Malhi (umalhi)
2013-12-17 16:48   ` [PATCH for-next 5/9] IB/usnic: Change BUG_ON to WARN_ON Upinder Malhi
     [not found]     ` <1387298917-7365-6-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2013-12-21 10:04       ` Bart Van Assche
     [not found]         ` <52B56799.2010306-HInyCGIudOg@public.gmane.org>
2014-01-07 22:05           ` Upinder Malhi (umalhi)
2013-12-17 16:48   ` [PATCH for-next 6/9] IB/usnic: Initialize all of the data returned to userspace Upinder Malhi
2013-12-17 16:48   ` [PATCH for-next 7/9] IB/usnic: Fix printk format warnings Upinder Malhi
     [not found]     ` <1387298917-7365-8-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2013-12-21 10:07       ` Bart Van Assche
     [not found]         ` <52B56847.5070209-HInyCGIudOg@public.gmane.org>
2014-01-07 22:07           ` Upinder Malhi (umalhi)
2013-12-17 16:48   ` [PATCH for-next 8/9] IB/usnic: Remove duplicate and unnecessary consts Upinder Malhi
2013-12-17 16:48   ` [PATCH for-next 9/9] IB/usnic: Fix sparse should be static warnings Upinder Malhi
     [not found]     ` <1387298917-7365-10-git-send-email-umalhi-FYB4Gu1CFyUAvxtiuMwx3w@public.gmane.org>
2013-12-21 10:09       ` Bart Van Assche
     [not found]         ` <52B568CB.2070804-HInyCGIudOg@public.gmane.org>
2014-01-07 22:14           ` Upinder Malhi (umalhi)
2013-12-20 20:28   ` [PATCH for-next 0/9] IB/usnic: Fix kbuild robot, sparse and smatch errs Upinder Malhi (umalhi)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox