All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver
@ 2019-05-31 19:15 Robert Hancock
  2019-05-31 19:15 ` [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal Robert Hancock
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Robert Hancock @ 2019-05-31 19:15 UTC (permalink / raw)
  To: netdev; +Cc: Robert Hancock

This adds a driver for the PHY device implemented in the Xilinx PCS/PMA
Core logic. Aside from being a generic gigabit PHY, it includes an
important register setting to disable the PHY isolation bit, which is
required for the PHY to operate in 1000BaseX mode.

This version is a simplified version of the GPL 2+ version from the
Xilinx kernel tree.

Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
---
 drivers/net/phy/Kconfig      |  6 +++++
 drivers/net/phy/Makefile     |  1 +
 drivers/net/phy/xilinx_phy.c | 60 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 67 insertions(+)
 create mode 100644 drivers/net/phy/xilinx_phy.c

diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index db5645b..101c794 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -462,6 +462,12 @@ config VITESSE_PHY
 	---help---
 	  Currently supports the vsc8244
 
+config XILINX_PHY
+	tristate "Drivers for Xilinx PHYs"
+	help
+	  This module provides a driver for the PHY implemented in the
+	  Xilinx PCS/PMA Core.
+
 config XILINX_GMII2RGMII
 	tristate "Xilinx GMII2RGMII converter driver"
 	---help---
diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
index bac339e..f71359d 100644
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
@@ -92,3 +92,4 @@ obj-$(CONFIG_STE10XP)		+= ste10Xp.o
 obj-$(CONFIG_TERANETICS_PHY)	+= teranetics.o
 obj-$(CONFIG_VITESSE_PHY)	+= vitesse.o
 obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o
+obj-$(CONFIG_XILINX_PHY)	+= xilinx_phy.o
diff --git a/drivers/net/phy/xilinx_phy.c b/drivers/net/phy/xilinx_phy.c
new file mode 100644
index 0000000..2d468c7
--- /dev/null
+++ b/drivers/net/phy/xilinx_phy.c
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-2.0+
+/* Xilinx PCS/PMA Core phy driver
+ *
+ * Copyright (C) 2019 SED Systems, a division of Calian Ltd.
+ *
+ * Based upon Xilinx version of this driver:
+ * Copyright (C) 2015 Xilinx, Inc.
+ *
+ * Description:
+ * This driver is developed for PCS/PMA Core.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/mii.h>
+#include <linux/phy.h>
+
+/* Mask used for ID comparisons */
+#define XILINX_PHY_ID_MASK		0xfffffff0
+
+/* Known PHY IDs */
+#define XILINX_PHY_ID			0x01740c00
+
+#define XPCSPMA_PHY_CTRL_ISOLATE_DISABLE 0xFBFF
+
+static int xilinxphy_config_init(struct phy_device *phydev)
+{
+	int temp;
+
+	temp = phy_read(phydev, MII_BMCR);
+	temp &= XPCSPMA_PHY_CTRL_ISOLATE_DISABLE;
+	phy_write(phydev, MII_BMCR, temp);
+
+	return 0;
+}
+
+static struct phy_driver xilinx_drivers[] = {
+{
+	.phy_id		= XILINX_PHY_ID,
+	.phy_id_mask	= XILINX_PHY_ID_MASK,
+	.name		= "Xilinx PCS/PMA PHY",
+	.features	= PHY_GBIT_FEATURES,
+	.config_init	= xilinxphy_config_init,
+	.resume		= genphy_resume,
+	.suspend	= genphy_suspend,
+	.set_loopback   = genphy_loopback,
+},
+};
+
+module_phy_driver(xilinx_drivers);
+
+static struct mdio_device_id __maybe_unused xilinx_tbl[] = {
+	{ XILINX_PHY_ID, XILINX_PHY_ID_MASK },
+	{ }
+};
+
+MODULE_DEVICE_TABLE(mdio, xilinx_tbl);
+MODULE_DESCRIPTION("Xilinx PCS/PMA PHY driver");
+MODULE_LICENSE("GPL");
+
-- 
1.8.3.1


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

* [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal
  2019-05-31 19:15 [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver Robert Hancock
@ 2019-05-31 19:15 ` Robert Hancock
  2019-05-31 20:54   ` Andrew Lunn
  2019-05-31 20:52 ` [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver Andrew Lunn
  2019-05-31 21:11 ` Florian Fainelli
  2 siblings, 1 reply; 8+ messages in thread
From: Robert Hancock @ 2019-05-31 19:15 UTC (permalink / raw)
  To: netdev; +Cc: Robert Hancock

It is possible that scheduled work started by the PHY driver is still
outstanding when phy_device_remove is called if the PHY was initially
started but never connected, and therefore phy_disconnect is never
called. phy_stop does not guarantee that the scheduled work is stopped
because it is called under rtnl_lock. This can cause an oops due to
use-after-free if the delayed work fires after freeing the PHY device.

Ensure that the state_queue work is cancelled in both phy_device_remove
and phy_remove paths.

Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
---
 drivers/net/phy/phy_device.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index 2c879ba..1c90b33 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -877,6 +877,8 @@ int phy_device_register(struct phy_device *phydev)
  */
 void phy_device_remove(struct phy_device *phydev)
 {
+	cancel_delayed_work_sync(&phydev->state_queue);
+
 	device_del(&phydev->mdio.dev);
 
 	/* Assert the reset signal */
-- 
1.8.3.1


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

* Re: [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver
  2019-05-31 19:15 [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver Robert Hancock
  2019-05-31 19:15 ` [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal Robert Hancock
@ 2019-05-31 20:52 ` Andrew Lunn
  2019-05-31 21:11 ` Florian Fainelli
  2 siblings, 0 replies; 8+ messages in thread
From: Andrew Lunn @ 2019-05-31 20:52 UTC (permalink / raw)
  To: Robert Hancock; +Cc: netdev

On Fri, May 31, 2019 at 01:15:49PM -0600, Robert Hancock wrote:
> This adds a driver for the PHY device implemented in the Xilinx PCS/PMA
> Core logic. Aside from being a generic gigabit PHY, it includes an
> important register setting to disable the PHY isolation bit, which is
> required for the PHY to operate in 1000BaseX mode.
> 
> This version is a simplified version of the GPL 2+ version from the
> Xilinx kernel tree.
> 
> Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
> ---
>  drivers/net/phy/Kconfig      |  6 +++++
>  drivers/net/phy/Makefile     |  1 +
>  drivers/net/phy/xilinx_phy.c | 60 ++++++++++++++++++++++++++++++++++++++++++++

Hi Robert

Please drop the _phy . No other driver does that.

>  3 files changed, 67 insertions(+)
>  create mode 100644 drivers/net/phy/xilinx_phy.c
> 
> diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
> index db5645b..101c794 100644
> --- a/drivers/net/phy/Kconfig
> +++ b/drivers/net/phy/Kconfig
> @@ -462,6 +462,12 @@ config VITESSE_PHY
>  	---help---
>  	  Currently supports the vsc8244
>  
> +config XILINX_PHY
> +	tristate "Drivers for Xilinx PHYs"
> +	help
> +	  This module provides a driver for the PHY implemented in the
> +	  Xilinx PCS/PMA Core.
> +
>  config XILINX_GMII2RGMII
>  	tristate "Xilinx GMII2RGMII converter driver"
>  	---help---

> index bac339e..f71359d 100644
> --- a/drivers/net/phy/Makefile
> +++ b/drivers/net/phy/Makefile
> @@ -92,3 +92,4 @@ obj-$(CONFIG_STE10XP)		+= ste10Xp.o
>  obj-$(CONFIG_TERANETICS_PHY)	+= teranetics.o
>  obj-$(CONFIG_VITESSE_PHY)	+= vitesse.o
>  obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o
> +obj-$(CONFIG_XILINX_PHY)	+= xilinx_phy.o

In kconfig you added it before CONFIG_XILINX_GMII2RGMII. Here you have
it afterwards. Please be consistent.

> diff --git a/drivers/net/phy/xilinx_phy.c b/drivers/net/phy/xilinx_phy.c
> new file mode 100644
> index 0000000..2d468c7
> --- /dev/null
> +++ b/drivers/net/phy/xilinx_phy.c
> @@ -0,0 +1,60 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/* Xilinx PCS/PMA Core phy driver
> + *
> + * Copyright (C) 2019 SED Systems, a division of Calian Ltd.
> + *
> + * Based upon Xilinx version of this driver:
> + * Copyright (C) 2015 Xilinx, Inc.
> + *
> + * Description:
> + * This driver is developed for PCS/PMA Core.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/mii.h>
> +#include <linux/phy.h>
> +
> +/* Mask used for ID comparisons */
> +#define XILINX_PHY_ID_MASK		0xfffffff0
> +
> +/* Known PHY IDs */
> +#define XILINX_PHY_ID			0x01740c00
> +
> +#define XPCSPMA_PHY_CTRL_ISOLATE_DISABLE 0xFBFF

> +static int xilinxphy_config_init(struct phy_device *phydev)

Please drop the phy here as well.

> +{
> +	int temp;
> +
> +	temp = phy_read(phydev, MII_BMCR);
> +	temp &= XPCSPMA_PHY_CTRL_ISOLATE_DISABLE;
> +	phy_write(phydev, MII_BMCR, temp);

    phy_modify(phydev, MII_BMCR, BMCR_ISOLATE);

> +
> +	return 0;
> +}
> +
> +static struct phy_driver xilinx_drivers[] = {
> +{
> +	.phy_id		= XILINX_PHY_ID,
> +	.phy_id_mask	= XILINX_PHY_ID_MASK,
> +	.name		= "Xilinx PCS/PMA PHY",
> +	.features	= PHY_GBIT_FEATURES,

Assuming the PHY follows C22 standards, that is not needed. The PHY
itself tells you what it is capable of.

       Andrew

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

* Re: [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal
  2019-05-31 19:15 ` [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal Robert Hancock
@ 2019-05-31 20:54   ` Andrew Lunn
  2019-05-31 21:26     ` Heiner Kallweit
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Lunn @ 2019-05-31 20:54 UTC (permalink / raw)
  To: Robert Hancock; +Cc: netdev, Florian Fainelli, Heiner Kallweit

Robert

Please make sure you Cc: PHY patches to the PHY maintainers.

Heiner, this one is for you.

	Andrew

On Fri, May 31, 2019 at 01:15:50PM -0600, Robert Hancock wrote:
> It is possible that scheduled work started by the PHY driver is still
> outstanding when phy_device_remove is called if the PHY was initially
> started but never connected, and therefore phy_disconnect is never
> called. phy_stop does not guarantee that the scheduled work is stopped
> because it is called under rtnl_lock. This can cause an oops due to
> use-after-free if the delayed work fires after freeing the PHY device.
> 
> Ensure that the state_queue work is cancelled in both phy_device_remove
> and phy_remove paths.
> 
> Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
> ---
>  drivers/net/phy/phy_device.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
> index 2c879ba..1c90b33 100644
> --- a/drivers/net/phy/phy_device.c
> +++ b/drivers/net/phy/phy_device.c
> @@ -877,6 +877,8 @@ int phy_device_register(struct phy_device *phydev)
>   */
>  void phy_device_remove(struct phy_device *phydev)
>  {
> +	cancel_delayed_work_sync(&phydev->state_queue);
> +
>  	device_del(&phydev->mdio.dev);
>  
>  	/* Assert the reset signal */
> -- 
> 1.8.3.1
> 

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

* Re: [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver
  2019-05-31 19:15 [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver Robert Hancock
  2019-05-31 19:15 ` [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal Robert Hancock
  2019-05-31 20:52 ` [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver Andrew Lunn
@ 2019-05-31 21:11 ` Florian Fainelli
  2 siblings, 0 replies; 8+ messages in thread
From: Florian Fainelli @ 2019-05-31 21:11 UTC (permalink / raw)
  To: Robert Hancock, netdev, Heiner Kallweit, Andrew Lunn

On 5/31/19 12:15 PM, Robert Hancock wrote:
> This adds a driver for the PHY device implemented in the Xilinx PCS/PMA
> Core logic. Aside from being a generic gigabit PHY, it includes an
> important register setting to disable the PHY isolation bit, which is
> required for the PHY to operate in 1000BaseX mode.
> 
> This version is a simplified version of the GPL 2+ version from the
> Xilinx kernel tree.
> 
> Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
> ---
>  drivers/net/phy/Kconfig      |  6 +++++
>  drivers/net/phy/Makefile     |  1 +
>  drivers/net/phy/xilinx_phy.c | 60 ++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 67 insertions(+)
>  create mode 100644 drivers/net/phy/xilinx_phy.c
> 
> diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
> index db5645b..101c794 100644
> --- a/drivers/net/phy/Kconfig
> +++ b/drivers/net/phy/Kconfig
> @@ -462,6 +462,12 @@ config VITESSE_PHY
>  	---help---
>  	  Currently supports the vsc8244
>  
> +config XILINX_PHY
> +	tristate "Drivers for Xilinx PHYs"
> +	help
> +	  This module provides a driver for the PHY implemented in the
> +	  Xilinx PCS/PMA Core.
> +
>  config XILINX_GMII2RGMII
>  	tristate "Xilinx GMII2RGMII converter driver"
>  	---help---
> diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile
> index bac339e..f71359d 100644
> --- a/drivers/net/phy/Makefile
> +++ b/drivers/net/phy/Makefile
> @@ -92,3 +92,4 @@ obj-$(CONFIG_STE10XP)		+= ste10Xp.o
>  obj-$(CONFIG_TERANETICS_PHY)	+= teranetics.o
>  obj-$(CONFIG_VITESSE_PHY)	+= vitesse.o
>  obj-$(CONFIG_XILINX_GMII2RGMII) += xilinx_gmii2rgmii.o
> +obj-$(CONFIG_XILINX_PHY)	+= xilinx_phy.o
> diff --git a/drivers/net/phy/xilinx_phy.c b/drivers/net/phy/xilinx_phy.c
> new file mode 100644
> index 0000000..2d468c7
> --- /dev/null
> +++ b/drivers/net/phy/xilinx_phy.c
> @@ -0,0 +1,60 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/* Xilinx PCS/PMA Core phy driver
> + *
> + * Copyright (C) 2019 SED Systems, a division of Calian Ltd.
> + *
> + * Based upon Xilinx version of this driver:
> + * Copyright (C) 2015 Xilinx, Inc.
> + *
> + * Description:
> + * This driver is developed for PCS/PMA Core.
> + */
> +
> +#include <linux/kernel.h>
> +#include <linux/module.h>
> +#include <linux/mii.h>
> +#include <linux/phy.h>
> +
> +/* Mask used for ID comparisons */
> +#define XILINX_PHY_ID_MASK		0xfffffff0
> +
> +/* Known PHY IDs */
> +#define XILINX_PHY_ID			0x01740c00
> +
> +#define XPCSPMA_PHY_CTRL_ISOLATE_DISABLE 0xFBFF
> +
> +static int xilinxphy_config_init(struct phy_device *phydev)
> +{
> +	int temp;
> +
> +	temp = phy_read(phydev, MII_BMCR);
> +	temp &= XPCSPMA_PHY_CTRL_ISOLATE_DISABLE;
> +	phy_write(phydev, MII_BMCR, temp);

The PHY library takes care of clearing the BMCR_ISOLATE bit, is not that
working for you?
-- 
Florian

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

* Re: [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal
  2019-05-31 20:54   ` Andrew Lunn
@ 2019-05-31 21:26     ` Heiner Kallweit
  2019-06-01  3:22       ` hancock
  0 siblings, 1 reply; 8+ messages in thread
From: Heiner Kallweit @ 2019-05-31 21:26 UTC (permalink / raw)
  To: Andrew Lunn, Robert Hancock; +Cc: netdev, Florian Fainelli

On 31.05.2019 22:54, Andrew Lunn wrote:
> Robert
> 
> Please make sure you Cc: PHY patches to the PHY maintainers.
> 
> Heiner, this one is for you.
> 
> 	Andrew
> 
> On Fri, May 31, 2019 at 01:15:50PM -0600, Robert Hancock wrote:
>> It is possible that scheduled work started by the PHY driver is still
>> outstanding when phy_device_remove is called if the PHY was initially
>> started but never connected, and therefore phy_disconnect is never
>> called. phy_stop does not guarantee that the scheduled work is stopped
>> because it is called under rtnl_lock. This can cause an oops due to
>> use-after-free if the delayed work fires after freeing the PHY device.
>>
The patch itself at least shouldn't do any harm. However the justification
isn't fully convincing yet.
PHY drivers don't start any scheduled work. This queue is used by the
phylib state machine. phy_stop usually isn't called under rtnl_lock,
and it calls phy_stop_machine that cancels pending work.
Did you experience such an oops? Can you provide a call chain where
your described scenario could happen?

>> Ensure that the state_queue work is cancelled in both phy_device_remove
>> and phy_remove paths.
>>
>> Signed-off-by: Robert Hancock <hancock@sedsystems.ca>
>> ---
>>  drivers/net/phy/phy_device.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
>> index 2c879ba..1c90b33 100644
>> --- a/drivers/net/phy/phy_device.c
>> +++ b/drivers/net/phy/phy_device.c
>> @@ -877,6 +877,8 @@ int phy_device_register(struct phy_device *phydev)
>>   */
>>  void phy_device_remove(struct phy_device *phydev)
>>  {
>> +	cancel_delayed_work_sync(&phydev->state_queue);
>> +
>>  	device_del(&phydev->mdio.dev);
>>  
>>  	/* Assert the reset signal */
>> -- 
>> 1.8.3.1
>>
> 


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

* Re: [PATCH net-next] net: phy: Ensure scheduled work is cancelled  during removal
  2019-05-31 21:26     ` Heiner Kallweit
@ 2019-06-01  3:22       ` hancock
  2019-06-01 15:46         ` Andrew Lunn
  0 siblings, 1 reply; 8+ messages in thread
From: hancock @ 2019-06-01  3:22 UTC (permalink / raw)
  To: Heiner Kallweit; +Cc: Andrew Lunn, Robert Hancock, netdev, Florian Fainelli

> On 31.05.2019 22:54, Andrew Lunn wrote:
>>> It is possible that scheduled work started by the PHY driver is still
>>> outstanding when phy_device_remove is called if the PHY was initially
>>> started but never connected, and therefore phy_disconnect is never
>>> called. phy_stop does not guarantee that the scheduled work is stopped
>>> because it is called under rtnl_lock. This can cause an oops due to
>>> use-after-free if the delayed work fires after freeing the PHY device.
>>>
> The patch itself at least shouldn't do any harm. However the justification
> isn't fully convincing yet.
> PHY drivers don't start any scheduled work. This queue is used by the
> phylib state machine. phy_stop usually isn't called under rtnl_lock,
> and it calls phy_stop_machine that cancels pending work.
> Did you experience such an oops? Can you provide a call chain where
> your described scenario could happen?

Upon further investigation, it appears that this change is no longer
needed in the mainline. Previously (such as in 4.19 kernels as we are
using), phy_stop did not call phy_stop_machine, only phy_disconnect did,
so if the phy was started but never connected and disconnected before
stopping it, the delayed work was not stopped. That sequence didn't occur
often, but could happen in some failure cases which I believe was what I
ran into during development when this change was originally made.

It looks like this was fixed in commit
cbfd12b3e8c3542e8142aa041714ed614d3f67b0 "net: phy: ensure phylib state
machine is stopped after calling phy_stop". So my patch can be dropped -
but maybe that patch should be added to stable?


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

* Re: [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal
  2019-06-01  3:22       ` hancock
@ 2019-06-01 15:46         ` Andrew Lunn
  0 siblings, 0 replies; 8+ messages in thread
From: Andrew Lunn @ 2019-06-01 15:46 UTC (permalink / raw)
  To: hancock; +Cc: Heiner Kallweit, netdev, Florian Fainelli

On Fri, May 31, 2019 at 09:22:16PM -0600, hancock@sedsystems.ca wrote:
> > On 31.05.2019 22:54, Andrew Lunn wrote:
> >>> It is possible that scheduled work started by the PHY driver is still
> >>> outstanding when phy_device_remove is called if the PHY was initially
> >>> started but never connected, and therefore phy_disconnect is never
> >>> called. phy_stop does not guarantee that the scheduled work is stopped
> >>> because it is called under rtnl_lock. This can cause an oops due to
> >>> use-after-free if the delayed work fires after freeing the PHY device.
> >>>
> > The patch itself at least shouldn't do any harm. However the justification
> > isn't fully convincing yet.
> > PHY drivers don't start any scheduled work. This queue is used by the
> > phylib state machine. phy_stop usually isn't called under rtnl_lock,
> > and it calls phy_stop_machine that cancels pending work.
> > Did you experience such an oops? Can you provide a call chain where
> > your described scenario could happen?
> 
> Upon further investigation, it appears that this change is no longer
> needed in the mainline. Previously (such as in 4.19 kernels as we are
> using),

Hi Robert

Please do all your testing on net-next. 4.19 is dead, in terms of
development. There is no point in developing and testing on it patches
intended for mainline.

     Andrew

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

end of thread, other threads:[~2019-06-01 15:46 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-31 19:15 [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver Robert Hancock
2019-05-31 19:15 ` [PATCH net-next] net: phy: Ensure scheduled work is cancelled during removal Robert Hancock
2019-05-31 20:54   ` Andrew Lunn
2019-05-31 21:26     ` Heiner Kallweit
2019-06-01  3:22       ` hancock
2019-06-01 15:46         ` Andrew Lunn
2019-05-31 20:52 ` [PATCH net-next] net: phy: xilinx: add Xilinx PHY driver Andrew Lunn
2019-05-31 21:11 ` Florian Fainelli

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.