Hi Greg, Thank you for the patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v4.16 next-20180413] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Greg-Thelen/IB-make-INFINIBAND_ADDR_TRANS-configurable/20180414-234042 config: i386-randconfig-x005-201815 (attached as .config) compiler: gcc-7 (Debian 7.3.0-1) 7.3.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 All errors (new ones prefixed by >>): drivers/nvme/host/rdma.o: In function `nvme_rdma_stop_queue': drivers/nvme/host/rdma.c:554: undefined reference to `rdma_disconnect' drivers/nvme/host/rdma.o: In function `nvme_rdma_free_queue': drivers/nvme/host/rdma.c:570: undefined reference to `rdma_destroy_id' drivers/nvme/host/rdma.o: In function `nvme_rdma_alloc_queue': drivers/nvme/host/rdma.c:511: undefined reference to `__rdma_create_id' drivers/nvme/host/rdma.c:523: undefined reference to `rdma_resolve_addr' drivers/nvme/host/rdma.c:544: undefined reference to `rdma_destroy_id' drivers/nvme/host/rdma.o: In function `nvme_rdma_create_qp': drivers/nvme/host/rdma.c:258: undefined reference to `rdma_create_qp' drivers/nvme/host/rdma.o: In function `nvme_rdma_create_queue_ib': drivers/nvme/host/rdma.c:485: undefined reference to `rdma_destroy_qp' drivers/nvme/host/rdma.o: In function `nvme_rdma_addr_resolved': drivers/nvme/host/rdma.c:1461: undefined reference to `rdma_resolve_route' drivers/nvme/host/rdma.o: In function `nvme_rdma_route_resolved': drivers/nvme/host/rdma.c:1512: undefined reference to `rdma_connect' drivers/nvme/host/rdma.o: In function `nvme_rdma_conn_rejected': drivers/nvme/host/rdma.c:1436: undefined reference to `rdma_reject_msg' drivers/nvme/host/rdma.c:1437: undefined reference to `rdma_consumer_reject_data' drivers/infiniband/ulp/srp/ib_srp.o: In function `srp_create_ch_ib': >> drivers/infiniband/ulp/srp/ib_srp.c:585: undefined reference to `rdma_create_qp' >> drivers/infiniband/ulp/srp/ib_srp.c:647: undefined reference to `rdma_destroy_qp' drivers/infiniband/ulp/srp/ib_srp.o: In function `srp_disconnect_target': >> drivers/infiniband/ulp/srp/ib_srp.c:977: undefined reference to `rdma_disconnect' drivers/infiniband/ulp/srp/ib_srp.o: In function `srp_new_rdma_cm_id': >> drivers/infiniband/ulp/srp/ib_srp.c:336: undefined reference to `__rdma_create_id' >> drivers/infiniband/ulp/srp/ib_srp.c:345: undefined reference to `rdma_resolve_addr' >> drivers/infiniband/ulp/srp/ib_srp.c:369: undefined reference to `rdma_destroy_id' drivers/infiniband/ulp/srp/ib_srp.o: In function `srp_rdma_lookup_path': >> drivers/infiniband/ulp/srp/ib_srp.c:790: undefined reference to `rdma_resolve_route' drivers/infiniband/ulp/srp/ib_srp.o: In function `srp_send_req': >> drivers/infiniband/ulp/srp/ib_srp.c:938: undefined reference to `rdma_connect' drivers/infiniband/ulp/srp/ib_srp.o: In function `srp_free_ch_ib': drivers/infiniband/ulp/srp/ib_srp.c:677: undefined reference to `rdma_destroy_id' drivers/infiniband/ulp/srp/ib_srp.o: In function `srp_rdma_cm_handler': drivers/infiniband/ulp/srp/ib_srp.c:2808: undefined reference to `rdma_disconnect' vim +585 drivers/infiniband/ulp/srp/ib_srp.c 7dad6b2e Bart Van Assche 2014-10-21 542 509c07bc Bart Van Assche 2014-10-30 543 static int srp_create_ch_ib(struct srp_rdma_ch *ch) aef9ec39 Roland Dreier 2005-11-02 544 { 509c07bc Bart Van Assche 2014-10-30 545 struct srp_target_port *target = ch->target; 62154b2e Bart Van Assche 2014-05-20 546 struct srp_device *dev = target->srp_host->srp_dev; aef9ec39 Roland Dreier 2005-11-02 547 struct ib_qp_init_attr *init_attr; 73aa89ed Ishai Rabinovitz 2012-11-26 548 struct ib_cq *recv_cq, *send_cq; 73aa89ed Ishai Rabinovitz 2012-11-26 549 struct ib_qp *qp; d1b4289e Bart Van Assche 2014-05-20 550 struct ib_fmr_pool *fmr_pool = NULL; 5cfb1782 Bart Van Assche 2014-05-20 551 struct srp_fr_pool *fr_pool = NULL; 509c5f33 Bart Van Assche 2016-05-12 552 const int m = 1 + dev->use_fast_reg * target->mr_per_cmd * 2; aef9ec39 Roland Dreier 2005-11-02 553 int ret; aef9ec39 Roland Dreier 2005-11-02 554 aef9ec39 Roland Dreier 2005-11-02 555 init_attr = kzalloc(sizeof *init_attr, GFP_KERNEL); aef9ec39 Roland Dreier 2005-11-02 556 if (!init_attr) aef9ec39 Roland Dreier 2005-11-02 557 return -ENOMEM; aef9ec39 Roland Dreier 2005-11-02 558 561392d4 Steve Wise 2016-02-17 559 /* queue_size + 1 for ib_drain_rq() */ 1dc7b1f1 Christoph Hellwig 2015-11-13 560 recv_cq = ib_alloc_cq(dev->dev, ch, target->queue_size + 1, 1dc7b1f1 Christoph Hellwig 2015-11-13 561 ch->comp_vector, IB_POLL_SOFTIRQ); 73aa89ed Ishai Rabinovitz 2012-11-26 562 if (IS_ERR(recv_cq)) { 73aa89ed Ishai Rabinovitz 2012-11-26 563 ret = PTR_ERR(recv_cq); da9d2f07 Roland Dreier 2010-02-24 564 goto err; aef9ec39 Roland Dreier 2005-11-02 565 } aef9ec39 Roland Dreier 2005-11-02 566 1dc7b1f1 Christoph Hellwig 2015-11-13 567 send_cq = ib_alloc_cq(dev->dev, ch, m * target->queue_size, 1dc7b1f1 Christoph Hellwig 2015-11-13 568 ch->comp_vector, IB_POLL_DIRECT); 73aa89ed Ishai Rabinovitz 2012-11-26 569 if (IS_ERR(send_cq)) { 73aa89ed Ishai Rabinovitz 2012-11-26 570 ret = PTR_ERR(send_cq); da9d2f07 Roland Dreier 2010-02-24 571 goto err_recv_cq; 9c03dc9f Bart Van Assche 2010-02-02 572 } 9c03dc9f Bart Van Assche 2010-02-02 573 aef9ec39 Roland Dreier 2005-11-02 574 init_attr->event_handler = srp_qp_event; 5cfb1782 Bart Van Assche 2014-05-20 575 init_attr->cap.max_send_wr = m * target->queue_size; 7dad6b2e Bart Van Assche 2014-10-21 576 init_attr->cap.max_recv_wr = target->queue_size + 1; aef9ec39 Roland Dreier 2005-11-02 577 init_attr->cap.max_recv_sge = 1; aef9ec39 Roland Dreier 2005-11-02 578 init_attr->cap.max_send_sge = 1; 5cfb1782 Bart Van Assche 2014-05-20 579 init_attr->sq_sig_type = IB_SIGNAL_REQ_WR; aef9ec39 Roland Dreier 2005-11-02 580 init_attr->qp_type = IB_QPT_RC; 73aa89ed Ishai Rabinovitz 2012-11-26 581 init_attr->send_cq = send_cq; 73aa89ed Ishai Rabinovitz 2012-11-26 582 init_attr->recv_cq = recv_cq; aef9ec39 Roland Dreier 2005-11-02 583 19f31343 Bart Van Assche 2018-01-22 584 if (target->using_rdma_cm) { 19f31343 Bart Van Assche 2018-01-22 @585 ret = rdma_create_qp(ch->rdma_cm.cm_id, dev->pd, init_attr); 19f31343 Bart Van Assche 2018-01-22 586 qp = ch->rdma_cm.cm_id->qp; 19f31343 Bart Van Assche 2018-01-22 587 } else { 62154b2e Bart Van Assche 2014-05-20 588 qp = ib_create_qp(dev->pd, init_attr); 19f31343 Bart Van Assche 2018-01-22 589 if (!IS_ERR(qp)) { 19f31343 Bart Van Assche 2018-01-22 590 ret = srp_init_ib_qp(target, qp); 19f31343 Bart Van Assche 2018-01-22 591 if (ret) 19f31343 Bart Van Assche 2018-01-22 592 ib_destroy_qp(qp); 19f31343 Bart Van Assche 2018-01-22 593 } else { 73aa89ed Ishai Rabinovitz 2012-11-26 594 ret = PTR_ERR(qp); 19f31343 Bart Van Assche 2018-01-22 595 } 19f31343 Bart Van Assche 2018-01-22 596 } 19f31343 Bart Van Assche 2018-01-22 597 if (ret) { 19f31343 Bart Van Assche 2018-01-22 598 pr_err("QP creation failed for dev %s: %d\n", 19f31343 Bart Van Assche 2018-01-22 599 dev_name(&dev->dev->dev), ret); da9d2f07 Roland Dreier 2010-02-24 600 goto err_send_cq; aef9ec39 Roland Dreier 2005-11-02 601 } aef9ec39 Roland Dreier 2005-11-02 602 002f1567 Bart Van Assche 2015-08-10 603 if (dev->use_fast_reg) { 5cfb1782 Bart Van Assche 2014-05-20 604 fr_pool = srp_alloc_fr_pool(target); 5cfb1782 Bart Van Assche 2014-05-20 605 if (IS_ERR(fr_pool)) { 5cfb1782 Bart Van Assche 2014-05-20 606 ret = PTR_ERR(fr_pool); 5cfb1782 Bart Van Assche 2014-05-20 607 shost_printk(KERN_WARNING, target->scsi_host, PFX 5cfb1782 Bart Van Assche 2014-05-20 608 "FR pool allocation failed (%d)\n", ret); 5cfb1782 Bart Van Assche 2014-05-20 609 goto err_qp; 5cfb1782 Bart Van Assche 2014-05-20 610 } 002f1567 Bart Van Assche 2015-08-10 611 } else if (dev->use_fmr) { d1b4289e Bart Van Assche 2014-05-20 612 fmr_pool = srp_alloc_fmr_pool(target); d1b4289e Bart Van Assche 2014-05-20 613 if (IS_ERR(fmr_pool)) { d1b4289e Bart Van Assche 2014-05-20 614 ret = PTR_ERR(fmr_pool); d1b4289e Bart Van Assche 2014-05-20 615 shost_printk(KERN_WARNING, target->scsi_host, PFX d1b4289e Bart Van Assche 2014-05-20 616 "FMR pool allocation failed (%d)\n", ret); d1b4289e Bart Van Assche 2014-05-20 617 goto err_qp; d1b4289e Bart Van Assche 2014-05-20 618 } d1b4289e Bart Van Assche 2014-05-20 619 } d1b4289e Bart Van Assche 2014-05-20 620 509c07bc Bart Van Assche 2014-10-30 621 if (ch->qp) 9566b054 Bart Van Assche 2017-10-11 622 srp_destroy_qp(ch); 509c07bc Bart Van Assche 2014-10-30 623 if (ch->recv_cq) 1dc7b1f1 Christoph Hellwig 2015-11-13 624 ib_free_cq(ch->recv_cq); 509c07bc Bart Van Assche 2014-10-30 625 if (ch->send_cq) 1dc7b1f1 Christoph Hellwig 2015-11-13 626 ib_free_cq(ch->send_cq); 73aa89ed Ishai Rabinovitz 2012-11-26 627 509c07bc Bart Van Assche 2014-10-30 628 ch->qp = qp; 509c07bc Bart Van Assche 2014-10-30 629 ch->recv_cq = recv_cq; 509c07bc Bart Van Assche 2014-10-30 630 ch->send_cq = send_cq; 73aa89ed Ishai Rabinovitz 2012-11-26 631 7fbc67df Sagi Grimberg 2015-08-24 632 if (dev->use_fast_reg) { 7fbc67df Sagi Grimberg 2015-08-24 633 if (ch->fr_pool) 7fbc67df Sagi Grimberg 2015-08-24 634 srp_destroy_fr_pool(ch->fr_pool); 7fbc67df Sagi Grimberg 2015-08-24 635 ch->fr_pool = fr_pool; 7fbc67df Sagi Grimberg 2015-08-24 636 } else if (dev->use_fmr) { 7fbc67df Sagi Grimberg 2015-08-24 637 if (ch->fmr_pool) 7fbc67df Sagi Grimberg 2015-08-24 638 ib_destroy_fmr_pool(ch->fmr_pool); 7fbc67df Sagi Grimberg 2015-08-24 639 ch->fmr_pool = fmr_pool; 7fbc67df Sagi Grimberg 2015-08-24 640 } 7fbc67df Sagi Grimberg 2015-08-24 641 da9d2f07 Roland Dreier 2010-02-24 642 kfree(init_attr); da9d2f07 Roland Dreier 2010-02-24 643 return 0; da9d2f07 Roland Dreier 2010-02-24 644 da9d2f07 Roland Dreier 2010-02-24 645 err_qp: 19f31343 Bart Van Assche 2018-01-22 646 if (target->using_rdma_cm) 19f31343 Bart Van Assche 2018-01-22 @647 rdma_destroy_qp(ch->rdma_cm.cm_id); 19f31343 Bart Van Assche 2018-01-22 648 else 95c2ef50 Israel Rukshin 2017-05-11 649 ib_destroy_qp(qp); da9d2f07 Roland Dreier 2010-02-24 650 da9d2f07 Roland Dreier 2010-02-24 651 err_send_cq: 1dc7b1f1 Christoph Hellwig 2015-11-13 652 ib_free_cq(send_cq); da9d2f07 Roland Dreier 2010-02-24 653 da9d2f07 Roland Dreier 2010-02-24 654 err_recv_cq: 1dc7b1f1 Christoph Hellwig 2015-11-13 655 ib_free_cq(recv_cq); aef9ec39 Roland Dreier 2005-11-02 656 da9d2f07 Roland Dreier 2010-02-24 657 err: aef9ec39 Roland Dreier 2005-11-02 658 kfree(init_attr); aef9ec39 Roland Dreier 2005-11-02 659 return ret; aef9ec39 Roland Dreier 2005-11-02 660 } aef9ec39 Roland Dreier 2005-11-02 661 :::::: The code at line 585 was first introduced by commit :::::: 19f313438c7754e6cc2bceddeebeaa5132e2e0a1 IB/srp: Add RDMA/CM support :::::: TO: Bart Van Assche :::::: CC: Doug Ledford --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation