Message ID | 20230807201057.340371-1-mahmoudmatook.mm@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | ath5k: fix WARNING opportunity for swap. | expand |
On 07. 08. 23, 22:10, Mahmoud Maatuq wrote: > coccinielle reported the following: > ./drivers/net/wireless/ath/ath5k/phy.c:1573:25-26: WARNING opportunity for swap() OK, once again: https://lore.kernel.org/all/0c3acbd4-6ab2-5cc5-6293-54e30093cce2@kernel.org/ > Signed-off-by: Mahmoud Maatuq <mahmoudmatook.mm@gmail.com> > --- > drivers/net/wireless/ath/ath5k/phy.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c > index 5797ef9c73d7..f87eb684f223 100644 > --- a/drivers/net/wireless/ath/ath5k/phy.c > +++ b/drivers/net/wireless/ath/ath5k/phy.c > @@ -1562,16 +1562,13 @@ static s16 > ath5k_hw_get_median_noise_floor(struct ath5k_hw *ah) > { > s16 sort[ATH5K_NF_CAL_HIST_MAX]; > - s16 tmp; > int i, j; > > memcpy(sort, ah->ah_nfcal_hist.nfval, sizeof(sort)); > for (i = 0; i < ATH5K_NF_CAL_HIST_MAX - 1; i++) { > for (j = 1; j < ATH5K_NF_CAL_HIST_MAX - i; j++) { > if (sort[j] > sort[j - 1]) { > - tmp = sort[j]; > - sort[j] = sort[j - 1]; > - sort[j - 1] = tmp; > + swap(sort[j], sort[j - 1]); > } > } > }
On 08/08, Jiri Slaby wrote: > On 07. 08. 23, 22:10, Mahmoud Maatuq wrote: > > coccinielle reported the following: > > ./drivers/net/wireless/ath/ath5k/phy.c:1573:25-26: WARNING opportunity for swap() > > > OK, once again: > https://lore.kernel.org/all/0c3acbd4-6ab2-5cc5-6293-54e30093cce2@kernel.org/ I had a look at the commit history, to see why the original developer didn't use sort() function, and name the array variable sort but found nothing. I have some doubts that he might did that intentionally, so not to call sort() function for such small array and avoid the cost of context switching. > > Signed-off-by: Mahmoud Maatuq <mahmoudmatook.mm@gmail.com> > > --- > > drivers/net/wireless/ath/ath5k/phy.c | 5 +---- > > 1 file changed, 1 insertion(+), 4 deletions(-) > > > > diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c > > index 5797ef9c73d7..f87eb684f223 100644 > > --- a/drivers/net/wireless/ath/ath5k/phy.c > > +++ b/drivers/net/wireless/ath/ath5k/phy.c > > @@ -1562,16 +1562,13 @@ static s16 > > ath5k_hw_get_median_noise_floor(struct ath5k_hw *ah) > > { > > s16 sort[ATH5K_NF_CAL_HIST_MAX]; > > - s16 tmp; > > int i, j; > > memcpy(sort, ah->ah_nfcal_hist.nfval, sizeof(sort)); > > for (i = 0; i < ATH5K_NF_CAL_HIST_MAX - 1; i++) { > > for (j = 1; j < ATH5K_NF_CAL_HIST_MAX - i; j++) { > > if (sort[j] > sort[j - 1]) { > > - tmp = sort[j]; > > - sort[j] = sort[j - 1]; > > - sort[j - 1] = tmp; > > + swap(sort[j], sort[j - 1]); > > } > > } > > } > > -- > js > suse labs
On 08. 08. 23, 21:42, Mahmoud Matook wrote: > On 08/08, Jiri Slaby wrote: > >> On 07. 08. 23, 22:10, Mahmoud Maatuq wrote: >>> coccinielle reported the following: >>> ./drivers/net/wireless/ath/ath5k/phy.c:1573:25-26: WARNING opportunity for swap() >> >> >> OK, once again: >> https://lore.kernel.org/all/0c3acbd4-6ab2-5cc5-6293-54e30093cce2@kernel.org/ > > > I had a look at the commit history, to see why the original developer > didn't use sort() function, and name the array variable sort but found > nothing. > I have some doubts that he might did that intentionally, so not to call > sort() function for such small array It happens once in 10 s and in a work. No worries about that. > and avoid the cost of context switching. What context switching? >>> diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c >>> index 5797ef9c73d7..f87eb684f223 100644 >>> --- a/drivers/net/wireless/ath/ath5k/phy.c >>> +++ b/drivers/net/wireless/ath/ath5k/phy.c >>> @@ -1562,16 +1562,13 @@ static s16 >>> ath5k_hw_get_median_noise_floor(struct ath5k_hw *ah) >>> { >>> s16 sort[ATH5K_NF_CAL_HIST_MAX]; >>> - s16 tmp; >>> int i, j; >>> memcpy(sort, ah->ah_nfcal_hist.nfval, sizeof(sort)); >>> for (i = 0; i < ATH5K_NF_CAL_HIST_MAX - 1; i++) { >>> for (j = 1; j < ATH5K_NF_CAL_HIST_MAX - i; j++) { >>> if (sort[j] > sort[j - 1]) { >>> - tmp = sort[j]; >>> - sort[j] = sort[j - 1]; >>> - sort[j - 1] = tmp; >>> + swap(sort[j], sort[j - 1]); >>> } >>> } >>> } >> >> -- >> js >> suse labs
On 08. 08. 23, 21:42, Mahmoud Matook wrote: >> On 08/08, Jiri Slaby wrote: >> >>>> On 07. 08. 23, 22:10, Mahmoud Maatuq wrote: >>>> coccinielle reported the following: >>>> ./drivers/net/wireless/ath/ath5k/phy.c:1573:25-26: WARNING opportunity for swap() >>>> >>>> >>> OK, once again: >>> https://lore.kernel.org/all/0c3acbd4-6ab2-5cc5-6293-54e30093cce2@kernel.org/ >> >> >> I had a look at the commit history, to see why the original developer >> didn't use sort() function, and name the array variable sort but found >> nothing. >> I have some doubts that he might did that intentionally, so not to call >> sort() function for such small array > It happens once in 10 s and in a work. No worries about that. if it's the case so make sense to use sort(). but should I send the modifications on the same thread? as the subject needs to be changed. ex: repalce double loop with sort function replace bubble sort with heap sort. >> and avoid the cost of context switching. > What context switching? I used the wrong expression, I meant function call overhead e.g store/load registers. >>>> diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c >>>> index 5797ef9c73d7..f87eb684f223 100644 >>>> --- a/drivers/net/wireless/ath/ath5k/phy.c >>>> +++ b/drivers/net/wireless/ath/ath5k/phy.c >>>> @@ -1562,16 +1562,13 @@ static s16 >>>> ath5k_hw_get_median_noise_floor(struct ath5k_hw *ah) >>>> { >>>> s16 sort[ATH5K_NF_CAL_HIST_MAX]; >>>> - s16 tmp; >>>> int i, j; >>>> memcpy(sort, ah->ah_nfcal_hist.nfval, sizeof(sort)); >>>> for (i = 0; i < ATH5K_NF_CAL_HIST_MAX - 1; i++) { >>>> for (j = 1; j < ATH5K_NF_CAL_HIST_MAX - i; j++) { >>>> if (sort[j] > sort[j - 1]) { >>>> - tmp = sort[j]; >>>> - sort[j] = sort[j - 1]; >>>> - sort[j - 1] = tmp; >>>> + swap(sort[j], sort[j - 1]); >>>> } >>>> } >>>> } >>> >>> -- >>> js >>> suse labs > > -- > js > suse labs
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c index 5797ef9c73d7..f87eb684f223 100644 --- a/drivers/net/wireless/ath/ath5k/phy.c +++ b/drivers/net/wireless/ath/ath5k/phy.c @@ -1562,16 +1562,13 @@ static s16 ath5k_hw_get_median_noise_floor(struct ath5k_hw *ah) { s16 sort[ATH5K_NF_CAL_HIST_MAX]; - s16 tmp; int i, j; memcpy(sort, ah->ah_nfcal_hist.nfval, sizeof(sort)); for (i = 0; i < ATH5K_NF_CAL_HIST_MAX - 1; i++) { for (j = 1; j < ATH5K_NF_CAL_HIST_MAX - i; j++) { if (sort[j] > sort[j - 1]) { - tmp = sort[j]; - sort[j] = sort[j - 1]; - sort[j - 1] = tmp; + swap(sort[j], sort[j - 1]); } } }
coccinielle reported the following: ./drivers/net/wireless/ath/ath5k/phy.c:1573:25-26: WARNING opportunity for swap() Signed-off-by: Mahmoud Maatuq <mahmoudmatook.mm@gmail.com> --- drivers/net/wireless/ath/ath5k/phy.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-)