<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/dsa/hirschmann, branch linux-5.17.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.17.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.17.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2021-12-15T02:46:29Z</updated>
<entry>
<title>net: dsa: hellcreek: Add missing PTP via UDP rules</title>
<updated>2021-12-15T02:46:29Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6cf01e451599da630ff1af529d61c5e4db4550ab'/>
<id>urn:sha1:6cf01e451599da630ff1af529d61c5e4db4550ab</id>
<content type='text'>
The switch supports PTP for UDP transport too. Therefore, add the missing static
FDB entries to ensure correct forwarding of these packets.

Fixes: ddd56dfe52c9 ("net: dsa: hellcreek: Add PTP clock support")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports</title>
<updated>2021-12-15T02:46:28Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cad1798d2d0811ded37d1e946c6796102e58013b'/>
<id>urn:sha1:cad1798d2d0811ded37d1e946c6796102e58013b</id>
<content type='text'>
Allow PTP peer delay measurements on blocked ports by STP. In case of topology
changes the PTP stack can directly start with the correct delays.

Fixes: ddd56dfe52c9 ("net: dsa: hellcreek: Add PTP clock support")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Add STP forwarding rule</title>
<updated>2021-12-15T02:46:28Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b7ade35eb53a2455f737a623c24e4b24455b2271'/>
<id>urn:sha1:b7ade35eb53a2455f737a623c24e4b24455b2271</id>
<content type='text'>
Treat STP as management traffic. STP traffic is designated for the CPU port
only. In addition, STP traffic has to pass blocked ports.

Fixes: e4b27ebc780f ("net: dsa: Add DSA driver for Hirschmann Hellcreek switches")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: Fix insertion of static FDB entries</title>
<updated>2021-12-15T02:46:28Z</updated>
<author>
<name>Kurt Kanzenbach</name>
</author>
<published>2021-12-14T13:45:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4db4c3ea56978086ca367a355e440de17d534827'/>
<id>urn:sha1:4db4c3ea56978086ca367a355e440de17d534827</id>
<content type='text'>
The insertion of static FDB entries ignores the pass_blocked bit. That bit is
evaluated with regards to STP. Add the missing functionality.

