<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c, branch linux-6.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.18.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.18.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2025-10-07T09:53:45Z</updated>
<entry>
<title>net: sparx5/lan969x: fix flooding configuration on bridge join/leave</title>
<updated>2025-10-07T09:53:45Z</updated>
<author>
<name>Daniel Machon</name>
<email>daniel.machon@microchip.com</email>
</author>
<published>2025-10-03T12:35:59Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c9d1b0b54258ba13b567dd116ead3c7c30cba7d8'/>
<id>urn:sha1:c9d1b0b54258ba13b567dd116ead3c7c30cba7d8</id>
<content type='text'>
The sparx5 driver programs UC/MC/BC flooding in sparx5_update_fwd() by
unconditionally applying bridge_fwd_mask to all flood PGIDs. Any bridge
topology change that triggers sparx5_update_fwd() (for example enslaving
another port) therefore reinstalls flooding in hardware for already
bridged ports, regardless of their per-port flood flags.

This results in clobbering of the flood masks, and desynchronization
between software and hardware: the bridge still reports “flood off” for
the port, but hardware has flooding enabled due to unconditional PGID
reprogramming.

Steps to reproduce:

    $ ip link add br0 type bridge
    $ ip link set br0 up
    $ ip link set eth0 master br0
    $ ip link set eth0 up
    $ bridge link set dev eth0 flood off
    $ ip link set eth1 master br0
    $ ip link set eth1 up

At this point, flooding is silently re-enabled for eth0. Software still
shows “flood off” for eth0, but hardware has flooding enabled.

To fix this, flooding is now set explicitly during bridge join/leave,
through sparx5_port_attr_bridge_flags():

    On bridge join, UC/MC/BC flooding is enabled by default.

    On bridge leave, UC/MC/BC flooding is disabled.

    sparx5_update_fwd() no longer touches the flood PGIDs, clobbering
    the flood masks, and desynchronizing software and hardware.

    Initialization of the flooding PGIDs have been moved to
    sparx5_start(). This is required as flooding PGIDs defaults to
    0x3fffffff in hardware and the initialization was previously handled
    in sparx5_update_fwd(), which was removed.

With this change, user-configured flooding flags persist across bridge
updates and are no longer overridden by sparx5_update_fwd().

Fixes: d6fce5141929 ("net: sparx5: add switching support")
Signed-off-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Reviewed-by: Simon Horman &lt;horms@kernel.org&gt;
Link: https://patch.msgid.link/20251003-fix-flood-fwd-v1-1-48eb478b2904@microchip.com
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

</content>
</entry>
<entry>
<title>net: sparx5: redefine internal ports and PGID's as offsets</title>
<updated>2024-10-08T10:07:02Z</updated>
<author>
<name>Daniel Machon</name>
<email>daniel.machon@microchip.com</email>
</author>
<published>2024-10-04T13:19:41Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=8cc4102363c76ed734cf030e6389d423e884edf1'/>
<id>urn:sha1:8cc4102363c76ed734cf030e6389d423e884edf1</id>
<content type='text'>
Internal ports and PGID's are both defined relative to the number of
front ports on Sparx5. This will not work on lan969x. Instead make them
offsets to the number of front ports and add two helpers to retrieve
them. Use the helpers throughout.

Reviewed-by: Steen Hegelund &lt;Steen.Hegelund@microchip.com&gt;
Signed-off-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

</content>
</entry>
<entry>
<title>net: sparx5: use SPX5_CONST for constants which already have a symbol</title>
<updated>2024-10-08T10:07:01Z</updated>
<author>
<name>Daniel Machon</name>
<email>daniel.machon@microchip.com</email>
</author>
<published>2024-10-04T13:19:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=3f9e46347a466a70c422a5790e209d5c7167be48'/>
<id>urn:sha1:3f9e46347a466a70c422a5790e209d5c7167be48</id>
<content type='text'>
Now that we have indentified all the chip constants, update the use of
them where a symbol is already defined for the constant.

Reviewed-by: Steen Hegelund &lt;Steen.Hegelund@microchip.com&gt;
Signed-off-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;

</content>
</entry>
<entry>
<title>net: sparx5: Correct spelling in comments</title>
<updated>2024-04-26T02:13:26Z</updated>
<author>
<name>Simon Horman</name>
<email>horms@kernel.org</email>
</author>
<published>2024-04-24T15:13:26Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=d896a374378a2df373e855111434bbe2b3c521da'/>
<id>urn:sha1:d896a374378a2df373e855111434bbe2b3c521da</id>
<content type='text'>
Correct spelling in comments, as flagged by codespell.

