2019-07-23 09:17:47

by Yue Haibing

[permalink] [raw]
Subject: [PATCH] RDMA/hns: Fix build error for hip08

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'

Reported-by: Hulk Robot <[email protected]>
Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
Signed-off-by: YueHaibing <[email protected]>
---
drivers/infiniband/hw/hns/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
index b59da5d..4371c80 100644
--- a/drivers/infiniband/hw/hns/Kconfig
+++ b/drivers/infiniband/hw/hns/Kconfig
@@ -23,7 +23,8 @@ config INFINIBAND_HNS_HIP06

config INFINIBAND_HNS_HIP08
bool "Hisilicon Hip08 Family RoCE support"
- depends on INFINIBAND_HNS && PCI && HNS3
+ depends on INFINIBAND_HNS && (INFINIBAND_HNS = HNS3)
+ depends on PCI
---help---
RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
The RoCE engine is a PCI device.
--
2.7.4



2019-07-23 14:53:44

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error for hip08

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.

>
> Reported-by: Hulk Robot <[email protected]>
> Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> drivers/infiniband/hw/hns/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
> index b59da5d..4371c80 100644
> --- a/drivers/infiniband/hw/hns/Kconfig
> +++ b/drivers/infiniband/hw/hns/Kconfig
> @@ -23,7 +23,8 @@ config INFINIBAND_HNS_HIP06
>
> config INFINIBAND_HNS_HIP08
> bool "Hisilicon Hip08 Family RoCE support"
> - depends on INFINIBAND_HNS && PCI && HNS3
> + depends on INFINIBAND_HNS && (INFINIBAND_HNS = HNS3)

This is wrong.

> + depends on PCI
> ---help---
> RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
> The RoCE engine is a PCI device.
> --
> 2.7.4
>
>

2019-07-23 20:03:44

by Yue Haibing

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error for hip08


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.

I can't see how to fix this in header files of hns3, or am I missing something?

>
>>
>> Reported-by: Hulk Robot <[email protected]>
>> Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
>> Signed-off-by: YueHaibing <[email protected]>
>> ---
>> drivers/infiniband/hw/hns/Kconfig | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
>> index b59da5d..4371c80 100644
>> --- a/drivers/infiniband/hw/hns/Kconfig
>> +++ b/drivers/infiniband/hw/hns/Kconfig
>> @@ -23,7 +23,8 @@ config INFINIBAND_HNS_HIP06
>>
>> config INFINIBAND_HNS_HIP08
>> bool "Hisilicon Hip08 Family RoCE support"
>> - depends on INFINIBAND_HNS && PCI && HNS3
>> + depends on INFINIBAND_HNS && (INFINIBAND_HNS = HNS3)
>
> This is wrong.
>
>> + depends on PCI
>> ---help---
>> RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
>> The RoCE engine is a PCI device.
>> --
>> 2.7.4
>>
>>
>
> .
>

2019-07-23 20:04:54

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error for hip08

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

2019-07-23 23:09:13

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error for hip08

On Tue, Jul 23, 2019 at 10:43:39AM +0300, 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.
>
> >
> > Reported-by: Hulk Robot <[email protected]>
> > Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
> > Signed-off-by: YueHaibing <[email protected]>
> > drivers/infiniband/hw/hns/Kconfig | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
> > index b59da5d..4371c80 100644
> > +++ b/drivers/infiniband/hw/hns/Kconfig
> > @@ -23,7 +23,8 @@ config INFINIBAND_HNS_HIP06
> >
> > config INFINIBAND_HNS_HIP08
> > bool "Hisilicon Hip08 Family RoCE support"
> > - depends on INFINIBAND_HNS && PCI && HNS3
> > + depends on INFINIBAND_HNS && (INFINIBAND_HNS = HNS3)
>
> This is wrong.

It is tricky. It is asserting that the IB side is built as a module if
the ethernet side is a module..

It is kind of a weird pattern as the module config is INFINIBAND_HNS
and these others are just bool opens what to include, but I think it
is OK..

Jason

2019-07-23 23:39:38

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error for hip08

On Tue, Jul 23, 2019 at 09:34:02AM -0300, Jason Gunthorpe wrote:
> On Tue, Jul 23, 2019 at 10:43:39AM +0300, 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.
> >
> > >
> > > Reported-by: Hulk Robot <[email protected]>
> > > Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
> > > Signed-off-by: YueHaibing <[email protected]>
> > > drivers/infiniband/hw/hns/Kconfig | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
> > > index b59da5d..4371c80 100644
> > > +++ b/drivers/infiniband/hw/hns/Kconfig
> > > @@ -23,7 +23,8 @@ config INFINIBAND_HNS_HIP06
> > >
> > > config INFINIBAND_HNS_HIP08
> > > bool "Hisilicon Hip08 Family RoCE support"
> > > - depends on INFINIBAND_HNS && PCI && HNS3
> > > + depends on INFINIBAND_HNS && (INFINIBAND_HNS = HNS3)
> >
> > This is wrong.
>
> It is tricky. It is asserting that the IB side is built as a module if
> the ethernet side is a module..
>
> It is kind of a weird pattern as the module config is INFINIBAND_HNS
> and these others are just bool opens what to include, but I think it
> is OK..

