diff mbox series

[net] net: microchip: sparx5: fix PTP init/deinit not checking all ports

Message ID 20230203085557.3785002-1-casper.casan@gmail.com (mailing list archive)
State Accepted
Commit d7d94b2612f5dc25d61dc7bf58aafe7b31f40191
Delegated to: Netdev Maintainers
Headers show
Series [net] net: microchip: sparx5: fix PTP init/deinit not checking all ports | expand

Checks

Context Check Description
netdev/tree_selection success Clearly marked for net
netdev/fixes_present success Fixes tag present in non-next series
netdev/subject_prefix success Link
netdev/cover_letter success Single patches do not need cover letters
netdev/patch_count success Link
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/cc_maintainers warning 2 maintainers not CCed: error27@gmail.com linux-arm-kernel@lists.infradead.org
netdev/build_clang success Errors and warnings before: 0 this patch: 0
netdev/module_param success Was 0 now: 0
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 16 lines checked
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Casper Andersson Feb. 3, 2023, 8:55 a.m. UTC
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>
---
 drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Horatiu Vultur Feb. 3, 2023, 9:24 a.m. UTC | #1
The 02/03/2023 09:55, Casper Andersson wrote:

> 
> 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>

> ---
>  drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c b/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c
> index 0ed1ea7727c5..69e76634f9aa 100644
> --- a/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c
> +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c
> @@ -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;
> --
> 2.34.1
>
patchwork-bot+netdevbpf@kernel.org Feb. 6, 2023, 9:30 a.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <davem@davemloft.net>:

On Fri,  3 Feb 2023 09:55:57 +0100 you wrote:
> 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>
> 
> [...]

Here is the summary with links:
  - [net] net: microchip: sparx5: fix PTP init/deinit not checking all ports
    https://git.kernel.org/netdev/net/c/d7d94b2612f5

You are awesome, thank you!
diff mbox series

Patch

diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c b/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c
index 0ed1ea7727c5..69e76634f9aa 100644
--- a/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c
+++ b/drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c
@@ -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;