[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YAdOuvUfa2ZdtaX6@lunn.ch>
Date: Tue, 19 Jan 2021 22:27:22 +0100
From: Andrew Lunn <andrew@...n.ch>
To: Marek Vasut <marex@...x.de>
Cc: netdev@...r.kernel.org, Florian Fainelli <f.fainelli@...il.com>,
Michael Grzeschik <m.grzeschik@...gutronix.de>,
Jakub Kicinski <kuba@...nel.org>
Subject: Re: [PATCH net-next] net: dsa: microchip: ksz8795: Fix KSZ8794 port
map again
On Tue, Jan 19, 2021 at 09:55:18PM +0100, Marek Vasut wrote:
> The KSZ8795 switch has 4 external ports {0,1,2,3} and 1 CPU port {4}, so
> does the KSZ8765. The KSZ8794 seems to be repackaged KSZ8795 with different
> ID and port 3 not routed out, however the port 3 registers are present in
> the silicon, so the KSZ8794 switch has 3 external ports {0,1,2} and 1 CPU
> port {4}. Currently the driver always uses the last port as CPU port, on
> KSZ8795/KSZ8765 that is port 4 and that is OK, but on KSZ8794 that is port
> 3 and that is not OK, as it must also be port 4.
>
> This patch adjusts the driver such that it always registers a switch with
> 5 ports total (4 external ports, 1 CPU port), always sets the CPU port to
> switch port 4, and then configures the external port mask according to
> the switch model -- 3 ports for KSZ8794 and 4 for KSZ8795/KSZ8765.
Hi Marek
What appears to be missing is any checks for somebody trying to use
the 'somewhat non-existent' port.
Assuming all the drivers set dev->port_mask properly, i think you can
add a check to ksz_enable_port() and return -EINVAL if the requested
port is not a member of port_mask.
Andrew
Powered by blists - more mailing lists