select ???

>
> Jason

2019-07-24 02:17:29

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error for hip08

On Tue, Jul 23, 2019 at 04:35:40PM +0300, Leon Romanovsky wrote:
> On Tue, Jul 23, 2019 at 09:34:02AM -0300, Jason Gunthorpe wrote:
> > On Tue, Jul 23, 2019 at 10:43:39AM +0300, 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.
> > >
> > > >
> > > > Reported-by: Hulk Robot <[email protected]>
> > > > Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
> > > > Signed-off-by: YueHaibing <[email protected]>
> > > > drivers/infiniband/hw/hns/Kconfig | 3 ++-
> > > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
> > > > index b59da5d..4371c80 100644
> > > > +++ b/drivers/infiniband/hw/hns/Kconfig
> > > > @@ -23,7 +23,8 @@ config INFINIBAND_HNS_HIP06
> > > >
> > > > config INFINIBAND_HNS_HIP08
> > > > bool "Hisilicon Hip08 Family RoCE support"
> > > > - depends on INFINIBAND_HNS && PCI && HNS3
> > > > + depends on INFINIBAND_HNS && (INFINIBAND_HNS = HNS3)
> > >
> > > This is wrong.
> >
> > It is tricky. It is asserting that the IB side is built as a module if
> > the ethernet side is a module..
> >
> > It is kind of a weird pattern as the module config is INFINIBAND_HNS
> > and these others are just bool opens what to include, but I think it
> > is OK..
>
> select ???

select doesn't influence module or not any different from depeends

Jason

2019-07-24 03:12:21

by Yue Haibing

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error for hip08

On 2019/7/23 21:37, Jason Gunthorpe wrote:
> On Tue, Jul 23, 2019 at 04:35:40PM +0300, Leon Romanovsky wrote:
>> On Tue, Jul 23, 2019 at 09:34:02AM -0300, Jason Gunthorpe wrote:
>>> On Tue, Jul 23, 2019 at 10:43:39AM +0300, 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.
>>>>
>>>>>
>>>>> Reported-by: Hulk Robot <[email protected]>
>>>>> Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
>>>>> Signed-off-by: YueHaibing <[email protected]>
>>>>> drivers/infiniband/hw/hns/Kconfig | 3 ++-
>>>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
>>>>> index b59da5d..4371c80 100644
>>>>> +++ b/drivers/infiniband/hw/hns/Kconfig
>>>>> @@ -23,7 +23,8 @@ config INFINIBAND_HNS_HIP06
>>>>>
>>>>> config INFINIBAND_HNS_HIP08
>>>>> bool "Hisilicon Hip08 Family RoCE support"
>>>>> - depends on INFINIBAND_HNS && PCI && HNS3
>>>>> + depends on INFINIBAND_HNS && (INFINIBAND_HNS = HNS3)
>>>>
>>>> This is wrong.
>>>
>>> It is tricky. It is asserting that the IB side is built as a module if
>>> the ethernet side is a module..
>>>
>>> It is kind of a weird pattern as the module config is INFINIBAND_HNS
>>> and these others are just bool opens what to include, but I think it
>>> is OK..
>>
>> select ???
>
> select doesn't influence module or not any different from depeends

Ok, it seems select is a better solution, it allows HNS3 is y while INFINIBAND_HNS is m,

Will send v2, Thanks!

>
> Jason
>
> .
>

2019-07-24 03:43:01

by Yue Haibing

[permalink] [raw]
Subject: [PATCH v2] RDMA/hns: Fix build error for hip08

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'

Reported-by: Hulk Robot <[email protected]>
Suggested-by: Leon Romanovsky <[email protected]>
Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
Signed-off-by: YueHaibing <[email protected]>
---
v2: select HNS3 to fix this
---
drivers/infiniband/hw/hns/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
index 8bf847b..b9dfac0 100644
--- a/drivers/infiniband/hw/hns/Kconfig
+++ b/drivers/infiniband/hw/hns/Kconfig
@@ -22,7 +22,8 @@ config INFINIBAND_HNS_HIP06

config INFINIBAND_HNS_HIP08
bool "Hisilicon Hip08 Family RoCE support"
- depends on INFINIBAND_HNS && PCI && HNS3
+ depends on INFINIBAND_HNS && PCI
+ select HNS3
---help---
RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
The RoCE engine is a PCI device.
--
2.7.4


