diff mbox

[net-next] liquidio: 'imply' ptp instead of 'select'

Message ID 20161202230451.1639318-1-arnd@arndb.de
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Arnd Bergmann Dec. 2, 2016, 11:04 p.m. UTC
ptp now depends on the optional POSIX_TIMERS setting and fails to build
if we select it without that:

warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
ERROR: "posix_clock_unregister" [drivers/ptp/ptp.ko] undefined!
ERROR: "posix_clock_register" [drivers/ptp/ptp.ko] undefined!
ERROR: "pps_unregister_source" [drivers/ptp/ptp.ko] undefined!
ERROR: "pps_event" [drivers/ptp/ptp.ko] undefined!
ERROR: "pps_register_source" [drivers/ptp/ptp.ko] undefined!

It seems that two patches have collided here, the build failure
is a result of the combination. Changing the new option to 'imply'
as well fixes it.

Fixes: 111fc64a237f ("liquidio CN23XX: VF registration")
Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/net/ethernet/cavium/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Nicolas Pitre Dec. 2, 2016, 11:20 p.m. UTC | #1
On Sat, 3 Dec 2016, Arnd Bergmann wrote:

> ptp now depends on the optional POSIX_TIMERS setting and fails to build
> if we select it without that:
> 
> warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> ERROR: "posix_clock_unregister" [drivers/ptp/ptp.ko] undefined!
> ERROR: "posix_clock_register" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_unregister_source" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_event" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_register_source" [drivers/ptp/ptp.ko] undefined!
> 
> It seems that two patches have collided here, the build failure
> is a result of the combination. Changing the new option to 'imply'
> as well fixes it.
> 
> Fixes: 111fc64a237f ("liquidio CN23XX: VF registration")
> Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Nicolas Pitre <nico@linaro.org>

> ---
>  drivers/net/ethernet/cavium/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/cavium/Kconfig b/drivers/net/ethernet/cavium/Kconfig
> index bbc8bd16cb97..dcbce6cac63e 100644
> --- a/drivers/net/ethernet/cavium/Kconfig
> +++ b/drivers/net/ethernet/cavium/Kconfig
> @@ -77,7 +77,7 @@ config OCTEON_MGMT_ETHERNET
>  config LIQUIDIO_VF
>  	tristate "Cavium LiquidIO VF support"
>  	depends on 64BIT && PCI_MSI
> -	select PTP_1588_CLOCK
> +	imply PTP_1588_CLOCK
>  	---help---
>  	  This driver supports Cavium LiquidIO Intelligent Server Adapter
>  	  based on CN23XX chips.
> -- 
> 2.9.0
> 
>
David Daney Dec. 2, 2016, 11:20 p.m. UTC | #2
On 12/02/2016 03:04 PM, Arnd Bergmann wrote:
> ptp now depends on the optional POSIX_TIMERS setting and fails to build
> if we select it without that:
>
> warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> ERROR: "posix_clock_unregister" [drivers/ptp/ptp.ko] undefined!
> ERROR: "posix_clock_register" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_unregister_source" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_event" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_register_source" [drivers/ptp/ptp.ko] undefined!
>
> It seems that two patches have collided here, the build failure
> is a result of the combination. Changing the new option to 'imply'
> as well fixes it.
>
> Fixes: 111fc64a237f ("liquidio CN23XX: VF registration")
> Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

I didn't know about this new "imply" thing.  This seems like a plausible 
fix, so...

Acked-by: David Daney <david.daney@cavium.com>

Thanks for fixing this up.


> ---
>  drivers/net/ethernet/cavium/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/cavium/Kconfig b/drivers/net/ethernet/cavium/Kconfig
> index bbc8bd16cb97..dcbce6cac63e 100644
> --- a/drivers/net/ethernet/cavium/Kconfig
> +++ b/drivers/net/ethernet/cavium/Kconfig
> @@ -77,7 +77,7 @@ config OCTEON_MGMT_ETHERNET
>  config LIQUIDIO_VF
>  	tristate "Cavium LiquidIO VF support"
>  	depends on 64BIT && PCI_MSI
> -	select PTP_1588_CLOCK
> +	imply PTP_1588_CLOCK
>  	---help---
>  	  This driver supports Cavium LiquidIO Intelligent Server Adapter
>  	  based on CN23XX chips.
>
kernel test robot Dec. 3, 2016, 1:23 a.m. UTC | #3
Hi Arnd,

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Arnd-Bergmann/liquidio-imply-ptp-instead-of-select/20161203-084019
config: x86_64-allmodconfig
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        make ARCH=x86_64  allmodconfig
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

>> drivers/net/ethernet/cavium/Kconfig:81: syntax error
>> drivers/net/ethernet/cavium/Kconfig:80: unknown option "imply"
   make[2]: *** [allmodconfig] Error 1
   make[1]: *** [allmodconfig] Error 2
   make: *** [sub-make] Error 2
--
>> drivers/net/ethernet/cavium/Kconfig:81: syntax error
>> drivers/net/ethernet/cavium/Kconfig:80: unknown option "imply"
   make[2]: *** [oldconfig] Error 1
   make[1]: *** [oldconfig] Error 2
   make: *** [sub-make] Error 2
