net: dsa: bcm_sf2: add function finding RGMII register
authorRafał Miłecki <rafal@milecki.pl>
Thu, 18 Mar 2021 08:01:42 +0000 (09:01 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 18 Mar 2021 21:44:05 +0000 (14:44 -0700)
commit55cfeb396965c3906a84d09a9c487d065e37773b
treee72318dec817413f9e0b9b55df20dc8597018c5f
parenta5538a777b73b35750ed1ffff8c1ef539e861624
net: dsa: bcm_sf2: add function finding RGMII register

Simple macro like REG_RGMII_CNTRL_P() is insufficient as:
1. It doesn't validate port argument
2. It doesn't support chipsets with non-lineral RGMII regs layout

Missing port validation could result in getting register offset from out
of array. Random memory -> random offset -> random reads/writes. It
affected e.g. BCM4908 for REG_RGMII_CNTRL_P(7).

Fixes: a78e86ed586d ("net: dsa: bcm_sf2: Prepare for different register layouts")
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/dsa/bcm_sf2.c
drivers/net/dsa/bcm_sf2_regs.h