]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sif: Compile with kernel 4.4.10
authorKnut Omang <knut.omang@oracle.com>
Wed, 1 Jun 2016 06:58:03 +0000 (08:58 +0200)
committerKnut Omang <knut.omang@oracle.com>
Sun, 3 Jul 2016 14:01:39 +0000 (16:01 +0200)
* Remove obsolete (dummy) unimplemented fast_reg call impl
  This has changed significantly in 4.4.x and was not
  implemented for older kernels anyway.

* Add ifdefs for new wr struct layout -
  no longer uses union, instead we have to upcast
  to the right type to find the qp/request
  type specific fields

* undefine the mtrr code as the mtrr_del function seems not to be
  made available anymore. The functionality is not used anyway atm.

* Some regressions wrt checkpatch

Signed-off-by: Knut Omang <knut.omang@oracle.com>
drivers/infiniband/hw/sif/sif_cq.c
drivers/infiniband/hw/sif/sif_defs.c
drivers/infiniband/hw/sif/sif_elog.c
drivers/infiniband/hw/sif/sif_elog.h
drivers/infiniband/hw/sif/sif_main.c
drivers/infiniband/hw/sif/sif_mr.c
drivers/infiniband/hw/sif/sif_qp.c
drivers/infiniband/hw/sif/sif_r3.c
drivers/infiniband/hw/sif/sif_sndrcv.c

index c4d01f76172a022118c070c655200e32bc2c7938..08466881ceed93fa437e663549107d8e54a416e3 100644 (file)
@@ -385,7 +385,7 @@ static int handle_send_wc(struct sif_dev *sdev, struct sif_cq *cq,
 {
        /* send queue descriptor aligned with qp */
        struct sif_sq *sq = get_sif_sq(sdev, cqe->qp);
-       struct sif_sq_sw *sq_sw = sq ? get_sif_sq_sw(sdev, cqe->qp): NULL;
+       struct sif_sq_sw *sq_sw = sq ? get_sif_sq_sw(sdev, cqe->qp) : NULL;
        int ret;
 
        /* This is a full 32 bit seq.num */
index 63a6ecd3d3ee01dbb82b29f9112f7d8eb34938c4..123509d313a29079e6c1215b8d557cbf638738c6 100644 (file)
@@ -73,7 +73,6 @@ enum psif_wr_type ib2sif_wr_op(enum ib_wr_opcode op, bool is_dr)
        case IB_WR_SEND_WITH_INV:
        case IB_WR_RDMA_READ_WITH_INV:
        case IB_WR_LOCAL_INV:
-       case IB_WR_FAST_REG_MR:
        default:
                break;
        }
index 5547fd64e5595932147bd54512b168b3a2a839f2..3fa463d87281a4dfa994d4c094219f76c91e02a0 100644 (file)
@@ -137,7 +137,7 @@ int sif_elog_init(struct sif_dev *sdev, enum psif_mbox_type eps_num)
        return misc_register(logdev);
 }
 
-int sif_elog_deinit(struct sif_dev *sdev, enum psif_mbox_type eps_num)
+void sif_elog_deinit(struct sif_dev *sdev, enum psif_mbox_type eps_num)
 {
-       return misc_deregister(&sdev->es[eps_num].logdev);
+       misc_deregister(&sdev->es[eps_num].logdev);
 }
index 8c0ecdaa7efe8375564090dd937e8e286b998b77..75588de1208cc93ef3bc1bd6dd4600a20b2bec32 100644 (file)
@@ -17,7 +17,7 @@
 struct sif_dev;
 
 int sif_elog_init(struct sif_dev *sdev, enum psif_mbox_type eps_num);
-int sif_elog_deinit(struct sif_dev *sdev, enum psif_mbox_type eps_num);
+void sif_elog_deinit(struct sif_dev *sdev, enum psif_mbox_type eps_num);
 
 void sif_elog_intr(struct sif_dev *sdev, enum psif_mbox_type eps_num);
 
index 1890a1a6cb651d7f3e8b89fe0e37f8cf77f23793..b6e0e0e37b63fca85d019faf62e99c39a9e66617 100644 (file)
@@ -543,12 +543,6 @@ pfail_ioremap2:
 pfail_bar2:
        iounmap(sdev->cb_base);
 pfail_ioremap0:
-#ifdef CONFIG_X86
-       if (sdev->cbu_mtrr >= 0)
-               mtrr_del(sdev->cbu_mtrr,
-                       pci_resource_start(pdev, SIF_CBU_BAR),
-                       pci_resource_len(pdev, SIF_CBU_BAR));
-#endif
        pci_release_region(pdev, SIF_MSIX_BAR);
 pfail_bar0:
        return err;
@@ -563,12 +557,6 @@ static void sif_bar_deinit(struct pci_dev *pdev)
        iounmap(sdev->msi_base);
        pci_release_region(pdev, 2);
        iounmap(sdev->cb_base);
-#ifdef CONFIG_X86
-       if (sdev->cbu_mtrr >= 0)
-               mtrr_del(sdev->cbu_mtrr,
-                       pci_resource_start(pdev, SIF_CBU_BAR),
-                       pci_resource_len(pdev, SIF_CBU_BAR));
-#endif
        pci_release_region(pdev, 0);
 }
 
index 9632f1e759ac8c2456a8227c04c14bbdfba1a45c..cf6164036357df5b8fdc1f3aa7364c5a492f0928 100644 (file)
@@ -413,26 +413,6 @@ int sif_dereg_mr(struct ib_mr *ibmr)
        return 0;
 }
 