--
>> drivers/net/ethernet/cavium/Kconfig:81: syntax error
>> drivers/net/ethernet/cavium/Kconfig:80: unknown option "imply"
   make[2]: *** [olddefconfig] Error 1
   make[2]: Target 'oldnoconfig' not remade because of errors.
   make[1]: *** [oldnoconfig] Error 2
   make: *** [sub-make] Error 2

vim +81 drivers/net/ethernet/cavium/Kconfig

d07a147f David Daney     2016-03-14  74  	  port on Cavium Networks' Octeon CN57XX, CN56XX, CN55XX,
d07a147f David Daney     2016-03-14  75  	  CN54XX, CN52XX, and CN6XXX chips.
d07a147f David Daney     2016-03-14  76  
111fc64a Raghu Vatsavayi 2016-11-28  77  config LIQUIDIO_VF
111fc64a Raghu Vatsavayi 2016-11-28  78  	tristate "Cavium LiquidIO VF support"
111fc64a Raghu Vatsavayi 2016-11-28  79  	depends on 64BIT && PCI_MSI
2d6e65ca Arnd Bergmann   2016-12-03 @80  	imply PTP_1588_CLOCK
111fc64a Raghu Vatsavayi 2016-11-28 @81  	---help---
111fc64a Raghu Vatsavayi 2016-11-28  82  	  This driver supports Cavium LiquidIO Intelligent Server Adapter
111fc64a Raghu Vatsavayi 2016-11-28  83  	  based on CN23XX chips.
111fc64a Raghu Vatsavayi 2016-11-28  84  

:::::: The code at line 81 was first introduced by commit
:::::: 111fc64a237f231bc2d3187bdf8358eb7966e6a9 liquidio CN23XX: VF registration

:::::: TO: Raghu Vatsavayi <rvatsavayi@caviumnetworks.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
David Miller Dec. 4, 2016, 4:39 a.m. UTC | #4
From: Arnd Bergmann <arnd@arndb.de>
Date: Sat,  3 Dec 2016 00:04:32 +0100

> ptp now depends on the optional POSIX_TIMERS setting and fails to build
> if we select it without that:
> 
> warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> ERROR: "posix_clock_unregister" [drivers/ptp/ptp.ko] undefined!
> ERROR: "posix_clock_register" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_unregister_source" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_event" [drivers/ptp/ptp.ko] undefined!
> ERROR: "pps_register_source" [drivers/ptp/ptp.ko] undefined!
> 
> It seems that two patches have collided here, the build failure
> is a result of the combination. Changing the new option to 'imply'
> as well fixes it.
> 
> Fixes: 111fc64a237f ("liquidio CN23XX: VF registration")
> Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Like the kbuild robot, when I apply this it complains about 'imply' being
an unknown option.

I guess it worked for you because support for 'imply' exists in the -next
tree and gets pulled in from somewhere else.

In any event, as-is I cannot apply this.
Nicolas Pitre Dec. 5, 2016, 3:44 p.m. UTC | #5
On Sat, 3 Dec 2016, David Miller wrote:

> From: Arnd Bergmann <arnd@arndb.de>
> Date: Sat,  3 Dec 2016 00:04:32 +0100
> 
> > ptp now depends on the optional POSIX_TIMERS setting and fails to build
> > if we select it without that:
> > 
> > warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> > warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> > ERROR: "posix_clock_unregister" [drivers/ptp/ptp.ko] undefined!
> > ERROR: "posix_clock_register" [drivers/ptp/ptp.ko] undefined!
> > ERROR: "pps_unregister_source" [drivers/ptp/ptp.ko] undefined!
> > ERROR: "pps_event" [drivers/ptp/ptp.ko] undefined!
> > ERROR: "pps_register_source" [drivers/ptp/ptp.ko] undefined!
> > 
> > It seems that two patches have collided here, the build failure
> > is a result of the combination. Changing the new option to 'imply'
> > as well fixes it.
> > 
> > Fixes: 111fc64a237f ("liquidio CN23XX: VF registration")
> > Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> 
> Like the kbuild robot, when I apply this it complains about 'imply' being
> an unknown option.
> 
> I guess it worked for you because support for 'imply' exists in the -next
> tree and gets pulled in from somewhere else.

Exact.

> In any event, as-is I cannot apply this.

It should be carried in linux-next for the time being, and suggested as 
a probable "merge resolution" to Linus when submitting your tree for 
merging.  I think that's the best that can be done.


Nicolas
David Miller Dec. 5, 2016, 5:20 p.m. UTC | #6
From: Nicolas Pitre <nicolas.pitre@linaro.org>
Date: Mon, 5 Dec 2016 10:44:32 -0500 (EST)