2019-07-24 06:13:43

by Yue Haibing

[permalink] [raw]
Subject: Re: [PATCH v2] RDMA/hns: Fix build error for hip08


Pls drop this, this cannot fix the issue.

On 2019/7/24 11:40, 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'
>
> Reported-by: Hulk Robot <[email protected]>
> Suggested-by: Leon Romanovsky <[email protected]>
> Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
> Signed-off-by: YueHaibing <[email protected]>
> ---
> v2: select HNS3 to fix this
> ---
> drivers/infiniband/hw/hns/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
> index 8bf847b..b9dfac0 100644
> --- a/drivers/infiniband/hw/hns/Kconfig
> +++ b/drivers/infiniband/hw/hns/Kconfig
> @@ -22,7 +22,8 @@ config INFINIBAND_HNS_HIP06
>
> config INFINIBAND_HNS_HIP08
> bool "Hisilicon Hip08 Family RoCE support"
> - depends on INFINIBAND_HNS && PCI && HNS3
> + depends on INFINIBAND_HNS && PCI
> + select HNS3
> ---help---
> RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
> The RoCE engine is a PCI device.
>

2019-07-24 06:56:52

by Yue Haibing

[permalink] [raw]
Subject: [PATCH] RDMA/hns: Fix build error

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'

Also if INFINIBAND_HNS_HIP06 is selected and HNS_DSAF
is m, but INFINIBAND_HNS is y, building fails:

drivers/infiniband/hw/hns/hns_roce_hw_v1.o: In function `hns_roce_v1_reset':
hns_roce_hw_v1.c:(.text+0x39fa): undefined reference to `hns_dsaf_roce_reset'
hns_roce_hw_v1.c:(.text+0x3a25): undefined reference to `hns_dsaf_roce_reset'

Reported-by: Hulk Robot <[email protected]>
Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
Fixes: 08805fdbeb2d ("RDMA/hns: Split hw v1 driver from hns roce driver")
Signed-off-by: YueHaibing <[email protected]>
---
drivers/infiniband/hw/hns/Kconfig | 6 +++---
drivers/infiniband/hw/hns/Makefile | 8 ++------
2 files changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/infiniband/hw/hns/Kconfig b/drivers/infiniband/hw/hns/Kconfig
index 8bf847b..5478219 100644
--- a/drivers/infiniband/hw/hns/Kconfig
+++ b/drivers/infiniband/hw/hns/Kconfig
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-only
config INFINIBAND_HNS
- tristate "HNS RoCE Driver"
+ bool "HNS RoCE Driver"
depends on NET_VENDOR_HISILICON
depends on ARM64 || (COMPILE_TEST && 64BIT)
---help---
@@ -11,7 +11,7 @@ config INFINIBAND_HNS
To compile HIP06 or HIP08 driver as module, choose M here.

config INFINIBAND_HNS_HIP06
- bool "Hisilicon Hip06 Family RoCE support"
+ tristate "Hisilicon Hip06 Family RoCE support"
depends on INFINIBAND_HNS && HNS && HNS_DSAF && HNS_ENET
---help---
RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip06 and
@@ -21,7 +21,7 @@ config INFINIBAND_HNS_HIP06
module will be called hns-roce-hw-v1

config INFINIBAND_HNS_HIP08
- bool "Hisilicon Hip08 Family RoCE support"
+ tristate "Hisilicon Hip08 Family RoCE support"
depends on INFINIBAND_HNS && PCI && HNS3
---help---
RoCE driver support for Hisilicon RoCE engine in Hisilicon Hip08 SoC.
diff --git a/drivers/infiniband/hw/hns/Makefile b/drivers/infiniband/hw/hns/Makefile
index e105945..449a2d8 100644
--- a/drivers/infiniband/hw/hns/Makefile
+++ b/drivers/infiniband/hw/hns/Makefile
@@ -9,12 +9,8 @@ hns-roce-objs := hns_roce_main.o hns_roce_cmd.o hns_roce_pd.o \
hns_roce_ah.o hns_roce_hem.o hns_roce_mr.o hns_roce_qp.o \
hns_roce_cq.o hns_roce_alloc.o hns_roce_db.o hns_roce_srq.o hns_roce_restrack.o

-ifdef CONFIG_INFINIBAND_HNS_HIP06
hns-roce-hw-v1-objs := hns_roce_hw_v1.o $(hns-roce-objs)
-obj-$(CONFIG_INFINIBAND_HNS) += hns-roce-hw-v1.o
-endif
+obj-$(CONFIG_INFINIBAND_HNS_HIP06) += hns-roce-hw-v1.o

-ifdef CONFIG_INFINIBAND_HNS_HIP08
hns-roce-hw-v2-objs := hns_roce_hw_v2.o hns_roce_hw_v2_dfx.o $(hns-roce-objs)
-obj-$(CONFIG_INFINIBAND_HNS) += hns-roce-hw-v2.o
-endif
+obj-$(CONFIG_INFINIBAND_HNS_HIP08) += hns-roce-hw-v2.o
--
2.7.4


2019-07-24 11:35:11

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error

On Wed, Jul 24, 2019 at 02:54:43PM +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'
>
> Also if INFINIBAND_HNS_HIP06 is selected and HNS_DSAF
> is m, but INFINIBAND_HNS is y, building fails:
>
> drivers/infiniband/hw/hns/hns_roce_hw_v1.o: In function `hns_roce_v1_reset':
> hns_roce_hw_v1.c:(.text+0x39fa): undefined reference to `hns_dsaf_roce_reset'
> hns_roce_hw_v1.c:(.text+0x3a25): undefined reference to `hns_dsaf_roce_reset'
>
> Reported-by: Hulk Robot <[email protected]>
> Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
> Fixes: 08805fdbeb2d ("RDMA/hns: Split hw v1 driver from hns roce driver")
> Signed-off-by: YueHaibing <[email protected]>
> drivers/infiniband/hw/hns/Kconfig | 6 +++---
> drivers/infiniband/hw/hns/Makefile | 8 ++------
> 2 files changed, 5 insertions(+), 9 deletions(-)

