Follow hfi1's example for printing information about the driver and
incorporate into rdmavt. This requires two new functions to be
provided by the driver, one to get_card_name and one to get_pci_dev.

Reviewed-by: Mike Marciniszyn <mike.marcinis...@intel.com>
Reviewed-by: Ira Weiny <ira.we...@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessan...@intel.com>
---
 drivers/infiniband/sw/rdmavt/vt.c |   13 ++++++++++---
 drivers/infiniband/sw/rdmavt/vt.h |   28 ++++++++++++++++++++++++++++
 include/rdma/rdma_vt.h            |    3 +++
 3 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/drivers/infiniband/sw/rdmavt/vt.c 
b/drivers/infiniband/sw/rdmavt/vt.c
index e4881ca..1279c03 100644
--- a/drivers/infiniband/sw/rdmavt/vt.c
+++ b/drivers/infiniband/sw/rdmavt/vt.c
@@ -213,9 +213,18 @@ static int rvt_get_port_immutable(struct ib_device *ibdev, 
u8 port_num,
 
 int rvt_register_device(struct rvt_dev_info *rdi)
 {
+       /* Validate that drivers have provided the right information */
        if (!rdi)
                return -EINVAL;
 
+       if ((!rdi->driver_f.port_callback) ||
+           (!rdi->driver_f.get_card_name) ||
+           (!rdi->driver_f.get_pci_dev)) {
+               return -EINVAL;
+       }
+
+       /* Once we get past here we can use the rvt_pr macros */
+
        /* Dev Ops */
        CHECK_DRIVER_OVERRIDE(rdi, query_device);
        CHECK_DRIVER_OVERRIDE(rdi, modify_device);
@@ -281,9 +290,7 @@ int rvt_register_device(struct rvt_dev_info *rdi)
        spin_lock_init(&rdi->n_pds_lock);
        rdi->n_pds_allocated = 0;
 
-       /* Validate that drivers have provided the right functions */
-       if (!rdi->driver_f.port_callback)
-               return -EINVAL;
+       rvt_pr_info(rdi, "Registration with rdmavt done.\n");
 
        /* We are now good to announce we exist */
        return ib_register_device(&rdi->ibdev, rdi->driver_f.port_callback);
diff --git a/drivers/infiniband/sw/rdmavt/vt.h 
b/drivers/infiniband/sw/rdmavt/vt.h
index fdb52a8..54ee05a 100644
--- a/drivers/infiniband/sw/rdmavt/vt.h
+++ b/drivers/infiniband/sw/rdmavt/vt.h
@@ -49,6 +49,7 @@
  */
 
 #include <rdma/rdma_vt.h>
+#include <linux/pci.h>
 #include "dma.h"
 #include "pd.h"
 #include "qp.h"
@@ -59,4 +60,31 @@
 #include "mmap.h"
 #include "cq.h"
 
+#define rvt_pr_info(rdi, fmt, ...) \
+       __rvt_pr_info(rdi->driver_f.get_pci_dev(rdi), \
+                     rdi->driver_f.get_card_name(rdi), \
+                     fmt, \
+                     ##__VA_ARGS__)
+
+#define rvt_pr_warn(rdi, fmt, ...) \
+       __rvt_pr_warn(rdi->driver_f.get_pci_dev(rdi), \
+                     rdi->driver_f.get_card_name(rdi), \
+                     fmt, \
+                     ##__VA_ARGS__)
+
+#define rvt_pr_err(rdi, fmt, ...) \
+       __rvt_pr_err(rdi->driver_f.get_pci_dev(rdi), \
+                    rdi->driver_f.get_card_name(rdi), \
+                    fmt, \
+                    ##__VA_ARGS__)
+
+#define __rvt_pr_info(pdev, name, fmt, ...) \
+       dev_info(&pdev->dev, "%s: " fmt, name, ##__VA_ARGS__)
+
+#define __rvt_pr_warn(pdev, name, fmt, ...) \
+       dev_warn(&pdev->dev, "%s: " fmt, name, ##__VA_ARGS__)
+
+#define __rvt_pr_err(pdev, name, fmt, ...) \
+       dev_err(&pdev->dev, "%s: " fmt, name, ##__VA_ARGS__)
+
 #endif          /* DEF_RDMAVT_H */
diff --git a/include/rdma/rdma_vt.h b/include/rdma/rdma_vt.h
index e0beedc..4b83770 100644
--- a/include/rdma/rdma_vt.h
+++ b/include/rdma/rdma_vt.h
@@ -386,6 +386,7 @@ struct rvt_driver_params {
 /*
  * Functions that drivers are required to support
  */
+struct rvt_dev_info;
 struct rvt_driver_provided {
        /*
         * The work to create port files in /sys/class Infiniband is different
@@ -394,6 +395,8 @@ struct rvt_driver_provided {
         * this.
         */
        int (*port_callback)(struct ib_device *, u8, struct kobject *);
+       const char * (*get_card_name)(struct rvt_dev_info *rdi);
+       struct pci_dev * (*get_pci_dev)(struct rvt_dev_info *rdi);
 };
 
 /* Protection domain */

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

Reply via email to