netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net] net: dsa: microchip: set the correct number of ports
@ 2020-07-02  9:44 Codrin Ciubotariu
  2020-07-02 13:50 ` Andrew Lunn
  2020-07-02 21:27 ` David Miller
  0 siblings, 2 replies; 4+ messages in thread
From: Codrin Ciubotariu @ 2020-07-02  9:44 UTC (permalink / raw)
  To: netdev, linux-kernel
  Cc: woojung.huh, UNGLinuxDriver, andrew, vivien.didelot, f.fainelli,
	davem, kuba, Codrin Ciubotariu

The number of ports is incorrectly set to the maximum available for a DSA
switch. Even if the extra ports are not used, this causes some functions
to be called later, like port_disable() and port_stp_state_set(). If the
driver doesn't check the port index, it will end up modifying unknown
registers.

Fixes: b987e98e50ab ("dsa: add DSA switch driver for Microchip KSZ9477")
Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
---
 drivers/net/dsa/microchip/ksz8795.c | 3 +++
 drivers/net/dsa/microchip/ksz9477.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c
index 47d65b77caf7..7c17b0f705ec 100644
--- a/drivers/net/dsa/microchip/ksz8795.c
+++ b/drivers/net/dsa/microchip/ksz8795.c
@@ -1268,6 +1268,9 @@ static int ksz8795_switch_init(struct ksz_device *dev)
 			return -ENOMEM;
 	}
 
+	/* set the real number of ports */
+	dev->ds->num_ports = dev->port_cnt;
+
 	return 0;
 }
 
diff --git a/drivers/net/dsa/microchip/ksz9477.c b/drivers/net/dsa/microchip/ksz9477.c
index 9a51b8a4de5d..8d15c3016024 100644
--- a/drivers/net/dsa/microchip/ksz9477.c
+++ b/drivers/net/dsa/microchip/ksz9477.c
@@ -1588,6 +1588,9 @@ static int ksz9477_switch_init(struct ksz_device *dev)
 			return -ENOMEM;
 	}
 
+	/* set the real number of ports */
+	dev->ds->num_ports = dev->port_cnt;
+
 	return 0;
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH net] net: dsa: microchip: set the correct number of ports
  2020-07-02  9:44 [PATCH net] net: dsa: microchip: set the correct number of ports Codrin Ciubotariu
@ 2020-07-02 13:50 ` Andrew Lunn
  2020-07-02 15:16   ` Codrin.Ciubotariu
  2020-07-02 21:27 ` David Miller
  1 sibling, 1 reply; 4+ messages in thread
From: Andrew Lunn @ 2020-07-02 13:50 UTC (permalink / raw)
  To: Codrin Ciubotariu
  Cc: netdev, linux-kernel, woojung.huh, UNGLinuxDriver, vivien.didelot,
	f.fainelli, davem, kuba

On Thu, Jul 02, 2020 at 12:44:50PM +0300, Codrin Ciubotariu wrote:
> The number of ports is incorrectly set to the maximum available for a DSA
> switch. Even if the extra ports are not used, this causes some functions
> to be called later, like port_disable() and port_stp_state_set(). If the
> driver doesn't check the port index, it will end up modifying unknown
> registers.
> 
> Fixes: b987e98e50ab ("dsa: add DSA switch driver for Microchip KSZ9477")
> Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

Thanks for the minimum patch.

If you wait about a week, net will get merged into net-next. You can
then submit a refactoring patch based on your previous version.

    Andrew

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net] net: dsa: microchip: set the correct number of ports
  2020-07-02 13:50 ` Andrew Lunn
@ 2020-07-02 15:16   ` Codrin.Ciubotariu
  0 siblings, 0 replies; 4+ messages in thread
From: Codrin.Ciubotariu @ 2020-07-02 15:16 UTC (permalink / raw)
  To: andrew
  Cc: netdev, linux-kernel, Woojung.Huh, UNGLinuxDriver, vivien.didelot,
	f.fainelli, davem, kuba

On 02.07.2020 16:50, Andrew Lunn wrote:
> EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
> 
> On Thu, Jul 02, 2020 at 12:44:50PM +0300, Codrin Ciubotariu wrote:
>> The number of ports is incorrectly set to the maximum available for a DSA
>> switch. Even if the extra ports are not used, this causes some functions
>> to be called later, like port_disable() and port_stp_state_set(). If the
>> driver doesn't check the port index, it will end up modifying unknown
>> registers.
>>
>> Fixes: b987e98e50ab ("dsa: add DSA switch driver for Microchip KSZ9477")
>> Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
> 
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> 
> Thanks for the minimum patch.
> 
> If you wait about a week, net will get merged into net-next. You can
> then submit a refactoring patch based on your previous version.
> 
>      Andrew
> 


Sure thing. This small version does the job, so I will see about the 
refactoring, maybe I will group it with something else...

Thank you for your review!

Best regards,
Codrin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH net] net: dsa: microchip: set the correct number of ports
  2020-07-02  9:44 [PATCH net] net: dsa: microchip: set the correct number of ports Codrin Ciubotariu
  2020-07-02 13:50 ` Andrew Lunn
@ 2020-07-02 21:27 ` David Miller
  1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2020-07-02 21:27 UTC (permalink / raw)
  To: codrin.ciubotariu
  Cc: netdev, linux-kernel, woojung.huh, UNGLinuxDriver, andrew,
	vivien.didelot, f.fainelli, kuba

From: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>
Date: Thu, 2 Jul 2020 12:44:50 +0300

> The number of ports is incorrectly set to the maximum available for a DSA
> switch. Even if the extra ports are not used, this causes some functions
> to be called later, like port_disable() and port_stp_state_set(). If the
> driver doesn't check the port index, it will end up modifying unknown
> registers.
> 
> Fixes: b987e98e50ab ("dsa: add DSA switch driver for Microchip KSZ9477")
> Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@microchip.com>

Applied and queued up for -stable, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-07-02 21:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-07-02  9:44 [PATCH net] net: dsa: microchip: set the correct number of ports Codrin Ciubotariu
2020-07-02 13:50 ` Andrew Lunn
2020-07-02 15:16   ` Codrin.Ciubotariu
2020-07-02 21:27 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).