-struct ib_mr *sif_alloc_fast_reg_mr(struct ib_pd *ibpd, int max_page_list_len)
-{
-       sif_logi(ibpd->device, SIF_FMR, "Not implemented");
-       return ERR_PTR(-EOPNOTSUPP);
-}
-
-struct ib_fast_reg_page_list *sif_alloc_fast_reg_page_list(struct ib_device
-                                                          *ibdev,
-                                                          int page_list_len)
-{
-       sif_logi(ibdev, SIF_FMR, "Not implemented");
-       return ERR_PTR(-EOPNOTSUPP);
-}
-
-void sif_free_fast_reg_page_list(struct ib_fast_reg_page_list *pl)
-{
-       sif_logi(pl->device, SIF_FMR, "Not implemented");
-}
-
-
 /* Line printer for debugfs file */
 void sif_dfs_print_key(struct seq_file *s, struct sif_dev *sdev, loff_t pos)
 {
index ab88057f63915103df5bb88ca3260a5e283739dd..f804b27baee1bbf5cc4bb8c54eb7169019090913 100644 (file)
@@ -523,7 +523,7 @@ static int sif_create_pma_qp(struct ib_pd *ibpd,
        qp->ibqp.device = &sdev->ib_dev;
        qp->ibqp.real_qp = &qp->ibqp;
        qp->ibqp.uobject = NULL;
-        qp->ibqp.qp_type = IB_QPT_GSI;
+       qp->ibqp.qp_type = IB_QPT_GSI;
        atomic_set(&qp->ibqp.usecnt, 0);
        qp->ibqp.event_handler = init_attr->event_handler;
        qp->ibqp.qp_context = init_attr->qp_context;
@@ -953,7 +953,7 @@ int modify_qp(struct sif_dev *sdev, struct sif_qp *qp,
                switch (cmd.flush) {
                case FLUSH_RQ:
                        if (unlikely(!rq)) {
-                               ret =-EINVAL;
+                               ret = -EINVAL;
                                sif_log(sdev, SIF_INFO,
                                        "flush requested for qp(type %s) with no rq defined",
                                        string_enum_psif_qp_trans(qp->type));
@@ -965,7 +965,7 @@ int modify_qp(struct sif_dev *sdev, struct sif_qp *qp,
                        return ret;
                case FLUSH_SQ:
                        if (unlikely(!sq)) {
-                               ret =-EINVAL;
+                               ret = -EINVAL;
                                sif_log(sdev, SIF_INFO,
                                        "flush requested for qp(type %s) with no sq defined",
                                        string_enum_psif_qp_trans(qp->type));
index 06b270d28cc226be2619c41b7fc2069730455f7f..679cc7b9cf25285a720fdbe646c77fec6b2494a8 100644 (file)
@@ -616,9 +616,10 @@ int post_process_wa4074(struct sif_dev *sdev, struct sif_qp *qp)
                if (last_seq != fence_seq) {
                        sif_log(sdev, SIF_INFO, "last seq (%x) is different than fenced completion (%x)!",
                                last_seq, fence_seq);
-                       /* As the Fenced completion cannot be guaranteed to be the last, software still needs to
-                        * walk and update the CQ to avoid unexpected completion/duplicated completion
-                        * even thought the last completion is the CQ is not generated fenced completion.
+                       /* As the Fenced completion cannot be guaranteed to be the last, software
+                        * still needs to walk and update the CQ to avoid unexpected
+                        * completion/duplicated completion even thought the last completion is
+                        * the CQ is not generated fenced completion.
                         */
                }
 
index 9d62eaa9377759f3b8b73b334a200997b03ec7f3..0ebe73d3fefddb0ef8996bd1faee81cfb09c24b2 100644 (file)
@@ -1034,6 +1034,7 @@ static int prep_send_lso(struct sif_qp *qp, struct ib_send_wr *wr, struct psif_c
        struct psif_sq_entry *sqe;
        struct psif_rq_scatter *sge;
        const int stencil_sge = 1;
+       int ud_hlen;
 
        sq = get_sif_sq(sdev, qp->qp_idx);
        sqe = get_sq_entry(sq, sqe_seq);
@@ -1046,6 +1047,7 @@ static int prep_send_lso(struct sif_qp *qp, struct ib_send_wr *wr, struct psif_c
                return -EINVAL;
        }
 
+       ud_hlen = wr->wr.ud.hlen;
        wqe->wr.details.send.ud.mss = wr->wr.ud.mss;
 
        la->addr   = get_sqe_dma(sq, sqe_seq) + sq->sgl_offset;
@@ -1054,12 +1056,12 @@ static int prep_send_lso(struct sif_qp *qp, struct ib_send_wr *wr, struct psif_c
 
        /* copy stencil to payload-area in send_queue */
        p8 = (u8 *)wr->wr.ud.header;
-       memcpy((u8 *)sqe->payload, p8, wr->wr.ud.hlen);
+       memcpy((u8 *)sqe->payload, p8, ud_hlen);
 
        sge[0].base_addr = get_sqe_dma(sq, sqe_seq)
                + offsetof(struct psif_sq_entry, payload) + mr_uv2dma(sdev, la->lkey);
        sge[0].lkey = sq->sg_mr->index;
-       sge[0].length = wr->wr.ud.hlen;
+       sge[0].length = ud_hlen;
        la->length += sge[0].length;
 
        sif_log(sdev, SIF_SND,