[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3f9daa3c-8a16-734b-da7b-e0721ddf992c@gmail.com>
Date: Thu, 27 Aug 2020 10:48:48 +0200
From: Heiner Kallweit <hkallweit1@...il.com>
To: Sascha Hauer <s.hauer@...gutronix.de>, netdev@...r.kernel.org
Cc: Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>, kernel@...gutronix.de
Subject: Re: [PATCHi v2] net: mdiobus: fix device unregistering in
mdiobus_register
On 27.08.2020 09:06, Sascha Hauer wrote:
> After device_register has been called the device structure may not be
> freed anymore, put_device() has to be called instead. This gets violated
> when device_register() or any of the following steps before the mdio
> bus is fully registered fails. In this case the caller will call
> mdiobus_free() which then directly frees the mdio bus structure.
>
> Set bus->state to MDIOBUS_UNREGISTERED right before calling
> device_register(). With this mdiobus_free() calls put_device() instead
> as it ought to be.
>
> Signed-off-by: Sascha Hauer <s.hauer@...gutronix.de>
> ---
>
> Changes since v1:
> - set bus->state before calling device_register(), not afterwards
>
> drivers/net/phy/mdio_bus.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
> index 0af20faad69d..9434b04a11c8 100644
> --- a/drivers/net/phy/mdio_bus.c
> +++ b/drivers/net/phy/mdio_bus.c
> @@ -534,6 +534,8 @@ int __mdiobus_register(struct mii_bus *bus, struct module *owner)
> bus->dev.groups = NULL;
> dev_set_name(&bus->dev, "%s", bus->id);
>
> + bus->state = MDIOBUS_UNREGISTERED;
> +
> err = device_register(&bus->dev);
> if (err) {
> pr_err("mii_bus %s failed to register\n", bus->id);
>
LGTM. Just two points:
1. Subject has a typo (PATCHi). And it should be [PATCH net v2], because it's
something for the stable branch.
2. A "Fixes" tag is needed.
Powered by blists - more mailing lists