<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/net/dsa/microchip, branch linux-5.17.y</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>net: dsa: microchip: add spi_device_id tables</title>
<updated>2022-03-14T10:08:08+00:00</updated>
<author>
<name>Claudiu Beznea</name>
<email>claudiu.beznea@microchip.com</email>
</author>
<published>2022-03-11T11:17:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e981bc74aefc6a177b50c16cfa7023599799cf74'/>
<id>e981bc74aefc6a177b50c16cfa7023599799cf74</id>
<content type='text'>
Add spi_device_id tables to avoid logs like "SPI driver ksz9477-switch
has no spi_device_id".

Signed-off-by: Claudiu Beznea &lt;claudiu.beznea@microchip.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add spi_device_id tables to avoid logs like "SPI driver ksz9477-switch
has no spi_device_id".

Signed-off-by: Claudiu Beznea &lt;claudiu.beznea@microchip.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dsa: microchip: fix bridging with more than two member ports</title>
<updated>2022-02-19T16:22:46+00:00</updated>
<author>
<name>Svenning Sørensen</name>
<email>sss@secomea.com</email>
</author>
<published>2022-02-18T11:27:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=3d00827a90db6f79abc7cdc553887f89a2e0a184'/>
<id>3d00827a90db6f79abc7cdc553887f89a2e0a184</id>
<content type='text'>
Commit b3612ccdf284 ("net: dsa: microchip: implement multi-bridge support")
plugged a packet leak between ports that were members of different bridges.
Unfortunately, this broke another use case, namely that of more than two
ports that are members of the same bridge.

After that commit, when a port is added to a bridge, hardware bridging
between other member ports of that bridge will be cleared, preventing
packet exchange between them.

Fix by ensuring that the Port VLAN Membership bitmap includes any existing
ports in the bridge, not just the port being added.

Fixes: b3612ccdf284 ("net: dsa: microchip: implement multi-bridge support")
Signed-off-by: Svenning Sørensen &lt;sss@secomea.com&gt;
Tested-by: Oleksij Rempel &lt;o.rempel@pengutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit b3612ccdf284 ("net: dsa: microchip: implement multi-bridge support")
plugged a packet leak between ports that were members of different bridges.
Unfortunately, this broke another use case, namely that of more than two
ports that are members of the same bridge.

After that commit, when a port is added to a bridge, hardware bridging
between other member ports of that bridge will be cleared, preventing
packet exchange between them.

Fix by ensuring that the Port VLAN Membership bitmap includes any existing
ports in the bridge, not just the port being added.

Fixes: b3612ccdf284 ("net: dsa: microchip: implement multi-bridge support")
Signed-off-by: Svenning Sørensen &lt;sss@secomea.com&gt;
Tested-by: Oleksij Rempel &lt;o.rempel@pengutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next</title>
<updated>2021-12-31T14:35:40+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2021-12-31T14:35:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=e63a02348958cd7cc8c8401c94de57ad97b5d06c'/>
<id>e63a02348958cd7cc8c8401c94de57ad97b5d06c</id>
<content type='text'>
Alexei Starovoitov says:

====================
pull-request: bpf-next 2021-12-30

The following pull-request contains BPF updates for your *net-next* tree.

We've added 72 non-merge commits during the last 20 day(s) which contain
a total of 223 files changed, 3510 insertions(+), 1591 deletions(-).

The main changes are:

1) Automatic setrlimit in libbpf when bpf is memcg's in the kernel, from Andrii.

2) Beautify and de-verbose verifier logs, from Christy.

3) Composable verifier types, from Hao.

4) bpf_strncmp helper, from Hou.

5) bpf.h header dependency cleanup, from Jakub.

6) get_func_[arg|ret|arg_cnt] helpers, from Jiri.

7) Sleepable local storage, from KP.

8) Extend kfunc with PTR_TO_CTX, PTR_TO_MEM argument support, from Kumar.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Alexei Starovoitov says:

====================
pull-request: bpf-next 2021-12-30

The following pull-request contains BPF updates for your *net-next* tree.

We've added 72 non-merge commits during the last 20 day(s) which contain
a total of 223 files changed, 3510 insertions(+), 1591 deletions(-).

