mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers
@ 2017-03-13 16:58 Arnd Bergmann
  2017-03-13 20:09 ` Nicolas Pitre
  0 siblings, 1 reply; 6+ messages in thread
From: Arnd Bergmann @ 2017-03-13 16:58 UTC (permalink / raw)
  To: David S. Miller
  Cc: Arnd Bergmann, Nicolas Pitre, stable, Grygorii Strashko,
	Thomas Gleixner, John Stultz, netdev, linux-kernel

With posix timers having become optional, we get a build error with
the cpts time sync option of the CPSW driver:

drivers/net/ethernet/ti/cpts.c: In function 'cpts_find_ts':
drivers/net/ethernet/ti/cpts.c:291:23: error: implicit declaration of function 'ptp_classify_raw';did you mean 'ptp_classifier_init'? [-Werror=implicit-function-declaration]

It really makes no sense to build this driver if we can't use PTP,
so it's better to go back to 'select PTP_1588_CLOCK' but instead
add a dependency on POSIX_TIMERS. Adding 'depends on PTP_1588_CLOCK'
might also work, but has the risk of circular dependencies when
mixed with other drivers using 'imply'.

Fixes: baa73d9e478f ("posix-timers: Make them configurable")
Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: stable@vger.kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
Originally submitted on Dec 16, but not applied after I missed a
reply from Nico. I confirmed that this is still needed for v4.10
and v4.11-rc2 and am resending it without changes.
---
 drivers/net/ethernet/ti/Kconfig | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
index d42257fbe9d9..c114efcd1575 100644
--- a/drivers/net/ethernet/ti/Kconfig
+++ b/drivers/net/ethernet/ti/Kconfig
@@ -76,7 +76,8 @@ config TI_CPSW
 config TI_CPTS_ENABLE
 	bool "TI Common Platform Time Sync (CPTS) Support"
 	depends on TI_CPSW || TI_KEYSTONE_NETCP
-	imply PTP_1588_CLOCK
+	depends on POSIX_TIMERS
+	select PTP_1588_CLOCK
 	---help---
 	  This driver supports the Common Platform Time Sync unit of
 	  the CPSW Ethernet Switch and Keystone 2 1g/10g Switch Subsystem.
-- 
2.9.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers
  2017-03-13 16:58 [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers Arnd Bergmann
@ 2017-03-13 20:09 ` Nicolas Pitre
  2017-03-13 20:28   ` Arnd Bergmann
  0 siblings, 1 reply; 6+ messages in thread
From: Nicolas Pitre @ 2017-03-13 20:09 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: David S. Miller, stable, Grygorii Strashko, Thomas Gleixner,
	John Stultz, netdev, linux-kernel

On Mon, 13 Mar 2017, Arnd Bergmann wrote:

> With posix timers having become optional, we get a build error with
> the cpts time sync option of the CPSW driver:
> 
> drivers/net/ethernet/ti/cpts.c: In function 'cpts_find_ts':
> drivers/net/ethernet/ti/cpts.c:291:23: error: implicit declaration of function 'ptp_classify_raw';did you mean 'ptp_classifier_init'? [-Werror=implicit-function-declaration]
> 
> It really makes no sense to build this driver if we can't use PTP,
> so it's better to go back to 'select PTP_1588_CLOCK' but instead
> add a dependency on POSIX_TIMERS. Adding 'depends on PTP_1588_CLOCK'
> might also work, but has the risk of circular dependencies when
> mixed with other drivers using 'imply'.

Could you elaborate on that risk please?


> Fixes: baa73d9e478f ("posix-timers: Make them configurable")
> Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
> Cc: stable@vger.kernel.org
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> Originally submitted on Dec 16, but not applied after I missed a
> reply from Nico. I confirmed that this is still needed for v4.10
> and v4.11-rc2 and am resending it without changes.
> ---
>  drivers/net/ethernet/ti/Kconfig | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
> index d42257fbe9d9..c114efcd1575 100644
> --- a/drivers/net/ethernet/ti/Kconfig
> +++ b/drivers/net/ethernet/ti/Kconfig
> @@ -76,7 +76,8 @@ config TI_CPSW
>  config TI_CPTS_ENABLE
>  	bool "TI Common Platform Time Sync (CPTS) Support"
>  	depends on TI_CPSW || TI_KEYSTONE_NETCP
> -	imply PTP_1588_CLOCK
> +	depends on POSIX_TIMERS
> +	select PTP_1588_CLOCK
>  	---help---
>  	  This driver supports the Common Platform Time Sync unit of
>  	  the CPSW Ethernet Switch and Keystone 2 1g/10g Switch Subsystem.
> -- 
> 2.9.0
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers
  2017-03-13 20:09 ` Nicolas Pitre
@ 2017-03-13 20:28   ` Arnd Bergmann
  2017-03-13 20:41     ` Nicolas Pitre
  0 siblings, 1 reply; 6+ messages in thread
From: Arnd Bergmann @ 2017-03-13 20:28 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: David S. Miller, stable, Grygorii Strashko, Thomas Gleixner,
	John Stultz, Networking, Linux Kernel Mailing List