Signed-off-by: Simon Horman &lt;horms@kernel.org&gt;
Reviewed-by: Daniel Machon &lt;daniel.machon@microchip.com&gt;
Link: https://lore.kernel.org/r/20240424-lan743x-confirm-v2-4-f0480542e39f@kernel.org
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: sparx5: add support for mrouter ports</title>
<updated>2022-08-29T11:57:38Z</updated>
<author>
<name>Casper Andersson</name>
<email>casper.casan@gmail.com</email>
</author>
<published>2022-08-25T09:28:37Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=04e551d66dd8822d527c264f1f9f9056c1eb2478'/>
<id>urn:sha1:04e551d66dd8822d527c264f1f9f9056c1eb2478</id>
<content type='text'>
All multicast should be forwarded to mrouter ports. Mrouter ports must
therefore be part of all active multicast groups, and override flooding
from being disabled.

Signed-off-by: Casper Andersson &lt;casper.casan@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sparx5: add list for mdb entries in driver</title>
<updated>2022-08-29T11:57:38Z</updated>
<author>
<name>Casper Andersson</name>
<email>casper.casan@gmail.com</email>
</author>
<published>2022-08-25T09:28:36Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c8a3ea43b5cb5a7db48130a32384f7e48b148de9'/>
<id>urn:sha1:c8a3ea43b5cb5a7db48130a32384f7e48b148de9</id>
<content type='text'>
Keep track of all mdb entries in software for easy access.

Signed-off-by: Casper Andersson &lt;casper.casan@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net</title>
<updated>2022-06-30T23:31:00Z</updated>
<author>
<name>Jakub Kicinski</name>
<email>kuba@kernel.org</email>
</author>
<published>2022-06-30T23:31:00Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=0d8730f07c822a351a624462918c7109cdc7f402'/>
<id>urn:sha1:0d8730f07c822a351a624462918c7109cdc7f402</id>
<content type='text'>
drivers/net/ethernet/microchip/sparx5/sparx5_switchdev.c
  9c5de246c1db ("net: sparx5: mdb add/del handle non-sparx5 devices")
  fbb89d02e33a ("net: sparx5: Allow mdb entries to both CPU and ports")

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: sparx5: mdb add/del handle non-sparx5 devices</title>
<updated>2022-06-30T18:32:54Z</updated>
<author>
<name>Casper Andersson</name>
<email>casper.casan@gmail.com</email>
</author>
<published>2022-06-30T12:22:26Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9c5de246c1dbe785268fc2e83c88624b92e4ec93'/>
<id>urn:sha1:9c5de246c1dbe785268fc2e83c88624b92e4ec93</id>
<content type='text'>
When adding/deleting mdb entries on other net_devices, eg., tap
interfaces, it should not crash.

Fixes: 3bacfccdcb2d ("net: sparx5: Add mdb handlers")
Signed-off-by: Casper Andersson &lt;casper.casan@gmail.com&gt;
Reviewed-by: Steen Hegelund &lt;Steen.Hegelund@microchip.com&gt;
Link: https://lore.kernel.org/r/20220630122226.316812-1-casper.casan@gmail.com
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: sparx5: Allow mdb entries to both CPU and ports</title>
<updated>2022-06-15T12:01:26Z</updated>
<author>
<name>Casper Andersson</name>
<email>casper.casan@gmail.com</email>
</author>
<published>2022-06-14T09:25:32Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=fbb89d02e33a8c8f522d75882f5f19c65b722b46'/>
<id>urn:sha1:fbb89d02e33a8c8f522d75882f5f19c65b722b46</id>
<content type='text'>
Allow mdb entries to be forwarded to CPU and be switched at the same
time. Only remove entry when no port and the CPU isn't part of the group
anymore.

Signed-off-by: Casper Andersson &lt;casper.casan@gmail.com&gt;
Acked-by: Steen Hegelund &lt;Steen.Hegelund@microchip.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: sparx5: Add handling of host MDB entries</title>
<updated>2022-05-05T13:03:45Z</updated>
<author>
<name>Casper Andersson</name>
<email>casper.casan@gmail.com</email>
</author>
<published>2022-05-03T09:39:22Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=1c1ed5a48411e1686997157c21633653fbe045c6'/>
<id>urn:sha1:1c1ed5a48411e1686997157c21633653fbe045c6</id>
<content type='text'>
Handle adding and removing MDB entries for host

Signed-off-by: Casper Andersson &lt;casper.casan@gmail.com&gt;
Link: https://lore.kernel.org/r/20220503093922.1630804-1-casper.casan@gmail.com
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
</feed>
