2022-04-22 21:57:33

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] macintosh: macio_asic: fix resource_size.cocci warnings

Yihao Han <[email protected]> writes:
> drivers/macintosh/macio_asic.c:219:26-29: WARNING:
> Suspicious code. resource_size is maybe missing with res
> drivers/macintosh/macio_asic.c:221:26-29: WARNING:
> Suspicious code. resource_size is maybe missing with res
>
> Use resource_size function on resource object instead of
> explicit computation.
>
> Generated by: scripts/coccinelle/api/resource_size.cocci
>
> Signed-off-by: Yihao Han <[email protected]>
> ---
> drivers/macintosh/macio_asic.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/macintosh/macio_asic.c b/drivers/macintosh/macio_asic.c
> index 1943a007e2d5..260fccb3863e 100644
> --- a/drivers/macintosh/macio_asic.c
> +++ b/drivers/macintosh/macio_asic.c
> @@ -216,9 +216,9 @@ static int macio_resource_quirks(struct device_node *np, struct resource *res,
> /* Some older IDE resources have bogus sizes */
> if (of_node_name_eq(np, "IDE") || of_node_name_eq(np, "ATA") ||
> of_node_is_type(np, "ide") || of_node_is_type(np, "ata")) {
> - if (index == 0 && (res->end - res->start) > 0xfff)
> + if (index == 0 && (resource_size(res)) > 0xfff)
> res->end = res->start + 0xfff;
> - if (index == 1 && (res->end - res->start) > 0xff)
> + if (index == 1 && (resource_size(res)) > 0xff)

Are you sure the conversion is correct? It's not exactly equivalent:

static inline resource_size_t resource_size(const struct resource *res)
{
return res->end - res->start + 1;
}

cheers


2022-04-25 20:22:16

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH] macintosh: macio_asic: fix resource_size.cocci warnings

Hello Michael,

On Fri, Apr 22, 2022 at 04:44:24PM +1000, Michael Ellerman wrote:
> Yihao Han <[email protected]> writes:
> > - if (index == 0 && (res->end - res->start) > 0xfff)
> > + if (index == 0 && (resource_size(res)) > 0xfff)
> > res->end = res->start + 0xfff;
> > - if (index == 1 && (res->end - res->start) > 0xff)
> > + if (index == 1 && (resource_size(res)) > 0xff)
>
> Are you sure the conversion is correct? It's not exactly equivalent:
>
> static inline resource_size_t resource_size(const struct resource *res)
> {
> return res->end - res->start + 1;
> }

Indeed. I pointed out this issue in the v2 that already hit my inbox.

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | https://www.pengutronix.de/ |


Attachments:
(No filename) (850.00 B)
signature.asc (499.00 B)
Download all attachments