Patch "net: Make PTP-specific drivers depend on PTP_1588_CLOCK" has been added to the 5.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net: Make PTP-specific drivers depend on PTP_1588_CLOCK

to the 5.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     net-make-ptp-specific-drivers-depend-on-ptp_1588_clo.patch
and it can be found in the queue-5.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit de35f6f92b03c5b9586bb7fd63b906045e12ee81
Author: Clay McClure <clay@xxxxxxxxxxx>
Date:   Wed Apr 29 00:59:00 2020 -0700

    net: Make PTP-specific drivers depend on PTP_1588_CLOCK
    
    [ Upstream commit b6d49cab44b567b3e0a5544b3d61e516a7355fad ]
    
    Commit d1cbfd771ce8 ("ptp_clock: Allow for it to be optional") changed
    all PTP-capable Ethernet drivers from `select PTP_1588_CLOCK` to `imply
    PTP_1588_CLOCK`, "in order to break the hard dependency between the PTP
    clock subsystem and ethernet drivers capable of being clock providers."
    As a result it is possible to build PTP-capable Ethernet drivers without
    the PTP subsystem by deselecting PTP_1588_CLOCK. Drivers are required to
    handle the missing dependency gracefully.
    
    Some PTP-capable Ethernet drivers (e.g., TI_CPSW) factor their PTP code
    out into separate drivers (e.g., TI_CPTS_MOD). The above commit also
    changed these PTP-specific drivers to `imply PTP_1588_CLOCK`, making it
    possible to build them without the PTP subsystem. But as Grygorii
    Strashko noted in [1]:
    
    On Wed, Apr 22, 2020 at 02:16:11PM +0300, Grygorii Strashko wrote:
    
    > Another question is that CPTS completely nonfunctional in this case and
    > it was never expected that somebody will even try to use/run such
    > configuration (except for random build purposes).
    
    In my view, enabling a PTP-specific driver without the PTP subsystem is
    a configuration error made possible by the above commit. Kconfig should
    not allow users to create a configuration with missing dependencies that
    results in "completely nonfunctional" drivers.
    
    I audited all network drivers that call ptp_clock_register() but merely
    `imply PTP_1588_CLOCK` and found five PTP-specific drivers that are
    likely nonfunctional without PTP_1588_CLOCK:
    
        NET_DSA_MV88E6XXX_PTP
        NET_DSA_SJA1105_PTP
        MACB_USE_HWSTAMP
        CAVIUM_PTP
        TI_CPTS_MOD
    
    Note how these symbols all reference PTP or timestamping in their name;
    this is a clue that they depend on PTP_1588_CLOCK.
    
    Change them from `imply PTP_1588_CLOCK` [2] to `depends on PTP_1588_CLOCK`.
    I'm not using `select PTP_1588_CLOCK` here because PTP_1588_CLOCK has
    its own dependencies, which `select` would not transitively apply.
    
    Additionally, remove the `select NET_PTP_CLASSIFY` from CPTS_TI_MOD;
    PTP_1588_CLOCK already selects that.
    
    [1]: https://lore.kernel.org/lkml/c04458ed-29ee-1797-3a11-7f3f560553e6@xxxxxx/
    
    [2]: NET_DSA_SJA1105_PTP had never declared any type of dependency on
    PTP_1588_CLOCK (`imply` or otherwise); adding a `depends on PTP_1588_CLOCK`
    here seems appropriate.
    
    Cc: Arnd Bergmann <arnd@xxxxxxxx>
    Cc: Richard Cochran <richardcochran@xxxxxxxxx>
    Cc: Nicolas Pitre <nico@xxxxxxxxxxx>
    Cc: Grygorii Strashko <grygorii.strashko@xxxxxx>
    Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
    Fixes: d1cbfd771ce8 ("ptp_clock: Allow for it to be optional")
    Signed-off-by: Clay McClure <clay@xxxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/dsa/mv88e6xxx/Kconfig b/drivers/net/dsa/mv88e6xxx/Kconfig
index 6435020d690dd..51185e4d7d15e 100644
--- a/drivers/net/dsa/mv88e6xxx/Kconfig
+++ b/drivers/net/dsa/mv88e6xxx/Kconfig
@@ -24,8 +24,8 @@ config NET_DSA_MV88E6XXX_PTP
 	bool "PTP support for Marvell 88E6xxx"
 	default n
 	depends on NET_DSA_MV88E6XXX_GLOBAL2
+	depends on PTP_1588_CLOCK
 	imply NETWORK_PHY_TIMESTAMPING
-	imply PTP_1588_CLOCK
 	help
 	  Say Y to enable PTP hardware timestamping on Marvell 88E6xxx switch
 	  chips that support it.
diff --git a/drivers/net/dsa/sja1105/Kconfig b/drivers/net/dsa/sja1105/Kconfig
index 0fe1ae173aa1a..68c3086af9af8 100644
--- a/drivers/net/dsa/sja1105/Kconfig
+++ b/drivers/net/dsa/sja1105/Kconfig
@@ -20,6 +20,7 @@ tristate "NXP SJA1105 Ethernet switch family support"
 config NET_DSA_SJA1105_PTP
 	bool "Support for the PTP clock on the NXP SJA1105 Ethernet switch"
 	depends on NET_DSA_SJA1105
+	depends on PTP_1588_CLOCK
 	help
 	  This enables support for timestamping and PTP clock manipulations in
 	  the SJA1105 DSA driver.
diff --git a/drivers/net/ethernet/cadence/Kconfig b/drivers/net/ethernet/cadence/Kconfig
index 53b50c24d9c95..2c4c12b03502d 100644
--- a/drivers/net/ethernet/cadence/Kconfig
+++ b/drivers/net/ethernet/cadence/Kconfig
@@ -35,8 +35,8 @@ config MACB
 config MACB_USE_HWSTAMP
 	bool "Use IEEE 1588 hwstamp"
 	depends on MACB
+	depends on PTP_1588_CLOCK
 	default y
-	imply PTP_1588_CLOCK
 	---help---
 	  Enable IEEE 1588 Precision Time Protocol (PTP) support for MACB.
 
diff --git a/drivers/net/ethernet/cavium/Kconfig b/drivers/net/ethernet/cavium/Kconfig
index 6a700d34019e3..4520e7ee00fe1 100644
--- a/drivers/net/ethernet/cavium/Kconfig
+++ b/drivers/net/ethernet/cavium/Kconfig
@@ -54,7 +54,7 @@ config	THUNDER_NIC_RGX
 config CAVIUM_PTP
 	tristate "Cavium PTP coprocessor as PTP clock"
 	depends on 64BIT && PCI
-	imply PTP_1588_CLOCK
+	depends on PTP_1588_CLOCK
 	---help---
 	  This driver adds support for the Precision Time Protocol Clocks and
 	  Timestamping coprocessor (PTP) found on Cavium processors.
diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
index bf98e0fa7d8be..cd6eda83e1f8c 100644
--- a/drivers/net/ethernet/ti/Kconfig
+++ b/drivers/net/ethernet/ti/Kconfig
@@ -89,9 +89,8 @@ config TI_CPTS
 config TI_CPTS_MOD
 	tristate
 	depends on TI_CPTS
+	depends on PTP_1588_CLOCK
 	default y if TI_CPSW=y || TI_KEYSTONE_NETCP=y || TI_CPSW_SWITCHDEV=y
-	select NET_PTP_CLASSIFY
-	imply PTP_1588_CLOCK
 	default m
 
 config TI_KEYSTONE_NETCP



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux