Message ID | 20220503060415.24499-1-kvalo@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 80c5075f39996dc75ee8bb7748c4805ffea0e2fb |
Delegated to: | Kalle Valo |
Headers | show |
Series | [1/2] ath11k: mac: fix too long line | expand |
On 5/2/2022 11:04 PM, Kalle Valo wrote: > From: Kalle Valo <quic_kvalo@quicinc.com> > > 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 <quic_kvalo@quicinc.com> > --- > 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
Jeff Johnson <quic_jjohnson@quicinc.com> writes: > On 5/2/2022 11:04 PM, Kalle Valo wrote: >> From: Kalle Valo <quic_kvalo@quicinc.com> >> >> 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 <quic_kvalo@quicinc.com> >> --- >> 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?
On 5/3/2022 10:58 PM, Kalle Valo wrote: > Jeff Johnson <quic_jjohnson@quicinc.com> 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
Kalle Valo <kvalo@kernel.org> 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 <quic_kvalo@quicinc.com> 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
Jeff Johnson <quic_jjohnson@quicinc.com> writes: > On 5/3/2022 10:58 PM, Kalle Valo wrote: >> Jeff Johnson <quic_jjohnson@quicinc.com> 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.
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; }