did you test this approach with CONFIG_MODULES=n?

Jason

2019-07-24 15:33:36

by Yue Haibing

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error


On 2019/7/24 19:32, Jason Gunthorpe wrote:
> On Wed, Jul 24, 2019 at 02:54:43PM +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'
>>
>> Also if INFINIBAND_HNS_HIP06 is selected and HNS_DSAF
>> is m, but INFINIBAND_HNS is y, building fails:
>>
>> drivers/infiniband/hw/hns/hns_roce_hw_v1.o: In function `hns_roce_v1_reset':
>> hns_roce_hw_v1.c:(.text+0x39fa): undefined reference to `hns_dsaf_roce_reset'
>> hns_roce_hw_v1.c:(.text+0x3a25): undefined reference to `hns_dsaf_roce_reset'
>>
>> Reported-by: Hulk Robot <[email protected]>
>> Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08 RoCE")
>> Fixes: 08805fdbeb2d ("RDMA/hns: Split hw v1 driver from hns roce driver")
>> Signed-off-by: YueHaibing <[email protected]>
>> drivers/infiniband/hw/hns/Kconfig | 6 +++---
>> drivers/infiniband/hw/hns/Makefile | 8 ++------
>> 2 files changed, 5 insertions(+), 9 deletions(-)
>
> did you test this approach with CONFIG_MODULES=n?

Yes, I test it, it works now.

>
> Jason
>
> .
>

2019-07-29 16:39:51

by Doug Ledford

[permalink] [raw]
Subject: Re: [PATCH] RDMA/hns: Fix build error

On Wed, 2019-07-24 at 08:32 -0300, Jason Gunthorpe wrote:
> On Wed, Jul 24, 2019 at 02:54:43PM +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'
> >
> > Also if INFINIBAND_HNS_HIP06 is selected and HNS_DSAF
> > is m, but INFINIBAND_HNS is y, building fails:
> >
> > drivers/infiniband/hw/hns/hns_roce_hw_v1.o: In function
> > `hns_roce_v1_reset':
> > hns_roce_hw_v1.c:(.text+0x39fa): undefined reference to
> > `hns_dsaf_roce_reset'
> > hns_roce_hw_v1.c:(.text+0x3a25): undefined reference to
> > `hns_dsaf_roce_reset'
> >
> > Reported-by: Hulk Robot <[email protected]>
> > Fixes: dd74282df573 ("RDMA/hns: Initialize the PCI device for hip08
> > RoCE")
> > Fixes: 08805fdbeb2d ("RDMA/hns: Split hw v1 driver from hns roce
> > driver")
> > Signed-off-by: YueHaibing <[email protected]>
> > drivers/infiniband/hw/hns/Kconfig | 6 +++---
> > drivers/infiniband/hw/hns/Makefile | 8 ++------
> > 2 files changed, 5 insertions(+), 9 deletions(-)
>
> did you test this approach with CONFIG_MODULES=n?

This version of the patch looks like the right fix.

Applying to for-rc, thanks.

--
Doug Ledford <[email protected]>
GPG KeyID: B826A3330E572FDD
Fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD


Attachments:
signature.asc (849.00 B)
This is a digitally signed message part