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

From: Russell King (Oracle)
Date: Thu Oct 19 2023 - 14:17:55 EST


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 <o.rempel@xxxxxxxxxxxxxx>
> > ---
> > 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!