The main changes are:

1) Automatic setrlimit in libbpf when bpf is memcg's in the kernel, from Andrii.

2) Beautify and de-verbose verifier logs, from Christy.

3) Composable verifier types, from Hao.

4) bpf_strncmp helper, from Hou.

5) bpf.h header dependency cleanup, from Jakub.

6) get_func_[arg|ret|arg_cnt] helpers, from Jiri.

7) Sleepable local storage, from KP.

8) Extend kfunc with PTR_TO_CTX, PTR_TO_MEM argument support, from Kumar.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Don't include filter.h from net/sock.h</title>
<updated>2021-12-29T16:48:14+00:00</updated>
<author>
<name>Jakub Kicinski</name>
<email>kuba@kernel.org</email>
</author>
<published>2021-12-29T00:49:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b6459415b384cb829f0b2a4268f211c789f6cf0b'/>
<id>b6459415b384cb829f0b2a4268f211c789f6cf0b</id>
<content type='text'>
sock.h is pretty heavily used (5k objects rebuilt on x86 after
it's touched). We can drop the include of filter.h from it and
add a forward declaration of struct sk_filter instead.
This decreases the number of rebuilt objects when bpf.h
is touched from ~5k to ~1k.

There's a lot of missing includes this was masking. Primarily
in networking tho, this time.

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Acked-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Acked-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Nikolay Aleksandrov &lt;nikolay@nvidia.com&gt;
Acked-by: Stefano Garzarella &lt;sgarzare@redhat.com&gt;
Link: https://lore.kernel.org/bpf/20211229004913.513372-1-kuba@kernel.org
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
sock.h is pretty heavily used (5k objects rebuilt on x86 after
it's touched). We can drop the include of filter.h from it and
add a forward declaration of struct sk_filter instead.
This decreases the number of rebuilt objects when bpf.h
is touched from ~5k to ~1k.

There's a lot of missing includes this was masking. Primarily
in networking tho, this time.

Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Signed-off-by: Alexei Starovoitov &lt;ast@kernel.org&gt;
Acked-by: Marc Kleine-Budde &lt;mkl@pengutronix.de&gt;
Acked-by: Florian Fainelli &lt;f.fainelli@gmail.com&gt;
Acked-by: Nikolay Aleksandrov &lt;nikolay@nvidia.com&gt;
Acked-by: Stefano Garzarella &lt;sgarzare@redhat.com&gt;
Link: https://lore.kernel.org/bpf/20211229004913.513372-1-kuba@kernel.org
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dsa: microchip: remove unneeded variable</title>
<updated>2021-12-17T10:20:06+00:00</updated>
<author>
<name>Changcheng Deng</name>
<email>deng.changcheng@zte.com.cn</email>
</author>
<published>2021-12-16T09:13:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=86df8be67f6ca85d14fd469f1d1bcc3eee8f713e'/>
<id>86df8be67f6ca85d14fd469f1d1bcc3eee8f713e</id>
<content type='text'>
Remove unneeded variable used to store return value.

Reported-by: Zeal Robot &lt;zealci@zte.com.cn&gt;
Signed-off-by: Changcheng Deng &lt;deng.changcheng@zte.com.cn&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove unneeded variable used to store return value.

Reported-by: Zeal Robot &lt;zealci@zte.com.cn&gt;
Signed-off-by: Changcheng Deng &lt;deng.changcheng@zte.com.cn&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dsa: add a "tx_fwd_offload" argument to -&gt;port_bridge_join</title>
<updated>2021-12-08T22:31:16+00:00</updated>
<author>
<name>Vladimir Oltean</name>
<email>vladimir.oltean@nxp.com</email>
</author>
<published>2021-12-06T16:57:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b079922ba2acf072b23d82fa246a0d8de198f0a2'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</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:16+00:00</updated>
<author>
<name>Vladimir Oltean</name>
<email>vladimir.oltean@nxp.com</email>
</author>
<published>2021-12-06T16:57:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=d3eed0e57d5d1bcbf1bd60f83a4adfe7d7b8dd9c'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dsa: hide dp-&gt;bridge_dev and dp-&gt;bridge_num in drivers behind helpers</title>
<updated>2021-12-08T22:31:15+00:00</updated>
<author>
<name>Vladimir Oltean</name>
<email>vladimir.oltean@nxp.com</email>
</author>
<published>2021-12-06T16:57:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=41fb0cf1bced59c1fe178cf6cc9f716b5da9e40e'/>
<id>41fb0cf1bced59c1fe178cf6cc9f716b5da9e40e</id>
<content type='text'>
The location of the bridge device pointer and number is going to change.
It is not going to be kept individually per port, but in a common
structure allocated dynamically and which will have lockdep validation.

Use the helpers to access these elements so that we have a migration
path to the new organization.

Signed-off-by: Vladimir Oltean &lt;vladimir.oltean@nxp.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The location of the bridge device pointer and number is going to change.
It is not going to be kept individually per port, but in a common
structure allocated dynamically and which will have lockdep validation.

Use the helpers to access these elements so that we have a migration
path to the new organization.

Signed-off-by: Vladimir Oltean &lt;vladimir.oltean@nxp.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dsa: microchip: implement multi-bridge support</title>
<updated>2021-11-26T20:46:38+00:00</updated>
<author>
<name>Oleksij Rempel</name>
<email>o.rempel@pengutronix.de</email>
</author>
<published>2021-11-26T12:39:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=b3612ccdf2841c64ae7a8dd9e780c91240093fe6'/>
<id>b3612ccdf2841c64ae7a8dd9e780c91240093fe6</id>
<content type='text'>
Current driver version is able to handle only one bridge at time.
Configuring two bridges on two different ports would end up shorting this
bridges by HW. To reproduce it:

	ip l a name br0 type bridge
	ip l a name br1 type bridge
	ip l s dev br0 up
	ip l s dev br1 up
	ip l s lan1 master br0
	ip l s dev lan1 up
	ip l s lan2 master br1
	ip l s dev lan2 up

	Ping on lan1 and get response on lan2, which should not happen.

This happened, because current driver version is storing one global "Port VLAN
Membership" and applying it to all ports which are members of any
bridge.
To solve this issue, we need to handle each port separately.

This patch is dropping the global port member storage and calculating
membership dynamically depending on STP state and bridge participation.

Note: STP support was broken before this patch and should be fixed
separately.

Fixes: c2e866911e25 ("net: dsa: microchip: break KSZ9477 DSA driver into two files")
Signed-off-by: Oleksij Rempel &lt;o.rempel@pengutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Link: https://lore.kernel.org/r/20211126123926.2981028-1-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Current driver version is able to handle only one bridge at time.
Configuring two bridges on two different ports would end up shorting this
bridges by HW. To reproduce it:

	ip l a name br0 type bridge
	ip l a name br1 type bridge
	ip l s dev br0 up
	ip l s dev br1 up
	ip l s lan1 master br0
	ip l s dev lan1 up
	ip l s lan2 master br1
	ip l s dev lan2 up

	Ping on lan1 and get response on lan2, which should not happen.

This happened, because current driver version is storing one global "Port VLAN
Membership" and applying it to all ports which are members of any
bridge.
To solve this issue, we need to handle each port separately.

This patch is dropping the global port member storage and calculating
membership dynamically depending on STP state and bridge participation.

Note: STP support was broken before this patch and should be fixed
separately.

Fixes: c2e866911e25 ("net: dsa: microchip: break KSZ9477 DSA driver into two files")
Signed-off-by: Oleksij Rempel &lt;o.rempel@pengutronix.de&gt;
Reviewed-by: Vladimir Oltean &lt;olteanv@gmail.com&gt;
Link: https://lore.kernel.org/r/20211126123926.2981028-1-o.rempel@pengutronix.de
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: convert users of bitmap_foo() to linkmode_foo()</title>
<updated>2021-10-24T12:58:52+00:00</updated>
<author>
<name>Sean Anderson</name>
<email>sean.anderson@seco.com</email>
</author>
<published>2021-10-22T22:41:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4973056cceacc70966396039fae99867dfafd796'/>
<id>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>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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;
</pre>
</div>
</content>
</entry>
</feed>
