On Tue, Jul 23, 2019 at 06:06:22PM +0800, Yuehaibing wrote: > > On 2019/7/23 15:43, Leon Romanovsky wrote: > > On Tue, Jul 23, 2019 at 10:49:08AM +0800, YueHaibing wrote: > >> If INFINIBAND_HNS_HIP08 is selected and HNS3 is m, > >> but INFINIBAND_HNS is y, building fails: > >> > >> drivers/infiniband/hw/hns/hns_roce_hw_v2.o: In function `hns_roce_hw_v2_exit': > >> hns_roce_hw_v2.c:(.exit.text+0xd): undefined reference to `hnae3_unregister_client' > >> drivers/infiniband/hw/hns/hns_roce_hw_v2.o: In function `hns_roce_hw_v2_init': > >> hns_roce_hw_v2.c:(.init.text+0xd): undefined reference to `hnae3_register_client' > > > > It means that you have a problem with header files of your hns3. > > hnae3_unregister_client is a EXPORT_SYMBOL. If INFINIBAND_HNS is y, > hns-roce-hw-v2 will be built-in, but as HNS3 is set to m, linking will failed. One of the possible solution is to add "select" identifier to your Kconfig, it will ensure that HNS3 will be set to "y" too. Thanks