2022-05-03 06:08:07

by Kalle Valo

[permalink] [raw]
Subject: [PATCH 1/2] ath11k: mac: fix too long line

From: Kalle Valo <[email protected]>

checkpatch warns:

drivers/net/wireless/ath/ath11k/mac.c:7760: line length of 91 exceeds 90 columns

This was introduced by commit 046d2e7c50e3 ("mac80211: prepare sta handling for
MLO support").

Compile tested only.

Signed-off-by: Kalle Valo <[email protected]>
---
drivers/net/wireless/ath/ath11k/mac.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
index c76cac5d6849..32fb0142124d 100644
--- a/drivers/net/wireless/ath/ath11k/mac.c
+++ b/drivers/net/wireless/ath/ath11k/mac.c
@@ -7735,6 +7735,7 @@ ath11k_mac_validate_vht_he_fixed_rate_settings(struct ath11k *ar, enum nl80211_b
bool he_fixed_rate = false, vht_fixed_rate = false;
struct ath11k_peer *peer, *tmp;
const u16 *vht_mcs_mask, *he_mcs_mask;
+ struct ieee80211_link_sta *deflink;
u8 vht_nss, he_nss;
bool ret = true;

@@ -7757,13 +7758,16 @@ ath11k_mac_validate_vht_he_fixed_rate_settings(struct ath11k *ar, enum nl80211_b
spin_lock_bh(&ar->ab->base_lock);
list_for_each_entry_safe(peer, tmp, &ar->ab->peers, list) {
if (peer->sta) {
- if (vht_fixed_rate && (!peer->sta->deflink.vht_cap.vht_supported ||
- peer->sta->deflink.rx_nss < vht_nss)) {
+ deflink = &peer->sta->deflink;
+
+ if (vht_fixed_rate && (!deflink->vht_cap.vht_supported ||
+ deflink->rx_nss < vht_nss)) {
ret = false;
goto out;
}
- if (he_fixed_rate && (!peer->sta->deflink.he_cap.has_he ||
- peer->sta->deflink.rx_nss < he_nss)) {
+
+ if (he_fixed_rate && (!deflink->he_cap.has_he ||
+ deflink->rx_nss < he_nss)) {
ret = false;
goto out;
}

base-commit: f39af96d352dd4f36a4a43601ea90561e17e5ca6
--
2.30.2


2022-05-04 13:56:25

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] ath11k: mac: fix too long line

Jeff Johnson <[email protected]> writes:

> On 5/2/2022 11:04 PM, Kalle Valo wrote:
>> From: Kalle Valo <[email protected]>
>>
>> checkpatch warns:
>>
>> drivers/net/wireless/ath/ath11k/mac.c:7760: line length of 91 exceeds 90 columns
>>
>> This was introduced by commit 046d2e7c50e3 ("mac80211: prepare sta handling for
>> MLO support").
>>
>> Compile tested only.
>>
>> Signed-off-by: Kalle Valo <[email protected]>
>> ---
>> drivers/net/wireless/ath/ath11k/mac.c | 12 ++++++++----
>> 1 file changed, 8 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
>> index c76cac5d6849..32fb0142124d 100644
>> --- a/drivers/net/wireless/ath/ath11k/mac.c
>> +++ b/drivers/net/wireless/ath/ath11k/mac.c
>> @@ -7735,6 +7735,7 @@ ath11k_mac_validate_vht_he_fixed_rate_settings(struct ath11k *ar, enum nl80211_b
>> bool he_fixed_rate = false, vht_fixed_rate = false;
>> struct ath11k_peer *peer, *tmp;
>> const u16 *vht_mcs_mask, *he_mcs_mask;
>> + struct ieee80211_link_sta *deflink;
>> u8 vht_nss, he_nss;
>> bool ret = true;
>> @@ -7757,13 +7758,16 @@
>> ath11k_mac_validate_vht_he_fixed_rate_settings(struct ath11k *ar,
>> enum nl80211_b
>> spin_lock_bh(&ar->ab->base_lock);
>> list_for_each_entry_safe(peer, tmp, &ar->ab->peers, list) {
>> if (peer->sta) {
>> - if (vht_fixed_rate && (!peer->sta->deflink.vht_cap.vht_supported ||
>> - peer->sta->deflink.rx_nss < vht_nss)) {
>> + deflink = &peer->sta->deflink;
>
>
> is there a reason to not declare deflink here?
> then its scope of definition would equal the scope of usage

In ath10k and ath11k I have tried to avoid that and instead declare all
variables in the beginning of the function, this is to keep the code
simple. Of course there are few cases where a variable is declared in
the middle of the function, but that's just sloppy review on my part. I
feel that it's better to refactor the function into smaller functions
than start declaring variables in the middle of functions. Does that
make sense?

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2022-05-04 17:24:47

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH 1/2] ath11k: mac: fix too long line

On 5/3/2022 10:58 PM, Kalle Valo wrote:
> Jeff Johnson <[email protected]> writes:
pe>> is there a reason to not declare deflink here?
>> then its scope of definition would equal the scope of usage
>
> In ath10k and ath11k I have tried to avoid that and instead declare all
> variables in the beginning of the function, this is to keep the code
> simple. Of course there are few cases where a variable is declared in
> the middle of the function, but that's just sloppy review on my part. I
> feel that it's better to refactor the function into smaller functions
> than start declaring variables in the middle of functions. Does that
> make sense?
>

This is really an academic question.

In the larger kernel community I'm seeing a push to reduce the scope of
identifiers in some cases:
1) declaring loop control variables within the actual loop control operation
2) prohibiting the access to list iterators outside the list iteration loop

From a software engineering perspective limiting scope can prevent some
coding errors by preventing new code from being introduced which tries
to access an identifier which has not been initialized.

To that end, I fully support the guidance to refactor into small
functions where variable scope is not an issue.

Also consistency is extremely important, so I totally embrace having a
consistent approach.

/jeff

2022-05-04 17:29:52

by Jeff Johnson

[permalink] [raw]
Subject: Re: [PATCH 1/2] ath11k: mac: fix too long line

On 5/2/2022 11:04 PM, Kalle Valo wrote:
> From: Kalle Valo <[email protected]>
>
> checkpatch warns:
>
> drivers/net/wireless/ath/ath11k/mac.c:7760: line length of 91 exceeds 90 columns
>
> This was introduced by commit 046d2e7c50e3 ("mac80211: prepare sta handling for
> MLO support").
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>
> ---
> drivers/net/wireless/ath/ath11k/mac.c | 12 ++++++++----
> 1 file changed, 8 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c
> index c76cac5d6849..32fb0142124d 100644
> --- a/drivers/net/wireless/ath/ath11k/mac.c
> +++ b/drivers/net/wireless/ath/ath11k/mac.c
> @@ -7735,6 +7735,7 @@ ath11k_mac_validate_vht_he_fixed_rate_settings(struct ath11k *ar, enum nl80211_b
> bool he_fixed_rate = false, vht_fixed_rate = false;
> struct ath11k_peer *peer, *tmp;
> const u16 *vht_mcs_mask, *he_mcs_mask;
> + struct ieee80211_link_sta *deflink;
> u8 vht_nss, he_nss;
> bool ret = true;
>
> @@ -7757,13 +7758,16 @@ ath11k_mac_validate_vht_he_fixed_rate_settings(struct ath11k *ar, enum nl80211_b
> spin_lock_bh(&ar->ab->base_lock);
> list_for_each_entry_safe(peer, tmp, &ar->ab->peers, list) {
> if (peer->sta) {
> - if (vht_fixed_rate && (!peer->sta->deflink.vht_cap.vht_supported ||
> - peer->sta->deflink.rx_nss < vht_nss)) {
> + deflink = &peer->sta->deflink;


is there a reason to not declare deflink here?
then its scope of definition would equal the scope of usage


> +
> + if (vht_fixed_rate && (!deflink->vht_cap.vht_supported ||
> + deflink->rx_nss < vht_nss)) {
> ret = false;
> goto out;
> }
> - if (he_fixed_rate && (!peer->sta->deflink.he_cap.has_he ||
> - peer->sta->deflink.rx_nss < he_nss)) {
> +
> + if (he_fixed_rate && (!deflink->he_cap.has_he ||
> + deflink->rx_nss < he_nss)) {
> ret = false;
> goto out;
> }
>
> base-commit: f39af96d352dd4f36a4a43601ea90561e17e5ca6


2022-05-09 01:30:10

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] ath11k: mac: fix too long line

Jeff Johnson <[email protected]> writes:

> On 5/3/2022 10:58 PM, Kalle Valo wrote:
>> Jeff Johnson <[email protected]> writes:
> pe>> is there a reason to not declare deflink here?
>>> then its scope of definition would equal the scope of usage
>>
>> In ath10k and ath11k I have tried to avoid that and instead declare all
>> variables in the beginning of the function, this is to keep the code
>> simple. Of course there are few cases where a variable is declared in
>> the middle of the function, but that's just sloppy review on my part. I
>> feel that it's better to refactor the function into smaller functions
>> than start declaring variables in the middle of functions. Does that
>> make sense?
>>
>
> This is really an academic question.
>
> In the larger kernel community I'm seeing a push to reduce the scope
> of identifiers in some cases:
> 1) declaring loop control variables within the actual loop control operation
> 2) prohibiting the access to list iterators outside the list iteration loop

Yeah, those are definitely good examples when to limit scope.

And of course this isn't a hard rule, in some cases we have to make
exceptions. For example ath11k_mac_op_bss_info_changed() and
ath11k_mac_op_sta_state() are long functions but trying to split them to
smaller functions most likely makes them harder to read. So for these
functions having variables declared within if blocks would sound like a
good idea, I think it would make the functions more readable.

--
https://patchwork.kernel.org/project/linux-wireless/list/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2022-05-09 01:31:13

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH 1/2] ath11k: mac: fix too long line

Kalle Valo <[email protected]> wrote:

> checkpatch warns:
>
> drivers/net/wireless/ath/ath11k/mac.c:7760: line length of 91 exceeds 90 columns
>
> This was introduced by commit 046d2e7c50e3 ("mac80211: prepare sta handling for
> MLO support").
>
> Compile tested only.
>
> Signed-off-by: Kalle Valo <[email protected]>

2 patches applied to ath-next branch of ath.git, thanks.

80c5075f3999 ath11k: mac: fix too long line
d9e441855c64 ath10k: mac: fix too long lines

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches