Hi Serge, [auto build test ERROR on ntb/ntb-next] [also build test ERROR on v4.9-rc7 next-20161130] [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/Serge-Semin/NTB-Alter-kernel-API-to-support-multi-port-devices/20161201-014939 base: https://github.com/jonmason/ntb ntb-next config: x86_64-randconfig-s5-12010242 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 Note: the linux-review/Serge-Semin/NTB-Alter-kernel-API-to-support-multi-port-devices/20161201-014939 HEAD ced946cf007084caf9a2ec237c898bbf1940b440 builds fine. It only hurts bisectibility. All errors (new ones prefixed by >>): drivers/ntb/ntb_transport.c: In function 'ntb_free_mw': >> drivers/ntb/ntb_transport.c:685:2: error: too few arguments to function 'ntb_mw_clear_trans' ntb_mw_clear_trans(nt->ndev, num_mw); ^~~~~~~~~~~~~~~~~~ In file included from drivers/ntb/ntb_transport.c:62:0: include/linux/ntb.h:739:19: note: declared here static inline int ntb_mw_clear_trans(struct ntb_dev *ntb, int pidx, int widx) ^~~~~~~~~~~~~~~~~~ drivers/ntb/ntb_transport.c: In function 'ntb_set_mw': >> drivers/ntb/ntb_transport.c:742:7: error: too few arguments to function 'ntb_mw_set_trans' rc = ntb_mw_set_trans(nt->ndev, num_mw, mw->dma_addr, mw->xlat_size); ^~~~~~~~~~~~~~~~ In file included from drivers/ntb/ntb_transport.c:62:0: include/linux/ntb.h:718:19: note: declared here static inline int ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx, ^~~~~~~~~~~~~~~~ drivers/ntb/ntb_transport.c: In function 'ntb_transport_probe': >> drivers/ntb/ntb_transport.c:1072:13: error: too few arguments to function 'ntb_mw_count' mw_count = ntb_mw_count(ndev); ^~~~~~~~~~~~ In file included from drivers/ntb/ntb_transport.c:62:0: include/linux/ntb.h:669:19: note: declared here static inline int ntb_mw_count(struct ntb_dev *ntb, int pidx) ^~~~~~~~~~~~ >> drivers/ntb/ntb_transport.c:1106:8: error: implicit declaration of function 'ntb_mw_get_range' [-Werror=implicit-function-declaration] rc = ntb_mw_get_range(ndev, i, &mw->phys_addr, &mw->phys_size, ^~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers/ntb/test/ntb_perf.c: In function 'perf_free_mw': >> drivers/ntb/test/ntb_perf.c:455:2: error: too few arguments to function 'ntb_mw_clear_trans' ntb_mw_clear_trans(perf->ntb, 0); ^~~~~~~~~~~~~~~~~~ In file included from drivers/ntb/test/ntb_perf.c:60:0: include/linux/ntb.h:739:19: note: declared here static inline int ntb_mw_clear_trans(struct ntb_dev *ntb, int pidx, int widx) ^~~~~~~~~~~~~~~~~~ drivers/ntb/test/ntb_perf.c: In function 'perf_set_mw': >> drivers/ntb/test/ntb_perf.c:491:7: error: too few arguments to function 'ntb_mw_set_trans' rc = ntb_mw_set_trans(perf->ntb, 0, mw->dma_addr, mw->xlat_size); ^~~~~~~~~~~~~~~~ In file included from drivers/ntb/test/ntb_perf.c:60:0: include/linux/ntb.h:718:19: note: declared here static inline int ntb_mw_set_trans(struct ntb_dev *ntb, int pidx, int widx, ^~~~~~~~~~~~~~~~ drivers/ntb/test/ntb_perf.c: In function 'perf_setup_mw': >> drivers/ntb/test/ntb_perf.c:562:7: error: implicit declaration of function 'ntb_mw_get_range' [-Werror=implicit-function-declaration] rc = ntb_mw_get_range(ntb, 0, &mw->phys_addr, &mw->phys_size, ^~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers/ntb/hw/amd/ntb_hw_amd.c: In function 'amd_ntb_link_enable': drivers/ntb/hw/amd/ntb_hw_amd.c:256:24: error: 'NTB_TOPO_SEC' undeclared (first use in this function) if (ndev->ntb.topo == NTB_TOPO_SEC) ^~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c:256:24: note: each undeclared identifier is reported only once for each function it appears in drivers/ntb/hw/amd/ntb_hw_amd.c: In function 'amd_ntb_link_disable': drivers/ntb/hw/amd/ntb_hw_amd.c:277:24: error: 'NTB_TOPO_SEC' undeclared (first use in this function) if (ndev->ntb.topo == NTB_TOPO_SEC) ^~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c: At top level: >> drivers/ntb/hw/amd/ntb_hw_amd.c:434:15: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .mw_count = amd_ntb_mw_count, ^~~~~~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c:434:15: note: (near initialization for 'amd_ntb_ops.mw_count') >> drivers/ntb/hw/amd/ntb_hw_amd.c:435:2: error: unknown field 'mw_get_range' specified in initializer .mw_get_range = amd_ntb_mw_get_range, ^ drivers/ntb/hw/amd/ntb_hw_amd.c:435:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .mw_get_range = amd_ntb_mw_get_range, ^~~~~~~~~~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c:435:19: note: (near initialization for 'amd_ntb_ops.mw_get_align') drivers/ntb/hw/amd/ntb_hw_amd.c:436:19: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] .mw_set_trans = amd_ntb_mw_set_trans, ^~~~~~~~~~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c:436:19: note: (near initialization for 'amd_ntb_ops.mw_set_trans') drivers/ntb/hw/amd/ntb_hw_amd.c: In function 'amd_init_ntb': drivers/ntb/hw/amd/ntb_hw_amd.c:880:7: error: 'NTB_TOPO_PRI' undeclared (first use in this function) case NTB_TOPO_PRI: ^~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c:881:7: error: 'NTB_TOPO_SEC' undeclared (first use in this function) case NTB_TOPO_SEC: ^~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c: In function 'amd_get_topo': drivers/ntb/hw/amd/ntb_hw_amd.c:915:10: error: 'NTB_TOPO_SEC' undeclared (first use in this function) return NTB_TOPO_SEC; ^~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c:917:10: error: 'NTB_TOPO_PRI' undeclared (first use in this function) return NTB_TOPO_PRI; ^~~~~~~~~~~~ drivers/ntb/hw/amd/ntb_hw_amd.c:918:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ cc1: some warnings being treated as errors vim +/ntb_mw_clear_trans +685 drivers/ntb/ntb_transport.c e26a5843 Allen Hubbe 2015-04-09 679 struct ntb_transport_mw *mw = &nt->mw_vec[num_mw]; e26a5843 Allen Hubbe 2015-04-09 680 struct pci_dev *pdev = nt->ndev->pdev; b77b2637 Jon Mason 2013-02-01 681 b77b2637 Jon Mason 2013-02-01 682 if (!mw->virt_addr) b77b2637 Jon Mason 2013-02-01 683 return; b77b2637 Jon Mason 2013-02-01 684 e26a5843 Allen Hubbe 2015-04-09 @685 ntb_mw_clear_trans(nt->ndev, num_mw); e26a5843 Allen Hubbe 2015-04-09 686 dma_free_coherent(&pdev->dev, mw->buff_size, e26a5843 Allen Hubbe 2015-04-09 687 mw->virt_addr, mw->dma_addr); e26a5843 Allen Hubbe 2015-04-09 688 mw->xlat_size = 0; e26a5843 Allen Hubbe 2015-04-09 689 mw->buff_size = 0; b77b2637 Jon Mason 2013-02-01 690 mw->virt_addr = NULL; b77b2637 Jon Mason 2013-02-01 691 } b77b2637 Jon Mason 2013-02-01 692 e26a5843 Allen Hubbe 2015-04-09 693 static int ntb_set_mw(struct ntb_transport_ctx *nt, int num_mw, 8c9edf63 Allen Hubbe 2015-07-13 694 resource_size_t size) fce8a7bb Jon Mason 2012-11-16 695 { e26a5843 Allen Hubbe 2015-04-09 696 struct ntb_transport_mw *mw = &nt->mw_vec[num_mw]; e26a5843 Allen Hubbe 2015-04-09 697 struct pci_dev *pdev = nt->ndev->pdev; 8c9edf63 Allen Hubbe 2015-07-13 698 size_t xlat_size, buff_size; e26a5843 Allen Hubbe 2015-04-09 699 int rc; e26a5843 Allen Hubbe 2015-04-09 700 8c9edf63 Allen Hubbe 2015-07-13 701 if (!size) 8c9edf63 Allen Hubbe 2015-07-13 702 return -EINVAL; 8c9edf63 Allen Hubbe 2015-07-13 703 e26a5843 Allen Hubbe 2015-04-09 704 xlat_size = round_up(size, mw->xlat_align_size); e26a5843 Allen Hubbe 2015-04-09 705 buff_size = round_up(size, mw->xlat_align); fce8a7bb Jon Mason 2012-11-16 706 b77b2637 Jon Mason 2013-02-01 707 /* No need to re-setup */ e26a5843 Allen Hubbe 2015-04-09 708 if (mw->xlat_size == xlat_size) b77b2637 Jon Mason 2013-02-01 709 return 0; b77b2637 Jon Mason 2013-02-01 710 e26a5843 Allen Hubbe 2015-04-09 711 if (mw->buff_size) b77b2637 Jon Mason 2013-02-01 712 ntb_free_mw(nt, num_mw); b77b2637 Jon Mason 2013-02-01 713 e26a5843 Allen Hubbe 2015-04-09 714 /* Alloc memory for receiving data. Must be aligned */ e26a5843 Allen Hubbe 2015-04-09 715 mw->xlat_size = xlat_size; e26a5843 Allen Hubbe 2015-04-09 716 mw->buff_size = buff_size; fce8a7bb Jon Mason 2012-11-16 717 e26a5843 Allen Hubbe 2015-04-09 718 mw->virt_addr = dma_alloc_coherent(&pdev->dev, buff_size, e26a5843 Allen Hubbe 2015-04-09 719 &mw->dma_addr, GFP_KERNEL); fce8a7bb Jon Mason 2012-11-16 720 if (!mw->virt_addr) { e26a5843 Allen Hubbe 2015-04-09 721 mw->xlat_size = 0; e26a5843 Allen Hubbe 2015-04-09 722 mw->buff_size = 0; 8c9edf63 Allen Hubbe 2015-07-13 723 dev_err(&pdev->dev, "Unable to alloc MW buff of size %zu\n", e26a5843 Allen Hubbe 2015-04-09 724 buff_size); fce8a7bb Jon Mason 2012-11-16 725 return -ENOMEM; fce8a7bb Jon Mason 2012-11-16 726 } fce8a7bb Jon Mason 2012-11-16 727 3cc5ba19 Dave Jiang 2014-08-28 728 /* 3cc5ba19 Dave Jiang 2014-08-28 729 * we must ensure that the memory address allocated is BAR size 3cc5ba19 Dave Jiang 2014-08-28 730 * aligned in order for the XLAT register to take the value. This 3cc5ba19 Dave Jiang 2014-08-28 731 * is a requirement of the hardware. It is recommended to setup CMA 3cc5ba19 Dave Jiang 2014-08-28 732 * for BAR sizes equal or greater than 4MB. 3cc5ba19 Dave Jiang 2014-08-28 733 */ e26a5843 Allen Hubbe 2015-04-09 734 if (!IS_ALIGNED(mw->dma_addr, mw->xlat_align)) { e26a5843 Allen Hubbe 2015-04-09 735 dev_err(&pdev->dev, "DMA memory %pad is not aligned\n", 3cc5ba19 Dave Jiang 2014-08-28 736 &mw->dma_addr); 3cc5ba19 Dave Jiang 2014-08-28 737 ntb_free_mw(nt, num_mw); 3cc5ba19 Dave Jiang 2014-08-28 738 return -ENOMEM; 3cc5ba19 Dave Jiang 2014-08-28 739 } 3cc5ba19 Dave Jiang 2014-08-28 740 fce8a7bb Jon Mason 2012-11-16 741 /* Notify HW the memory location of the receive buffer */ e26a5843 Allen Hubbe 2015-04-09 @742 rc = ntb_mw_set_trans(nt->ndev, num_mw, mw->dma_addr, mw->xlat_size); e26a5843 Allen Hubbe 2015-04-09 743 if (rc) { e26a5843 Allen Hubbe 2015-04-09 744 dev_err(&pdev->dev, "Unable to set mw%d translation", num_mw); e26a5843 Allen Hubbe 2015-04-09 745 ntb_free_mw(nt, num_mw); :::::: The code at line 685 was first introduced by commit :::::: e26a5843f7f5014ae4460030ca4de029a3ac35d3 NTB: Split ntb_hw_intel and ntb_transport drivers :::::: TO: Allen Hubbe :::::: CC: Jon Mason --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation