net: microchip: sparx5: fix PTP init/deinit not checking all ports
Check all ports instead of just port_count ports. PTP init was only checking ports 0 to port_count. If the hardware ports are not mapped starting from 0 then they would be missed, e.g. if only ports 20-30 were mapped it would attempt to init ports 0-10, resulting in NULL pointers when attempting to timestamp. Now it will init all mapped ports. Fixes: 70dfe25cd866 ("net: sparx5: Update extraction/injection for timestamping") Signed-off-by: Casper Andersson <casper.casan@gmail.com> Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
03702d4d29
commit
d7d94b2612
@ -633,7 +633,7 @@ int sparx5_ptp_init(struct sparx5 *sparx5)
|
||||
/* Enable master counters */
|
||||
spx5_wr(PTP_PTP_DOM_CFG_PTP_ENA_SET(0x7), sparx5, PTP_PTP_DOM_CFG);
|
||||
|
||||
for (i = 0; i < sparx5->port_count; i++) {
|
||||
for (i = 0; i < SPX5_PORTS; i++) {
|
||||
port = sparx5->ports[i];
|
||||
if (!port)
|
||||
continue;
|
||||
@ -649,7 +649,7 @@ void sparx5_ptp_deinit(struct sparx5 *sparx5)
|
||||
struct sparx5_port *port;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < sparx5->port_count; i++) {
|
||||
for (i = 0; i < SPX5_PORTS; i++) {
|
||||
port = sparx5->ports[i];
|
||||
if (!port)
|
||||
continue;
|
||||
|
Loading…
x
Reference in New Issue
Block a user