Message ID | 20241016040822.3917-1-peter@rashleigh.ca (mailing list archive) |
---|---|
State | Accepted |
Commit | 12bc14949c4a7272b509af0f1022a0deeb215fd8 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [RESEND,net] net: dsa: mv88e6xxx: Fix error when setting port policy on mv88e6393x | expand |
On Tue, Oct 15, 2024 at 09:08:22PM -0700, Peter Rashleigh wrote: > mv88e6393x_port_set_policy doesn't correctly shift the ptr value when > converting the policy format between the old and new styles, so the > target register ends up with the ptr being written over the data bits. > > Shift the pointer to align with the format expected by > mv88e6393x_port_policy_write(). > > Fixes: 6584b26020fc ("net: dsa: mv88e6xxx: implement .port_set_policy for Amethyst") > Signed-off-by: Peter Rashleigh <peter@rashleigh.ca> Thanks, I agree with your analysis. And that the problem was introduced by the cited commit. Reviewed-by: Simon Horman <horms@kernel.org> ...
Hello: This patch was applied to netdev/net.git (main) by Andrew Lunn <andrew@lunn.ch>: On Tue, 15 Oct 2024 21:08:22 -0700 you wrote: > mv88e6393x_port_set_policy doesn't correctly shift the ptr value when > converting the policy format between the old and new styles, so the > target register ends up with the ptr being written over the data bits. > > Shift the pointer to align with the format expected by > mv88e6393x_port_policy_write(). > > [...] Here is the summary with links: - [RESEND,net] net: dsa: mv88e6xxx: Fix error when setting port policy on mv88e6393x https://git.kernel.org/netdev/net/c/12bc14949c4a You are awesome, thank you!
diff --git a/drivers/net/dsa/mv88e6xxx/port.c b/drivers/net/dsa/mv88e6xxx/port.c index 5394a8cf7bf1..04053fdc6489 100644 --- a/drivers/net/dsa/mv88e6xxx/port.c +++ b/drivers/net/dsa/mv88e6xxx/port.c @@ -1713,6 +1713,7 @@ int mv88e6393x_port_set_policy(struct mv88e6xxx_chip *chip, int port, ptr = shift / 8; shift %= 8; mask >>= ptr * 8; + ptr <<= 8; err = mv88e6393x_port_policy_read(chip, port, ptr, ®); if (err)
mv88e6393x_port_set_policy doesn't correctly shift the ptr value when converting the policy format between the old and new styles, so the target register ends up with the ptr being written over the data bits. Shift the pointer to align with the format expected by mv88e6393x_port_policy_write(). Fixes: 6584b26020fc ("net: dsa: mv88e6xxx: implement .port_set_policy for Amethyst") Signed-off-by: Peter Rashleigh <peter@rashleigh.ca> --- drivers/net/dsa/mv88e6xxx/port.c | 1 + 1 file changed, 1 insertion(+)