2021-07-18 08:43:20

by Len Baker

[permalink] [raw]
Subject: [PATCH v3] rtw88: Remove unnecessary check code

The rtw_pci_init_rx_ring function is only ever called with a fixed
constant or RTK_MAX_RX_DESC_NUM for the "len" argument. Since this
constant is defined as 512, the "if (len > TRX_BD_IDX_MASK)" check
can never happen (TRX_BD_IDX_MASK is defined as GENMASK(11, 0) or in
other words as 4095).

So, remove this check.

Signed-off-by: Len Baker <[email protected]>
---
Changelog v1 -> v2
- Remove the macro ARRAY_SIZE from the for loop (Pkshih, Brian Norris).
- Add a new check for the len variable (Pkshih, Brian Norris).

Changelog v2 -> v3
- Change the subject of the patch.
- Remove the "if" check statement (Greg KH)
- Remove the "Fixes" tag, "Addresses-Coverity-ID" tag and Cc to stable.

The previous versions can be found at:

v1
https://lore.kernel.org/lkml/[email protected]/

v2
https://lore.kernel.org/lkml/[email protected]/

drivers/net/wireless/realtek/rtw88/pci.c | 5 -----
1 file changed, 5 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtw88/pci.c b/drivers/net/wireless/realtek/rtw88/pci.c
index e7d17ab8f113..f17e7146f20f 100644
--- a/drivers/net/wireless/realtek/rtw88/pci.c
+++ b/drivers/net/wireless/realtek/rtw88/pci.c
@@ -268,11 +268,6 @@ static int rtw_pci_init_rx_ring(struct rtw_dev *rtwdev,
int i, allocated;
int ret = 0;

- if (len > TRX_BD_IDX_MASK) {
- rtw_err(rtwdev, "len %d exceeds maximum RX entries\n", len);
- return -EINVAL;
- }
-
head = dma_alloc_coherent(&pdev->dev, ring_sz, &dma, GFP_KERNEL);
if (!head) {
rtw_err(rtwdev, "failed to allocate rx ring\n");
--
2.25.1


2021-07-27 06:35:22

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v3] rtw88: Remove unnecessary check code

Len Baker <[email protected]> writes:

> The rtw_pci_init_rx_ring function is only ever called with a fixed
> constant or RTK_MAX_RX_DESC_NUM for the "len" argument. Since this
> constant is defined as 512, the "if (len > TRX_BD_IDX_MASK)" check
> can never happen (TRX_BD_IDX_MASK is defined as GENMASK(11, 0) or in
> other words as 4095).
>
> So, remove this check.
>
> Signed-off-by: Len Baker <[email protected]>

Are everyone ok with this version?

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

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

2021-07-27 18:20:21

by Brian Norris

[permalink] [raw]
Subject: Re: [PATCH v3] rtw88: Remove unnecessary check code

On Mon, Jul 26, 2021 at 11:34 PM Kalle Valo <[email protected]> wrote:
>
> Len Baker <[email protected]> writes:
>
> > The rtw_pci_init_rx_ring function is only ever called with a fixed
> > constant or RTK_MAX_RX_DESC_NUM for the "len" argument. Since this
> > constant is defined as 512, the "if (len > TRX_BD_IDX_MASK)" check
> > can never happen (TRX_BD_IDX_MASK is defined as GENMASK(11, 0) or in
> > other words as 4095).
> >
> > So, remove this check.
> >
> > Signed-off-by: Len Baker <[email protected]>
>
> Are everyone ok with this version?

I suppose? I'm not really sure where the line should be drawn on
excessive bounds checking, false warnings from otherwise quite useful
static analysis tools, etc., but I suppose it doesn't make much sense
to add additional excess bounds checks just to quiet Coverity.

It might be nice to include the true motivation in the patch
description though, which is: "this also quiets a false warning from
Coverity".

Anyway, feel free to pick one of these:

Shrug-by: Brian Norris <[email protected]>

or

Reviewed-by: Brian Norris <[email protected]>

2021-07-28 17:52:58

by Len Baker

[permalink] [raw]
Subject: Re: [PATCH v3] rtw88: Remove unnecessary check code

On Tue, Jul 27, 2021 at 11:16:11AM -0700, Brian Norris wrote:
> On Mon, Jul 26, 2021 at 11:34 PM Kalle Valo <[email protected]> wrote:
> >
> > Len Baker <[email protected]> writes:
> >
> > > The rtw_pci_init_rx_ring function is only ever called with a fixed
> > > constant or RTK_MAX_RX_DESC_NUM for the "len" argument. Since this
> > > constant is defined as 512, the "if (len > TRX_BD_IDX_MASK)" check
> > > can never happen (TRX_BD_IDX_MASK is defined as GENMASK(11, 0) or in
> > > other words as 4095).
> > >
> > > So, remove this check.
> > >
> > > Signed-off-by: Len Baker <[email protected]>
> >
> > Are everyone ok with this version?
>
> I suppose? I'm not really sure where the line should be drawn on
> excessive bounds checking, false warnings from otherwise quite useful
> static analysis tools, etc., but I suppose it doesn't make much sense
> to add additional excess bounds checks just to quiet Coverity.
>
> It might be nice to include the true motivation in the patch
> description though, which is: "this also quiets a false warning from
> Coverity".

Ok, I will send a new version with the commit changelog updated.

>
> Anyway, feel free to pick one of these:
>
> Shrug-by: Brian Norris <[email protected]>
>
> or
>
> Reviewed-by: Brian Norris <[email protected]>

Thanks,
Len