2022-03-25 12:15:05

by Jakob Koschel

[permalink] [raw]
Subject: [PATCH] taprio: replace usage of found with dedicated list iterator variable

To move the list iterator variable into the list_for_each_entry_*()
macro in the future it should be avoided to use the list iterator
variable after the loop body.

To *never* use the list iterator variable after the loop it was
concluded to use a separate iterator variable instead of a
found boolean [1].

This removes the need to use a found variable and simply checking if
the variable was set, can determine if the break/goto was hit.

Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
Signed-off-by: Jakob Koschel <[email protected]>
---
net/sched/sch_cbs.c | 11 +++++------
net/sched/sch_taprio.c | 11 +++++------
2 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/net/sched/sch_cbs.c b/net/sched/sch_cbs.c
index 459cc240eda9..4ea93a5d46cf 100644
--- a/net/sched/sch_cbs.c
+++ b/net/sched/sch_cbs.c
@@ -333,9 +333,8 @@ static int cbs_dev_notifier(struct notifier_block *nb, unsigned long event,
void *ptr)
{
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
- struct cbs_sched_data *q;
+ struct cbs_sched_data *q = NULL, *iter;
struct net_device *qdev;
- bool found = false;

ASSERT_RTNL();

@@ -343,16 +342,16 @@ static int cbs_dev_notifier(struct notifier_block *nb, unsigned long event,
return NOTIFY_DONE;

spin_lock(&cbs_list_lock);
- list_for_each_entry(q, &cbs_list, cbs_list) {
- qdev = qdisc_dev(q->qdisc);
+ list_for_each_entry(iter, &cbs_list, cbs_list) {
+ qdev = qdisc_dev(iter->qdisc);
if (qdev == dev) {
- found = true;
+ q = iter;
break;
}
}
spin_unlock(&cbs_list_lock);

- if (found)
+ if (q)
cbs_set_port_rate(dev, q);

return NOTIFY_DONE;
diff --git a/net/sched/sch_taprio.c b/net/sched/sch_taprio.c
index 377f896bdedc..9403ae4bf107 100644
--- a/net/sched/sch_taprio.c
+++ b/net/sched/sch_taprio.c
@@ -1096,9 +1096,8 @@ static int taprio_dev_notifier(struct notifier_block *nb, unsigned long event,
void *ptr)
{
struct net_device *dev = netdev_notifier_info_to_dev(ptr);
+ struct taprio_sched *q = NULL, *iter;
struct net_device *qdev;
- struct taprio_sched *q;
- bool found = false;

ASSERT_RTNL();

@@ -1106,16 +1105,16 @@ static int taprio_dev_notifier(struct notifier_block *nb, unsigned long event,
return NOTIFY_DONE;

spin_lock(&taprio_list_lock);
- list_for_each_entry(q, &taprio_list, taprio_list) {
- qdev = qdisc_dev(q->root);
+ list_for_each_entry(iter, &taprio_list, taprio_list) {
+ qdev = qdisc_dev(iter->root);
if (qdev == dev) {
- found = true;
+ q = iter;
break;
}
}
spin_unlock(&taprio_list_lock);

- if (found)
+ if (q)
taprio_set_picos_per_byte(dev, q);

return NOTIFY_DONE;

base-commit: f443e374ae131c168a065ea1748feac6b2e76613
--
2.25.1


2022-03-31 03:17:00

by Vinicius Costa Gomes

[permalink] [raw]
Subject: Re: [PATCH] taprio: replace usage of found with dedicated list iterator variable

Hi,

Jakob Koschel <[email protected]> writes:

> To move the list iterator variable into the list_for_each_entry_*()
> macro in the future it should be avoided to use the list iterator
> variable after the loop body.
>
> To *never* use the list iterator variable after the loop it was
> concluded to use a separate iterator variable instead of a
> found boolean [1].
>
> This removes the need to use a found variable and simply checking if
> the variable was set, can determine if the break/goto was hit.
>
> Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
> Signed-off-by: Jakob Koschel <[email protected]>
> ---

Code wise, patch look good.

Just some commit style/meta comments:
- I think that it would make more sense that these were two separate
patches, but I haven't been following the fallout of the discussion
above to know what other folks are doing;
- Please use '[PATCH net-next]' in the subject prefix of your patch(es)
when you next propose this (net-next is closed for new submissions for
now, it should open again in a few days);


Cheers,
--
Vinicius

2022-03-31 15:36:18

by Jakob Koschel

[permalink] [raw]
Subject: Re: [PATCH] taprio: replace usage of found with dedicated list iterator variable



> On 31. Mar 2022, at 01:15, Vinicius Costa Gomes <[email protected]> wrote:
>
> Hi,
>
> Jakob Koschel <[email protected]> writes:
>
>> To move the list iterator variable into the list_for_each_entry_*()
>> macro in the future it should be avoided to use the list iterator
>> variable after the loop body.
>>
>> To *never* use the list iterator variable after the loop it was
>> concluded to use a separate iterator variable instead of a
>> found boolean [1].
>>
>> This removes the need to use a found variable and simply checking if
>> the variable was set, can determine if the break/goto was hit.
>>
>> Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
>> Signed-off-by: Jakob Koschel <[email protected]>
>> ---
>
> Code wise, patch look good.
>
> Just some commit style/meta comments:
> - I think that it would make more sense that these were two separate
> patches, but I haven't been following the fallout of the discussion
> above to know what other folks are doing;

Thanks for the input, I'll split them up.

> - Please use '[PATCH net-next]' in the subject prefix of your patch(es)
> when you next propose this (net-next is closed for new submissions for
> now, it should open again in a few days);

I'll include that prefix, thanks.

Paolo Abeni [CC'd] suggested to bundle all net-next patches in one series [1].
If that's the general desire I'm happy to do that.


[1] https://lore.kernel.org/linux-kernel/[email protected]/

>
>
> Cheers,
> --
> Vinicius

2022-04-01 14:56:07

by Vinicius Costa Gomes

[permalink] [raw]
Subject: Re: [PATCH] taprio: replace usage of found with dedicated list iterator variable

Jakob Koschel <[email protected]> writes:

>> On 31. Mar 2022, at 01:15, Vinicius Costa Gomes <[email protected]> wrote:
>>
>> Hi,
>>
>> Jakob Koschel <[email protected]> writes:
>>
>>> To move the list iterator variable into the list_for_each_entry_*()
>>> macro in the future it should be avoided to use the list iterator
>>> variable after the loop body.
>>>
>>> To *never* use the list iterator variable after the loop it was
>>> concluded to use a separate iterator variable instead of a
>>> found boolean [1].
>>>
>>> This removes the need to use a found variable and simply checking if
>>> the variable was set, can determine if the break/goto was hit.
>>>
>>> Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
>>> Signed-off-by: Jakob Koschel <[email protected]>
>>> ---
>>
>> Code wise, patch look good.
>>
>> Just some commit style/meta comments:
>> - I think that it would make more sense that these were two separate
>> patches, but I haven't been following the fallout of the discussion
>> above to know what other folks are doing;
>
> Thanks for the input, I'll split them up.
>
>> - Please use '[PATCH net-next]' in the subject prefix of your patch(es)
>> when you next propose this (net-next is closed for new submissions for
>> now, it should open again in a few days);
>
> I'll include that prefix, thanks.
>
> Paolo Abeni [CC'd] suggested to bundle all net-next patches in one series [1].
> If that's the general desire I'm happy to do that.

I agree with that, having one series for the whole net-next is going to
be easier for everyone.


Cheers,
--
Vinicius

2022-04-04 11:39:27

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] taprio: replace usage of found with dedicated list iterator variable

On Sun, 3 Apr 2022 13:53:06 +0200 Jakob Koschel wrote:
> I have all the net-next patches bundled in one series now ready to repost.
> Just wanted to verify that's the intended format since it grew a bit larger
> then what was posted so far.
>
> It's 46 patches changing 51 files across all those files:

Thanks for asking, we have a limit of 15 patches per series to avoid
overloading reviewers. But the patches will likely get merged rather
quickly so it won't be a long wait before you can send another series.

That said:

> drivers/connector/cn_queue.c | 13 ++++++-------
> drivers/net/dsa/mv88e6xxx/chip.c | 21 ++++++++++-----------
> drivers/net/dsa/sja1105/sja1105_vl.c | 14 +++++++++-----

yup, that's net-next

> drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 3 ++-
> drivers/net/ethernet/intel/i40e/i40e_main.c | 24 ++++++++++++++----------
> drivers/net/ethernet/mellanox/mlx4/alloc.c | 29 +++++++++++++++++++----------
> drivers/net/ethernet/mellanox/mlx4/mcg.c | 17 ++++++++---------
> drivers/net/ethernet/mellanox/mlx5/core/eq.c | 10 +++++++---
> drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 12 ++++++------
> drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c | 21 ++++++++++++---------
> drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c | 7 +++++--
> drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c | 12 +++++++++---

i40e and mlx5 patches you may or may not want to post separately
so that Intel and Mellanox can take them via their trees.

> drivers/net/ethernet/microchip/sparx5/sparx5_mactable.c | 25 ++++++++++++-------------
> drivers/net/ethernet/qlogic/qed/qed_dev.c | 11 ++++++-----
> drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 26 ++++++++++++--------------
> drivers/net/ethernet/qlogic/qed/qed_spq.c | 6 +++---
> drivers/net/ethernet/qlogic/qede/qede_filter.c | 11 +++++++----
> drivers/net/ethernet/qlogic/qede/qede_rdma.c | 11 +++++------
> drivers/net/ethernet/sfc/rx_common.c | 6 ++++--
> drivers/net/ethernet/ti/netcp_core.c | 24 ++++++++++++++++--------
> drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 30 +++++++++++++++---------------
> drivers/net/ipvlan/ipvlan_main.c | 7 +++++--
> drivers/net/rionet.c | 14 +++++++-------
> drivers/net/team/team.c | 20 +++++++++++++-------

yup, that's all net-next

> drivers/net/wireless/ath/ath10k/mac.c | 19 ++++++++++---------
> drivers/net/wireless/ath/ath11k/dp_rx.c | 15 +++++++--------
> drivers/net/wireless/ath/ath11k/wmi.c | 11 +++++------
> drivers/net/wireless/ath/ath6kl/htc_mbox.c | 2 +-
> drivers/net/wireless/intel/ipw2x00/libipw_rx.c | 14 ++++++++------

Wireless goes to Kalle and Johannes.

> drivers/rapidio/devices/rio_mport_cdev.c | 42 ++++++++++++++++++++----------------------
> drivers/rapidio/devices/tsi721.c | 13 ++++++-------
> drivers/rapidio/rio.c | 14 +++++++-------
> drivers/rapidio/rio_cm.c | 81 ++++++++++++++++++++++++++++++++++++

That's not networking.

> net/9p/trans_virtio.c | 15 +++++++--------
> net/9p/trans_xen.c | 10 ++++++----

Also not really networking, those go thru other people's trees.

> net/core/devlink.c | 22 +++++++++++++++-------
> net/core/gro.c | 12 ++++++++----
> net/dsa/dsa.c | 11 +++++------

yup, net-next

> net/ieee802154/core.c | 7 +++++--

individual posting for Stefan to take via his tree

> net/ipv4/udp_tunnel_nic.c | 10 ++++++----

yup

> net/mac80211/offchannel.c | 28 ++++++++++++++--------------
> net/mac80211/util.c | 7 +++++--

This is wireless, so Johannes & Kalle.

> net/sched/sch_cbs.c | 11 +++++------
> net/sched/sch_taprio.c | 11 +++++------
> net/smc/smc_ism.c | 14 +++++++-------
> net/tipc/group.c | 12 ++++++++----
> net/tipc/monitor.c | 21 ++++++++++++++-------
> net/tipc/name_table.c | 11 +++++++----
> net/tipc/socket.c | 11 +++++++----

yup

> net/wireless/core.c | 7 +++++--

wireless

> net/xfrm/xfrm_ipcomp.c | 11 +++++++----

IPsec, so Steffen and Herbert, separate posting.

> 51 files changed, 452 insertions(+), 364 deletions(-)

So 21-ish patches for net-next if you group changes for a same driver
/ project into one patch. Two series 10+ patches each?

> Please let me know if I should split it up or if there are certain files that might not fit.
> Otherwise I'll post them beginning of next week.

2022-04-05 01:43:16

by Jakob Koschel

[permalink] [raw]
Subject: Re: [PATCH] taprio: replace usage of found with dedicated list iterator variable

Hi,

> On 31. Mar 2022, at 19:58, Vinicius Costa Gomes <[email protected]> wrote:
>
> Jakob Koschel <[email protected]> writes:
>
>>> On 31. Mar 2022, at 01:15, Vinicius Costa Gomes <[email protected]> wrote:
>>>
>>> Hi,
>>>
>>> Jakob Koschel <[email protected]> writes:
>>>
>>>> To move the list iterator variable into the list_for_each_entry_*()
>>>> macro in the future it should be avoided to use the list iterator
>>>> variable after the loop body.
>>>>
>>>> To *never* use the list iterator variable after the loop it was
>>>> concluded to use a separate iterator variable instead of a
>>>> found boolean [1].
>>>>
>>>> This removes the need to use a found variable and simply checking if
>>>> the variable was set, can determine if the break/goto was hit.
>>>>
>>>> Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/
>>>> Signed-off-by: Jakob Koschel <[email protected]>
>>>> ---
>>>
>>> Code wise, patch look good.
>>>
>>> Just some commit style/meta comments:
>>> - I think that it would make more sense that these were two separate
>>> patches, but I haven't been following the fallout of the discussion
>>> above to know what other folks are doing;
>>
>> Thanks for the input, I'll split them up.
>>
>>> - Please use '[PATCH net-next]' in the subject prefix of your patch(es)
>>> when you next propose this (net-next is closed for new submissions for
>>> now, it should open again in a few days);
>>
>> I'll include that prefix, thanks.
>>
>> Paolo Abeni [CC'd] suggested to bundle all net-next patches in one series [1].
>> If that's the general desire I'm happy to do that.
>
> I agree with that, having one series for the whole net-next is going to
> be easier for everyone.

I have all the net-next patches bundled in one series now ready to repost.
Just wanted to verify that's the intended format since it grew a bit larger
then what was posted so far.

It's 46 patches changing 51 files across all those files:

drivers/connector/cn_queue.c | 13 ++++++-------
drivers/net/dsa/mv88e6xxx/chip.c | 21 ++++++++++-----------
drivers/net/dsa/sja1105/sja1105_vl.c | 14 +++++++++-----
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 3 ++-
drivers/net/ethernet/intel/i40e/i40e_main.c | 24 ++++++++++++++----------
drivers/net/ethernet/mellanox/mlx4/alloc.c | 29 +++++++++++++++++++----------
drivers/net/ethernet/mellanox/mlx4/mcg.c | 17 ++++++++---------
drivers/net/ethernet/mellanox/mlx5/core/eq.c | 10 +++++++---
drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 12 ++++++------
drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c | 21 ++++++++++++---------
drivers/net/ethernet/mellanox/mlxsw/spectrum_fid.c | 7 +++++--
drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c | 12 +++++++++---
drivers/net/ethernet/microchip/sparx5/sparx5_mactable.c | 25 ++++++++++++-------------
drivers/net/ethernet/qlogic/qed/qed_dev.c | 11 ++++++-----
drivers/net/ethernet/qlogic/qed/qed_iwarp.c | 26 ++++++++++++--------------
drivers/net/ethernet/qlogic/qed/qed_spq.c | 6 +++---
drivers/net/ethernet/qlogic/qede/qede_filter.c | 11 +++++++----
drivers/net/ethernet/qlogic/qede/qede_rdma.c | 11 +++++------
drivers/net/ethernet/sfc/rx_common.c | 6 ++++--
drivers/net/ethernet/ti/netcp_core.c | 24 ++++++++++++++++--------
drivers/net/ethernet/toshiba/ps3_gelic_wireless.c | 30 +++++++++++++++---------------
drivers/net/ipvlan/ipvlan_main.c | 7 +++++--
drivers/net/rionet.c | 14 +++++++-------
drivers/net/team/team.c | 20 +++++++++++++-------
drivers/net/wireless/ath/ath10k/mac.c | 19 ++++++++++---------
drivers/net/wireless/ath/ath11k/dp_rx.c | 15 +++++++--------
drivers/net/wireless/ath/ath11k/wmi.c | 11 +++++------
drivers/net/wireless/ath/ath6kl/htc_mbox.c | 2 +-
drivers/net/wireless/intel/ipw2x00/libipw_rx.c | 14 ++++++++------
drivers/rapidio/devices/rio_mport_cdev.c | 42 ++++++++++++++++++++----------------------
drivers/rapidio/devices/tsi721.c | 13 ++++++-------
drivers/rapidio/rio.c | 14 +++++++-------
drivers/rapidio/rio_cm.c | 81 +++++++++++++++++++++++++++++++++++++
net/9p/trans_virtio.c | 15 +++++++--------
net/9p/trans_xen.c | 10 ++++++----
net/core/devlink.c | 22 +++++++++++++++-------
net/core/gro.c | 12 ++++++++----
net/dsa/dsa.c | 11 +++++------
net/ieee802154/core.c | 7 +++++--
net/ipv4/udp_tunnel_nic.c | 10 ++++++----
net/mac80211/offchannel.c | 28 ++++++++++++++--------------
net/mac80211/util.c | 7 +++++--
net/sched/sch_cbs.c | 11 +++++------
net/sched/sch_taprio.c | 11 +++++------
net/smc/smc_ism.c | 14 +++++++-------
net/tipc/group.c | 12 ++++++++----
net/tipc/monitor.c | 21 ++++++++++++++-------
net/tipc/name_table.c | 11 +++++++----
net/tipc/socket.c | 11 +++++++----
net/wireless/core.c | 7 +++++--
net/xfrm/xfrm_ipcomp.c | 11 +++++++----
51 files changed, 452 insertions(+), 364 deletions(-)

Please let me know if I should split it up or if there are certain files that might not fit.
Otherwise I'll post them beginning of next week.

>
>
> Cheers,
> --
> Vinicius

Thanks,
Jakob