Subject: Re: [PATCH net-next v6 5/9] net: dsa: microchip: ksz9477: Add Wake on Magic Packet support

From: "Russell King (Oracle)" <[email-masked]>
Date: Thu, 19 Oct 2023 19:17:32 +0100

On Thu, Oct 19, 2023 at 08:29:53PM +0300, Vladimir Oltean wrote:
> On Thu, Oct 19, 2023 at 02:28:46PM +0200, Oleksij Rempel wrote:
> > Introduce Wake on Magic Packet (WoL) functionality to the ksz9477
> > driver.
> > 
> > Major changes include:
> > 
> > 1. Extending the `ksz9477_handle_wake_reason` function to identify Magic
> >    Packet wake events alongside existing wake reasons.
> > 
> > 2. Updating the `ksz9477_get_wol` and `ksz9477_set_wol` functions to
> >    handle WAKE_MAGIC alongside the existing WAKE_PHY option, and to
> >    program the switch's MAC address register accordingly when Magic
> >    Packet wake-up is enabled. This change will prevent WAKE_MAGIC
> >    activation if the related port has a different MAC address compared
> >    to a MAC address already used by HSR or an already active WAKE_MAGIC
> >    on another port.
> > 
> > 3. Adding a restriction in `ksz_port_set_mac_address` to prevent MAC
> >    address changes on ports with active Wake on Magic Packet, as the
> >    switch's MAC address register is utilized for this feature.
> > 
> > Signed-off-by: Oleksij Rempel <[email-masked]>
> > ---
> >  drivers/net/dsa/microchip/ksz9477.c    | 60 ++++++++++++++++++++++++--
> >  drivers/net/dsa/microchip/ksz_common.c | 15 +++++--
> >  drivers/net/dsa/microchip/ksz_common.h |  3 ++
> >  3 files changed, 71 insertions(+), 7 deletions(-)
> > 
> > diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c
> > index b9419d4b5e7b..bcc8863951ca 100644
> > --- a/drivers/net/dsa/microchip/ksz9477.c
> > +++ b/drivers/net/dsa/microchip/ksz9477.c
> > @@ -81,7 +81,8 @@ static int ksz9477_handle_wake_reason(struct ksz_device *dev, int port)
> >  	if (!pme_status)
> >  		return 0;
> >  
> > -	dev_dbg(dev->dev, "Wake event on port %d due to: %s %s\n", port,
> > +	dev_dbg(dev->dev, "Wake event on port %d due to: %s %s %s\n", port,
> > +		pme_status & PME_WOL_MAGICPKT ? "\"Magic Packet\"" : "",
> >  		pme_status & PME_WOL_LINKUP ? "\"Link Up\"" : "",
> >  		pme_status & PME_WOL_ENERGY ? "\"Enery detect\"" : "");
> 
> Trivial: if you format the printf string as %s%s%s and the arguments as
> "\"Magic Packet\" " : "", then the printed line won't have a trailing
> space at the end.

Sadly, it still will. The best solution is to prepend the space
character to each entry in the "list" and remove the space characters
after the : in the format string thusly:

	dev_dbg(dev->dev, "Wake event on port %d due to:%s%s%s\n", port,
		pme_status & PME_WOL_MAGICPKT ? " \"Magic Packet\"" : "",
		pme_status & PME_WOL_LINKUP ? " \"Link Up\"" : "",
		pme_status & PME_WOL_ENERGY ? " \"Enery detect\"" : "");

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!