> On Sat, 3 Dec 2016, David Miller wrote:
> 
>> From: Arnd Bergmann <arnd@arndb.de>
>> Date: Sat,  3 Dec 2016 00:04:32 +0100
>> 
>> > ptp now depends on the optional POSIX_TIMERS setting and fails to build
>> > if we select it without that:
>> > 
>> > warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
>> > warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
>> > ERROR: "posix_clock_unregister" [drivers/ptp/ptp.ko] undefined!
>> > ERROR: "posix_clock_register" [drivers/ptp/ptp.ko] undefined!
>> > ERROR: "pps_unregister_source" [drivers/ptp/ptp.ko] undefined!
>> > ERROR: "pps_event" [drivers/ptp/ptp.ko] undefined!
>> > ERROR: "pps_register_source" [drivers/ptp/ptp.ko] undefined!
>> > 
>> > It seems that two patches have collided here, the build failure
>> > is a result of the combination. Changing the new option to 'imply'
>> > as well fixes it.
>> > 
>> > Fixes: 111fc64a237f ("liquidio CN23XX: VF registration")
>> > Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
>> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>> 
>> Like the kbuild robot, when I apply this it complains about 'imply' being
>> an unknown option.
>> 
>> I guess it worked for you because support for 'imply' exists in the -next
>> tree and gets pulled in from somewhere else.
> 
> Exact.
> 
>> In any event, as-is I cannot apply this.
> 
> It should be carried in linux-next for the time being, and suggested as 
> a probable "merge resolution" to Linus when submitting your tree for 
> merging.  I think that's the best that can be done.

This means the build of pure net-next is broken, which is unacceptble, as
this is the tree that many developers do their work and build tests against.

You cannot have the proper functioning of net-next depend upon something
not in that tree.

Therefore, you must resolve this without the 'imply' keyword somehow.

Thanks.
Nicolas Pitre Dec. 5, 2016, 6:44 p.m. UTC | #7
On Mon, 5 Dec 2016, David Miller wrote:

> From: Nicolas Pitre <nicolas.pitre@linaro.org>
> Date: Mon, 5 Dec 2016 10:44:32 -0500 (EST)
> 
> > On Sat, 3 Dec 2016, David Miller wrote:
> > 
> >> From: Arnd Bergmann <arnd@arndb.de>
> >> Date: Sat,  3 Dec 2016 00:04:32 +0100
> >> 
> >> > ptp now depends on the optional POSIX_TIMERS setting and fails to build
> >> > if we select it without that:
> >> > 
> >> > warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> >> > warning: (LIQUIDIO_VF && TI_CPTS) selects PTP_1588_CLOCK which has unmet direct dependencies (NET && POSIX_TIMERS)
> >> > ERROR: "posix_clock_unregister" [drivers/ptp/ptp.ko] undefined!
> >> > ERROR: "posix_clock_register" [drivers/ptp/ptp.ko] undefined!
> >> > ERROR: "pps_unregister_source" [drivers/ptp/ptp.ko] undefined!
> >> > ERROR: "pps_event" [drivers/ptp/ptp.ko] undefined!
> >> > ERROR: "pps_register_source" [drivers/ptp/ptp.ko] undefined!
> >> > 
> >> > It seems that two patches have collided here, the build failure
> >> > is a result of the combination. Changing the new option to 'imply'
> >> > as well fixes it.
> >> > 
> >> > Fixes: 111fc64a237f ("liquidio CN23XX: VF registration")
> >> > Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
> >> > Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> >> 
> >> Like the kbuild robot, when I apply this it complains about 'imply' being
> >> an unknown option.
> >> 
> >> I guess it worked for you because support for 'imply' exists in the -next
> >> tree and gets pulled in from somewhere else.
> > 
> > Exact.
> > 
> >> In any event, as-is I cannot apply this.
> > 
> > It should be carried in linux-next for the time being, and suggested as 
> > a probable "merge resolution" to Linus when submitting your tree for 
> > merging.  I think that's the best that can be done.
> 
> This means the build of pure net-next is broken, which is unacceptble, as
> this is the tree that many developers do their work and build tests against.

Why would it be broken?

The only thing that needs to happen is for that "select" to be turned 
into a "imply" when your tree is merged into Linus' tree.  Or when your 
tree is merged into linux-next (I'm sure Stephen can carry a patch to 
that effect). It doesn't have to live in net-next directly.

The "imply" support has been available in linux-next for almost a month 
now, and it has been discussed for much longer than that.

And if people forget then we'll fix it then. That's not a big issue.


Nicolas
diff mbox

Patch

diff --git a/drivers/net/ethernet/cavium/Kconfig b/drivers/net/ethernet/cavium/Kconfig
index bbc8bd16cb97..dcbce6cac63e 100644
--- a/drivers/net/ethernet/cavium/Kconfig
+++ b/drivers/net/ethernet/cavium/Kconfig
@@ -77,7 +77,7 @@  config OCTEON_MGMT_ETHERNET
 config LIQUIDIO_VF
 	tristate "Cavium LiquidIO VF support"
 	depends on 64BIT && PCI_MSI
-	select PTP_1588_CLOCK
+	imply PTP_1588_CLOCK
 	---help---
 	  This driver supports Cavium LiquidIO Intelligent Server Adapter
 	  based on CN23XX chips.