drivers/staging/rtl8723bs/core/rtw_xmit.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
Replace the bitwise AND operator `&` with a modulo
operator `%` and decimal number to make the upper limit visible
and clear what the semantic of it is.
Also add white spaces around binary operators for improved
readabiity and adherence to Linux kernel coding style.
Suggested-by Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Abraham Samuel Adekunle <abrahamadekunle50@gmail.com>
---
Changes in v1:
- Added more patch recipients.
drivers/staging/rtl8723bs/core/rtw_xmit.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rtl8723bs/core/rtw_xmit.c
index 297c93d65315..630669193be4 100644
--- a/drivers/staging/rtl8723bs/core/rtw_xmit.c
+++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c
@@ -943,7 +943,7 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr
if (psta) {
psta->sta_xmitpriv.txseq_tid[pattrib->priority]++;
- psta->sta_xmitpriv.txseq_tid[pattrib->priority] &= 0xFFF;
+ psta->sta_xmitpriv.txseq_tid[pattrib->priority] %= 4096;
pattrib->seqnum = psta->sta_xmitpriv.txseq_tid[pattrib->priority];
SetSeqNum(hdr, pattrib->seqnum);
@@ -963,11 +963,11 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr
if (SN_LESS(pattrib->seqnum, tx_seq)) {
pattrib->ampdu_en = false;/* AGG BK */
} else if (SN_EQUAL(pattrib->seqnum, tx_seq)) {
- psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (tx_seq+1)&0xfff;
+ psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (tx_seq + 1) % 4096;
pattrib->ampdu_en = true;/* AGG EN */
} else {
- psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (pattrib->seqnum+1)&0xfff;
+ psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (pattrib->seqnum + 1) % 4096;
pattrib->ampdu_en = true;/* AGG EN */
}
}
--
2.34.1
On Sat, Apr 05, 2025 at 12:09:59AM +0000, Abraham Samuel Adekunle wrote: > Replace the bitwise AND operator `&` with a modulo > operator `%` and decimal number to make the upper limit visible > and clear what the semantic of it is. Eeek, no. We all "know" what & means (it's a bit mask to handle the issues involved), and we all do NOT know that % will do the same thing at all. So this just made things more difficult to maintain over time. What tool suggested this type of change to be made to this driver and these lines? thanks, greg k-h
On Sat, Apr 5, 2025 at 11:23 AM Greg Kroah-Hartman <gregkh@linuxfoundation.org> wrote: > On Sat, Apr 05, 2025 at 12:09:59AM +0000, Abraham Samuel Adekunle wrote: > > Replace the bitwise AND operator `&` with a modulo > > operator `%` and decimal number to make the upper limit visible > > and clear what the semantic of it is. > > Eeek, no. We all "know" what & means (it's a bit mask to handle the > issues involved), and we all do NOT know that % will do the same thing > at all. And that is exactly the purpose of the change. The % 4096 makes it clearer on what's going on, i.e. we are doing indexes that are wrapped around the given number. > So this just made things more difficult to maintain over time. > > What tool suggested this type of change to be made to this driver and > these lines? It's not a tool, it was me. I read the code and suggested that change. -- With Best Regards, Andy Shevchenko
On Sat, 5 Apr 2025, Andy Shevchenko wrote: > On Sat, Apr 5, 2025 at 11:23 AM Greg Kroah-Hartman > <gregkh@linuxfoundation.org> wrote: > > On Sat, Apr 05, 2025 at 12:09:59AM +0000, Abraham Samuel Adekunle wrote: > > > Replace the bitwise AND operator `&` with a modulo > > > operator `%` and decimal number to make the upper limit visible > > > and clear what the semantic of it is. > > > > Eeek, no. We all "know" what & means (it's a bit mask to handle the > > issues involved), and we all do NOT know that % will do the same thing > > at all. > > And that is exactly the purpose of the change. The % 4096 makes it > clearer on what's going on, i.e. we are doing indexes that are wrapped > around the given number. Ah, OK. Samuel, indeed, the log message was going in that direction. But probably it should be more clear. Why is 4096 the upper limit in this case, for example. Thanks for the feedback Andy, julia > > > So this just made things more difficult to maintain over time. > > > > What tool suggested this type of change to be made to this driver and > > these lines? > > It's not a tool, it was me. I read the code and suggested that change. > > -- > With Best Regards, > Andy Shevchenko >
On Sat, Apr 5, 2025 at 1:30 PM Julia Lawall <julia.lawall@inria.fr> wrote: > > > > On Sat, 5 Apr 2025, Andy Shevchenko wrote: > > > On Sat, Apr 5, 2025 at 11:23 AM Greg Kroah-Hartman > > <gregkh@linuxfoundation.org> wrote: > > > On Sat, Apr 05, 2025 at 12:09:59AM +0000, Abraham Samuel Adekunle wrote: > > > > Replace the bitwise AND operator `&` with a modulo > > > > operator `%` and decimal number to make the upper limit visible > > > > and clear what the semantic of it is. > > > > > > Eeek, no. We all "know" what & means (it's a bit mask to handle the > > > issues involved), and we all do NOT know that % will do the same thing > > > at all. > > > > And that is exactly the purpose of the change. The % 4096 makes it > > clearer on what's going on, i.e. we are doing indexes that are wrapped > > around the given number. > > Ah, OK. Samuel, indeed, the log message was going in that direction. But > probably it should be more clear. Why is 4096 the upper limit in this > case, for example. Okay thank you Julia. So I can add something like this to the commit message? "Replace the bitwise AND operator `&` with a modulo operator `%` and decimal number to make the upper limit visible and clear that we are doing indexes that are wrapped around the given number"? You also said I should add a patch for the white space around binary operators. I did it together because the changes were on the same line. Should I still add a second patch for that change? Thanks Adekunle.
On Sat, 5 Apr 2025, Samuel Abraham wrote: > On Sat, Apr 5, 2025 at 1:30 PM Julia Lawall <julia.lawall@inria.fr> wrote: > > > > > > > > On Sat, 5 Apr 2025, Andy Shevchenko wrote: > > > > > On Sat, Apr 5, 2025 at 11:23 AM Greg Kroah-Hartman > > > <gregkh@linuxfoundation.org> wrote: > > > > On Sat, Apr 05, 2025 at 12:09:59AM +0000, Abraham Samuel Adekunle wrote: > > > > > Replace the bitwise AND operator `&` with a modulo > > > > > operator `%` and decimal number to make the upper limit visible > > > > > and clear what the semantic of it is. > > > > > > > > Eeek, no. We all "know" what & means (it's a bit mask to handle the > > > > issues involved), and we all do NOT know that % will do the same thing > > > > at all. > > > > > > And that is exactly the purpose of the change. The % 4096 makes it > > > clearer on what's going on, i.e. we are doing indexes that are wrapped > > > around the given number. > > > > Ah, OK. Samuel, indeed, the log message was going in that direction. But > > probably it should be more clear. Why is 4096 the upper limit in this > > case, for example. > > Okay thank you Julia. > So I can add something like this to the commit message? > > "Replace the bitwise AND operator `&` with a modulo > operator `%` and decimal number to make the upper limit visible > and clear that we are doing indexes that are wrapped around the given number"? No. First say what the upper limit is. Then explain that a module operation is thus more appropriate than a bit mask. People need to understand the reasoning behind the change. By saying "make the upper limit visible" you are asking them to trust your reasoning, or more likely requiring them to reconstruct it. You need to make explicit all the information that is needed to understand the change, so people will know what to look for to verify it. > You also said I should add a patch for the white space around binary operators. > I did it together because the changes were on the same line. > Should I still add a second patch for that change? It's quite a different issue. So a second patch seems reasonable. YOu can do it before yours. Then if someone still doesn't unlike the modulo patch, the spacing patch can still be accepted. julia
On Sun, Apr 6, 2025 at 1:59 PM Julia Lawall <julia.lawall@inria.fr> wrote: > > > > On Sat, 5 Apr 2025, Samuel Abraham wrote: > > > On Sat, Apr 5, 2025 at 1:30 PM Julia Lawall <julia.lawall@inria.fr> wrote: > > > > > > > > > > > > On Sat, 5 Apr 2025, Andy Shevchenko wrote: > > > > > > > On Sat, Apr 5, 2025 at 11:23 AM Greg Kroah-Hartman > > > > <gregkh@linuxfoundation.org> wrote: > > > > > On Sat, Apr 05, 2025 at 12:09:59AM +0000, Abraham Samuel Adekunle wrote: > > > > > > Replace the bitwise AND operator `&` with a modulo > > > > > > operator `%` and decimal number to make the upper limit visible > > > > > > and clear what the semantic of it is. > > > > > > > > > > Eeek, no. We all "know" what & means (it's a bit mask to handle the > > > > > issues involved), and we all do NOT know that % will do the same thing > > > > > at all. > > > > > > > > And that is exactly the purpose of the change. The % 4096 makes it > > > > clearer on what's going on, i.e. we are doing indexes that are wrapped > > > > around the given number. > > > > > > Ah, OK. Samuel, indeed, the log message was going in that direction. But > > > probably it should be more clear. Why is 4096 the upper limit in this > > > case, for example. > > > > Okay thank you Julia. > > So I can add something like this to the commit message? > > > > "Replace the bitwise AND operator `&` with a modulo > > operator `%` and decimal number to make the upper limit visible > > and clear that we are doing indexes that are wrapped around the given number"? > > No. First say what the upper limit is. Then explain that a module > operation is thus more appropriate than a bit mask. People need to > understand the reasoning behind the change. By saying "make the upper > limit visible" you are asking them to trust your reasoning, or more likely > requiring them to reconstruct it. You need to make explicit all the > information that is needed to understand the change, so people will know > what to look for to verify it. Okay thank you very much I get now. > > > You also said I should add a patch for the white space around binary operators. > > I did it together because the changes were on the same line. > > Should I still add a second patch for that change? > > It's quite a different issue. So, a second patch seems reasonable. You > can do it before yours. Then, if someone still doesn't like the modulo > patch, the spacing patch can still be accepted. Okay then. It makes a lot of sense. Thank you. Adekunle
On Sat, 5 Apr 2025, Abraham Samuel Adekunle wrote:
> Replace the bitwise AND operator `&` with a modulo
> operator `%` and decimal number to make the upper limit visible
> and clear what the semantic of it is.
I think that the & and the Fs are more understandable than using the % and
4096. I would say no for this idea.
> Also add white spaces around binary operators for improved
> readabiity and adherence to Linux kernel coding style.
The "Also" is a hint that you are doing two things. So they can be in two
different patches.
julia
>
> Suggested-by Andy Shevchenko <andy.shevchenko@gmail.com>
>
> Signed-off-by: Abraham Samuel Adekunle <abrahamadekunle50@gmail.com>
> ---
> Changes in v1:
> - Added more patch recipients.
>
> drivers/staging/rtl8723bs/core/rtw_xmit.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/rtl8723bs/core/rtw_xmit.c b/drivers/staging/rtl8723bs/core/rtw_xmit.c
> index 297c93d65315..630669193be4 100644
> --- a/drivers/staging/rtl8723bs/core/rtw_xmit.c
> +++ b/drivers/staging/rtl8723bs/core/rtw_xmit.c
> @@ -943,7 +943,7 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr
>
> if (psta) {
> psta->sta_xmitpriv.txseq_tid[pattrib->priority]++;
> - psta->sta_xmitpriv.txseq_tid[pattrib->priority] &= 0xFFF;
> + psta->sta_xmitpriv.txseq_tid[pattrib->priority] %= 4096;
> pattrib->seqnum = psta->sta_xmitpriv.txseq_tid[pattrib->priority];
>
> SetSeqNum(hdr, pattrib->seqnum);
> @@ -963,11 +963,11 @@ s32 rtw_make_wlanhdr(struct adapter *padapter, u8 *hdr, struct pkt_attrib *pattr
> if (SN_LESS(pattrib->seqnum, tx_seq)) {
> pattrib->ampdu_en = false;/* AGG BK */
> } else if (SN_EQUAL(pattrib->seqnum, tx_seq)) {
> - psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (tx_seq+1)&0xfff;
> + psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (tx_seq + 1) % 4096;
>
> pattrib->ampdu_en = true;/* AGG EN */
> } else {
> - psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (pattrib->seqnum+1)&0xfff;
> + psta->BA_starting_seqctrl[pattrib->priority & 0x0f] = (pattrib->seqnum + 1) % 4096;
> pattrib->ampdu_en = true;/* AGG EN */
> }
> }
> --
> 2.34.1
>
>
© 2016 - 2025 Red Hat, Inc.