On Mon, Mar 13, 2017 at 9:09 PM, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> On Mon, 13 Mar 2017, Arnd Bergmann wrote:
>
>> With posix timers having become optional, we get a build error with
>> the cpts time sync option of the CPSW driver:
>>
>> drivers/net/ethernet/ti/cpts.c: In function 'cpts_find_ts':
>> drivers/net/ethernet/ti/cpts.c:291:23: error: implicit declaration of function 'ptp_classify_raw';did you mean 'ptp_classifier_init'? [-Werror=implicit-function-declaration]
>>
>> It really makes no sense to build this driver if we can't use PTP,
>> so it's better to go back to 'select PTP_1588_CLOCK' but instead
>> add a dependency on POSIX_TIMERS. Adding 'depends on PTP_1588_CLOCK'
>> might also work, but has the risk of circular dependencies when
>> mixed with other drivers using 'imply'.
>
> Could you elaborate on that risk please?

I have seen many circular dependencies in the past that tend to be of type

config FOO
     depends on A
     select B

config BAR
     select A
     depends on B

The best way to avoid this problem is to only ever use either 'select' or
'depends on' for any given dependency, but not both. In this case, almost
all references to PTP_1588_CLOCK use 'select' or 'implies', so I don't
want to introduce any more 'depends on'.

     Arnd

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers
  2017-03-13 20:28   ` Arnd Bergmann
@ 2017-03-13 20:41     ` Nicolas Pitre
  2017-03-13 20:51       ` Nicolas Pitre
  0 siblings, 1 reply; 6+ messages in thread
From: Nicolas Pitre @ 2017-03-13 20:41 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: David S. Miller, stable, Grygorii Strashko, Thomas Gleixner,
	John Stultz, Networking, Linux Kernel Mailing List

On Mon, 13 Mar 2017, Arnd Bergmann wrote:

> On Mon, Mar 13, 2017 at 9:09 PM, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> > On Mon, 13 Mar 2017, Arnd Bergmann wrote:
> >
> >> With posix timers having become optional, we get a build error with
> >> the cpts time sync option of the CPSW driver:
> >>
> >> drivers/net/ethernet/ti/cpts.c: In function 'cpts_find_ts':
> >> drivers/net/ethernet/ti/cpts.c:291:23: error: implicit declaration of function 'ptp_classify_raw';did you mean 'ptp_classifier_init'? [-Werror=implicit-function-declaration]
> >>
> >> It really makes no sense to build this driver if we can't use PTP,
> >> so it's better to go back to 'select PTP_1588_CLOCK' but instead
> >> add a dependency on POSIX_TIMERS. Adding 'depends on PTP_1588_CLOCK'
> >> might also work, but has the risk of circular dependencies when
> >> mixed with other drivers using 'imply'.
> >
> > Could you elaborate on that risk please?
> 
> I have seen many circular dependencies in the past that tend to be of type
> 
> config FOO
>      depends on A
>      select B
> 
> config BAR
>      select A
>      depends on B

This is really a problem?  I mean in this example there is nothing that 
prevents A or B to be enabled independently.  Of course if you had:

config A
	depends on B

config B
	depends on A

then the circular dependency is obvious.

> The best way to avoid this problem is to only ever use either 'select' or
> 'depends on' for any given dependency, but not both. In this case, almost
> all references to PTP_1588_CLOCK use 'select' or 'implies', so I don't
> want to introduce any more 'depends on'.

I can't find any "select PTP_1588_CLOCK" in the tree.

The "imply" keyword in itself doesn't create nor inforce any 
dependencies -- that's why it was created in the first place.

So unless I'm mistaken I don't see any problem using "depends on 
PTP_1588_CLOCK" here.


Nicolas

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers
  2017-03-13 20:41     ` Nicolas Pitre
@ 2017-03-13 20:51       ` Nicolas Pitre
  2017-03-15 14:55         ` Arnd Bergmann
  0 siblings, 1 reply; 6+ messages in thread
From: Nicolas Pitre @ 2017-03-13 20:51 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: David S. Miller, stable, Grygorii Strashko, Thomas Gleixner,
	John Stultz, Networking, Linux Kernel Mailing List

On Mon, 13 Mar 2017, Nicolas Pitre wrote:

> So unless I'm mistaken I don't see any problem using "depends on 
> PTP_1588_CLOCK" here.

Furthermore that wouldn't be a first. See for example 
PTP_1588_CLOCK_GIANFAR, PTP_1588_CLOCK_IXP46X, DP83640_PHY, etc.


Nicolas

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers
  2017-03-13 20:51       ` Nicolas Pitre
@ 2017-03-15 14:55         ` Arnd Bergmann
  0 siblings, 0 replies; 6+ messages in thread
From: Arnd Bergmann @ 2017-03-15 14:55 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: David S. Miller, stable, Grygorii Strashko, Thomas Gleixner,
	John Stultz, Networking, Linux Kernel Mailing List

On Mon, Mar 13, 2017 at 9:51 PM, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> On Mon, 13 Mar 2017, Nicolas Pitre wrote:
>
>> So unless I'm mistaken I don't see any problem using "depends on
>> PTP_1588_CLOCK" here.
>
> Furthermore that wouldn't be a first. See for example
> PTP_1588_CLOCK_GIANFAR, PTP_1588_CLOCK_IXP46X, DP83640_PHY, etc.

Ok, I'll give this a few rounds on the randconfig builder and submit it that way
unless I run into problems.

    Arnd

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-03-15 14:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-13 16:58 [RESEND PATCH -net] cpsw/netcp: cpts depends on posix_timers Arnd Bergmann
2017-03-13 20:09 ` Nicolas Pitre
2017-03-13 20:28   ` Arnd Bergmann
2017-03-13 20:41     ` Nicolas Pitre
2017-03-13 20:51       ` Nicolas Pitre
2017-03-15 14:55         ` Arnd Bergmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®