Fixes: e4b27ebc780f ("net: dsa: Add DSA driver for Hirschmann Hellcreek switches")
Signed-off-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Acked-by: Richard Cochran &lt;richardcochran@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net_tstamp: add new flag HWTSTAMP_FLAG_BONDED_PHC_INDEX</title>
<updated>2021-12-14T12:28:24Z</updated>
<author>
<name>Hangbin Liu</name>
</author>
<published>2021-12-10T08:59:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c9211a3fc7aa41b2952765b62000443b3bb6f23'/>
<id>urn:sha1:9c9211a3fc7aa41b2952765b62000443b3bb6f23</id>
<content type='text'>
Since commit 94dd016ae538 ("bond: pass get_ts_info and SIOC[SG]HWTSTAMP
ioctl to active device") the user could get bond active interface's
PHC index directly. But when there is a failover, the bond active
interface will change, thus the PHC index is also changed. This may
break the user's program if they did not update the PHC timely.

This patch adds a new hwtstamp_config flag HWTSTAMP_FLAG_BONDED_PHC_INDEX.
When the user wants to get the bond active interface's PHC, they need to
add this flag and be aware the PHC index may be changed.

With the new flag. All flag checks in current drivers are removed. Only
the checking in net_hwtstamp_validate() is kept.

Suggested-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Hangbin Liu &lt;liuhangbin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: dsa: add a "tx_fwd_offload" argument to -&gt;port_bridge_join</title>
<updated>2021-12-08T22:31:16Z</updated>
<author>
<name>Vladimir Oltean</name>
</author>
<published>2021-12-06T16:57:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b079922ba2acf072b23d82fa246a0d8de198f0a2'/>
<id>urn:sha1:b079922ba2acf072b23d82fa246a0d8de198f0a2</id>
<content type='text'>
This is a preparation patch for the removal of the DSA switch methods
-&gt;port_bridge_tx_fwd_offload() and -&gt;port_bridge_tx_fwd_unoffload().
The plan is for the switch to report whether it offloads TX forwarding
directly as a response to the -&gt;port_bridge_join() method.

This change deals with the noisy portion of converting all existing
function prototypes to take this new boolean pointer argument.
The bool is placed in the cross-chip notifier structure for bridge join,
and a reference to it is provided to drivers. In the next change, DSA
will then actually look at this value instead of calling
-&gt;port_bridge_tx_fwd_offload().

Signed-off-by: Vladimir Oltean &lt;vladimir.oltean@nxp.com&gt;
Reviewed-by: Alvin Šipraga &lt;alsi@bang-olufsen.dk&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: keep the bridge_dev and bridge_num as part of the same structure</title>
<updated>2021-12-08T22:31:16Z</updated>
<author>
<name>Vladimir Oltean</name>
</author>
<published>2021-12-06T16:57:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d3eed0e57d5d1bcbf1bd60f83a4adfe7d7b8dd9c'/>
<id>urn:sha1:d3eed0e57d5d1bcbf1bd60f83a4adfe7d7b8dd9c</id>
<content type='text'>
The main desire behind this is to provide coherent bridge information to
the fast path without locking.

For example, right now we set dp-&gt;bridge_dev and dp-&gt;bridge_num from
separate code paths, it is theoretically possible for a packet
transmission to read these two port properties consecutively and find a
bridge number which does not correspond with the bridge device.

Another desire is to start passing more complex bridge information to
dsa_switch_ops functions. For example, with FDB isolation, it is
expected that drivers will need to be passed the bridge which requested
an FDB/MDB entry to be offloaded, and along with that bridge_dev, the
associated bridge_num should be passed too, in case the driver might
want to implement an isolation scheme based on that number.

We already pass the {bridge_dev, bridge_num} pair to the TX forwarding
offload switch API, however we'd like to remove that and squash it into
the basic bridge join/leave API. So that means we need to pass this
pair to the bridge join/leave API.

During dsa_port_bridge_leave, first we unset dp-&gt;bridge_dev, then we
call the driver's .port_bridge_leave with what used to be our
dp-&gt;bridge_dev, but provided as an argument.

When bridge_dev and bridge_num get folded into a single structure, we
need to preserve this behavior in dsa_port_bridge_leave: we need a copy
of what used to be in dp-&gt;bridge.

Switch drivers check bridge membership by comparing dp-&gt;bridge_dev with
the provided bridge_dev, but now, if we provide the struct dsa_bridge as
a pointer, they cannot keep comparing dp-&gt;bridge to the provided
pointer, since this only points to an on-stack copy. To make this
obvious and prevent driver writers from forgetting and doing stupid
things, in this new API, the struct dsa_bridge is provided as a full
structure (not very large, contains an int and a pointer) instead of a
pointer. An explicit comparison function needs to be used to determine
bridge membership: dsa_port_offloads_bridge().

Signed-off-by: Vladimir Oltean &lt;vladimir.oltean@nxp.com&gt;
Reviewed-by: Alvin Šipraga &lt;alsi@bang-olufsen.dk&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: convert to phylink_generic_validate()</title>
<updated>2021-12-02T02:58:00Z</updated>
<author>
<name>Russell King (Oracle)</name>
</author>
<published>2021-11-30T13:10:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1c9e7fd2a579c7c3288264f6e90b9c0a3388dbf9'/>
<id>urn:sha1:1c9e7fd2a579c7c3288264f6e90b9c0a3388dbf9</id>
<content type='text'>
Populate the supported interfaces and MAC capabilities for the
hellcreek DSA switch and remove the old validate implementation to
allow DSA to use phylink_generic_validate() for this switch driver.

The switch actually only supports MII and RGMII, but as phylib defaults
to GMII, we need to include this interface mode to keep existing DT
working.

Reviewed-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Tested-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Signed-off-by: Russell King (Oracle) &lt;rmk+kernel@armlinux.org.uk&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: convert users of bitmap_foo() to linkmode_foo()</title>
<updated>2021-10-24T12:58:52Z</updated>
<author>
<name>Sean Anderson</name>
</author>
<published>2021-10-22T22:41:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4973056cceacc70966396039fae99867dfafd796'/>
<id>urn:sha1:4973056cceacc70966396039fae99867dfafd796</id>
<content type='text'>
This converts instances of
	bitmap_foo(args..., __ETHTOOL_LINK_MODE_MASK_NBITS)
to
	linkmode_foo(args...)

I manually fixed up some lines to prevent them from being excessively
long. Otherwise, this change was generated with the following semantic
patch:

// Generated with
// echo linux/linkmode.h &gt; includes
// git grep -Flf includes include/ | cut -f 2- -d / | cat includes - \
// | sort | uniq | tee new_includes | wc -l &amp;&amp; mv new_includes includes
// and repeating until the number stopped going up
@i@
@@

(
 #include &lt;linux/acpi_mdio.h&gt;
|
 #include &lt;linux/brcmphy.h&gt;
|
 #include &lt;linux/dsa/loop.h&gt;
|
 #include &lt;linux/dsa/sja1105.h&gt;
|
 #include &lt;linux/ethtool.h&gt;
|
 #include &lt;linux/ethtool_netlink.h&gt;
|
 #include &lt;linux/fec.h&gt;
|
 #include &lt;linux/fs_enet_pd.h&gt;
|
 #include &lt;linux/fsl/enetc_mdio.h&gt;
|
 #include &lt;linux/fwnode_mdio.h&gt;
|
 #include &lt;linux/linkmode.h&gt;
|
 #include &lt;linux/lsm_audit.h&gt;
|
 #include &lt;linux/mdio-bitbang.h&gt;
|
 #include &lt;linux/mdio.h&gt;
|
 #include &lt;linux/mdio-mux.h&gt;
|
 #include &lt;linux/mii.h&gt;
|
 #include &lt;linux/mii_timestamper.h&gt;
|
 #include &lt;linux/mlx5/accel.h&gt;
|
 #include &lt;linux/mlx5/cq.h&gt;
|
 #include &lt;linux/mlx5/device.h&gt;
|
 #include &lt;linux/mlx5/driver.h&gt;
|
 #include &lt;linux/mlx5/eswitch.h&gt;
|
 #include &lt;linux/mlx5/fs.h&gt;
|
 #include &lt;linux/mlx5/port.h&gt;
|
 #include &lt;linux/mlx5/qp.h&gt;
|
 #include &lt;linux/mlx5/rsc_dump.h&gt;
|
 #include &lt;linux/mlx5/transobj.h&gt;
|
 #include &lt;linux/mlx5/vport.h&gt;
|
 #include &lt;linux/of_mdio.h&gt;
|
 #include &lt;linux/of_net.h&gt;
|
 #include &lt;linux/pcs-lynx.h&gt;
|
 #include &lt;linux/pcs/pcs-xpcs.h&gt;
|
 #include &lt;linux/phy.h&gt;
|
 #include &lt;linux/phy_led_triggers.h&gt;
|
 #include &lt;linux/phylink.h&gt;
|
 #include &lt;linux/platform_data/bcmgenet.h&gt;
|
 #include &lt;linux/platform_data/xilinx-ll-temac.h&gt;
|
 #include &lt;linux/pxa168_eth.h&gt;
|
 #include &lt;linux/qed/qed_eth_if.h&gt;
|
 #include &lt;linux/qed/qed_fcoe_if.h&gt;
|
 #include &lt;linux/qed/qed_if.h&gt;
|
 #include &lt;linux/qed/qed_iov_if.h&gt;
|
 #include &lt;linux/qed/qed_iscsi_if.h&gt;
|
 #include &lt;linux/qed/qed_ll2_if.h&gt;
|
 #include &lt;linux/qed/qed_nvmetcp_if.h&gt;
|
 #include &lt;linux/qed/qed_rdma_if.h&gt;
|
 #include &lt;linux/sfp.h&gt;
|
 #include &lt;linux/sh_eth.h&gt;
|
 #include &lt;linux/smsc911x.h&gt;
|
 #include &lt;linux/soc/nxp/lpc32xx-misc.h&gt;
|
 #include &lt;linux/stmmac.h&gt;
|
 #include &lt;linux/sunrpc/svc_rdma.h&gt;
|
 #include &lt;linux/sxgbe_platform.h&gt;
|
 #include &lt;net/cfg80211.h&gt;
|
 #include &lt;net/dsa.h&gt;
|
 #include &lt;net/mac80211.h&gt;
|
 #include &lt;net/selftests.h&gt;
|
 #include &lt;rdma/ib_addr.h&gt;
|
 #include &lt;rdma/ib_cache.h&gt;
|
 #include &lt;rdma/ib_cm.h&gt;
|
 #include &lt;rdma/ib_hdrs.h&gt;
|
 #include &lt;rdma/ib_mad.h&gt;
|
 #include &lt;rdma/ib_marshall.h&gt;
|
 #include &lt;rdma/ib_pack.h&gt;
|
 #include &lt;rdma/ib_pma.h&gt;
|
 #include &lt;rdma/ib_sa.h&gt;
|
 #include &lt;rdma/ib_smi.h&gt;
|
 #include &lt;rdma/ib_umem.h&gt;
|
 #include &lt;rdma/ib_umem_odp.h&gt;
|
 #include &lt;rdma/ib_verbs.h&gt;
|
 #include &lt;rdma/iw_cm.h&gt;
|
 #include &lt;rdma/mr_pool.h&gt;
|
 #include &lt;rdma/opa_addr.h&gt;
|
 #include &lt;rdma/opa_port_info.h&gt;
|
 #include &lt;rdma/opa_smi.h&gt;
|
 #include &lt;rdma/opa_vnic.h&gt;
|
 #include &lt;rdma/rdma_cm.h&gt;
|
 #include &lt;rdma/rdma_cm_ib.h&gt;
|
 #include &lt;rdma/rdmavt_cq.h&gt;
|
 #include &lt;rdma/rdma_vt.h&gt;
|
 #include &lt;rdma/rdmavt_qp.h&gt;
|
 #include &lt;rdma/rw.h&gt;
|
 #include &lt;rdma/tid_rdma_defs.h&gt;
|
 #include &lt;rdma/uverbs_ioctl.h&gt;
|
 #include &lt;rdma/uverbs_named_ioctl.h&gt;
|
 #include &lt;rdma/uverbs_std_types.h&gt;
|
 #include &lt;rdma/uverbs_types.h&gt;
|
 #include &lt;soc/mscc/ocelot.h&gt;
|
 #include &lt;soc/mscc/ocelot_ptp.h&gt;
|
 #include &lt;soc/mscc/ocelot_vcap.h&gt;
|
 #include &lt;trace/events/ib_mad.h&gt;
|
 #include &lt;trace/events/rdma_core.h&gt;
|
 #include &lt;trace/events/rdma.h&gt;
|
 #include &lt;trace/events/rpcrdma.h&gt;
|
 #include &lt;uapi/linux/ethtool.h&gt;
|
 #include &lt;uapi/linux/ethtool_netlink.h&gt;
|
 #include &lt;uapi/linux/mdio.h&gt;
|
 #include &lt;uapi/linux/mii.h&gt;
)

@depends on i@
expression list args;
@@

(
- bitmap_zero(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_zero(args)
|
- bitmap_copy(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_copy(args)
|
- bitmap_and(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_and(args)
|
- bitmap_or(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_or(args)
|
- bitmap_empty(args, ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_empty(args)
|
- bitmap_andnot(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_andnot(args)
|
- bitmap_equal(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_equal(args)
|
- bitmap_intersects(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_intersects(args)
|
- bitmap_subset(args, __ETHTOOL_LINK_MODE_MASK_NBITS)
+ linkmode_subset(args)
)

Add missing linux/mii.h include to mellanox. -DaveM

Signed-off-by: Sean Anderson &lt;sean.anderson@seco.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: dsa: hellcreek: be compatible with masters which unregister on shutdown</title>
<updated>2021-09-19T11:08:37Z</updated>
<author>
<name>Vladimir Oltean</name>
</author>
<published>2021-09-17T13:34:34Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=46baae56e1001a771a5d132aa883cb5605013ae2'/>
<id>urn:sha1:46baae56e1001a771a5d132aa883cb5605013ae2</id>
<content type='text'>
Since commit 2f1e8ea726e9 ("net: dsa: link interfaces with the DSA
master to get rid of lockdep warnings"), DSA gained a requirement which
it did not fulfill, which is to unlink itself from the DSA master at
shutdown time.

Since the hellcreek driver was introduced after the bad commit, it has
never worked with DSA masters which decide to unregister their
net_device on shutdown, effectively hanging the reboot process.

Hellcreek is a platform device driver, so we probably cannot have the
oddities of -&gt;shutdown and -&gt;remove getting both called for the exact
same struct device. But to be in line with the pattern from the other
device drivers which are on slow buses, implement the same "if this then
not that" pattern of either running the -&gt;shutdown or the -&gt;remove hook.
The driver's current -&gt;remove implementation makes that very easy
because it already zeroes out its device_drvdata on -&gt;remove.

Fixes: e4b27ebc780f ("net: dsa: Add DSA driver for Hirschmann Hellcreek switches")
Link: https://lore.kernel.org/netdev/20210909095324.12978-1-LinoSanfilippo@gmx.de/
Reported-by: Lino Sanfilippo &lt;LinoSanfilippo@gmx.de&gt;
Signed-off-by: Vladimir Oltean &lt;vladimir.oltean@nxp.com&gt;
Reviewed-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Kurt Kanzenbach &lt;kurt@linutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
