Commit 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
is using %llx to print resources pointers, but it is incorrect on 32-bits
system, causing the following compilation warning on i386:
drivers/cxl/acpi.c:300:4: warning: format specifies type 'unsigned long long' but the argument has type 'resource_size_t' (aka 'unsigned int') [-Wformat]
Instead of using pointers to the resource, uses the proper printk
specifier that knows how to handle the struct "resources".
This is the new format, being printed now:
Failed to add decode range: [mem 0x4080000000-0x2baffffffff flags 0x200]
Reported-by: kernel test robot <[email protected]>
Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
Suggested-by: Dan Williams <[email protected]>
Signed-off-by: Breno Leitao <[email protected]>
---
drivers/cxl/acpi.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/cxl/acpi.c b/drivers/cxl/acpi.c
index 815b43859c16..d1c559879dcc 100644
--- a/drivers/cxl/acpi.c
+++ b/drivers/cxl/acpi.c
@@ -296,8 +296,7 @@ static int cxl_parse_cfmws(union acpi_subtable_headers *header, void *arg,
else
rc = cxl_decoder_autoremove(dev, cxld);
if (rc) {
- dev_err(dev, "Failed to add decode range [%#llx - %#llx]\n",
- res->start, res->end);
+ dev_err(dev, "Failed to add decode range: %pr", res);
return rc;
}
dev_dbg(dev, "add: %s node: %d range [%#llx - %#llx]\n",
--
2.34.1
On 7/17/23 03:26, Breno Leitao wrote:
> Commit 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> is using %llx to print resources pointers, but it is incorrect on 32-bits
> system, causing the following compilation warning on i386:
>
> drivers/cxl/acpi.c:300:4: warning: format specifies type 'unsigned long long' but the argument has type 'resource_size_t' (aka 'unsigned int') [-Wformat]
>
> Instead of using pointers to the resource, uses the proper printk
> specifier that knows how to handle the struct "resources".
>
> This is the new format, being printed now:
>
> Failed to add decode range: [mem 0x4080000000-0x2baffffffff flags 0x200]
>
> Reported-by: kernel test robot <[email protected]>
> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> Suggested-by: Dan Williams <[email protected]>
> Signed-off-by: Breno Leitao <[email protected]>
Reviewed-by: Dave Jiang <[email protected]>
> ---
> drivers/cxl/acpi.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/cxl/acpi.c b/drivers/cxl/acpi.c
> index 815b43859c16..d1c559879dcc 100644
> --- a/drivers/cxl/acpi.c
> +++ b/drivers/cxl/acpi.c
> @@ -296,8 +296,7 @@ static int cxl_parse_cfmws(union acpi_subtable_headers *header, void *arg,
> else
> rc = cxl_decoder_autoremove(dev, cxld);
> if (rc) {
> - dev_err(dev, "Failed to add decode range [%#llx - %#llx]\n",
> - res->start, res->end);
> + dev_err(dev, "Failed to add decode range: %pr", res);
> return rc;
> }
> dev_dbg(dev, "add: %s node: %d range [%#llx - %#llx]\n",
On Mon, 17 Jul 2023 09:28:47 -0700
Dave Jiang <[email protected]> wrote:
> On 7/17/23 03:26, Breno Leitao wrote:
> > Commit 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> > is using %llx to print resources pointers, but it is incorrect on 32-bits
> > system, causing the following compilation warning on i386:
> >
> > drivers/cxl/acpi.c:300:4: warning: format specifies type 'unsigned long long' but the argument has type 'resource_size_t' (aka 'unsigned int') [-Wformat]
> >
> > Instead of using pointers to the resource, uses the proper printk
> > specifier that knows how to handle the struct "resources".
> >
> > This is the new format, being printed now:
> >
> > Failed to add decode range: [mem 0x4080000000-0x2baffffffff flags 0x200]
> >
> > Reported-by: kernel test robot <[email protected]>
> > Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> > Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> > Suggested-by: Dan Williams <[email protected]>
> > Signed-off-by: Breno Leitao <[email protected]>
>
> Reviewed-by: Dave Jiang <[email protected]>
FWIW
Reviewed-by: Jonathan Cameron <[email protected]>
> > ---
> > drivers/cxl/acpi.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/cxl/acpi.c b/drivers/cxl/acpi.c
> > index 815b43859c16..d1c559879dcc 100644
> > --- a/drivers/cxl/acpi.c
> > +++ b/drivers/cxl/acpi.c
> > @@ -296,8 +296,7 @@ static int cxl_parse_cfmws(union acpi_subtable_headers *header, void *arg,
> > else
> > rc = cxl_decoder_autoremove(dev, cxld);
> > if (rc) {
> > - dev_err(dev, "Failed to add decode range [%#llx - %#llx]\n",
> > - res->start, res->end);
> > + dev_err(dev, "Failed to add decode range: %pr", res);
> > return rc;
> > }
> > dev_dbg(dev, "add: %s node: %d range [%#llx - %#llx]\n",
>
On Mon, 2023-07-17 at 03:26 -0700, Breno Leitao wrote:
> Commit 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> is using %llx to print resources pointers, but it is incorrect on 32-bits
> system, causing the following compilation warning on i386:
>
> drivers/cxl/acpi.c:300:4: warning: format specifies type 'unsigned long long' but the argument has type 'resource_size_t' (aka 'unsigned int') [-Wformat]
>
> Instead of using pointers to the resource, uses the proper printk
> specifier that knows how to handle the struct "resources".
>
> This is the new format, being printed now:
>
> Failed to add decode range: [mem 0x4080000000-0x2baffffffff flags 0x200]
>
> Reported-by: kernel test robot <[email protected]>
> Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/
> Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> Suggested-by: Dan Williams <[email protected]>
> Signed-off-by: Breno Leitao <[email protected]>
> ---
> drivers/cxl/acpi.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
I squashed this in with the original use-after-free patch. Since this
fixes a compile warning with the original patch, squashing is
appropriate even if it results in rebasing the fixes branch.
>
> diff --git a/drivers/cxl/acpi.c b/drivers/cxl/acpi.c
> index 815b43859c16..d1c559879dcc 100644
> --- a/drivers/cxl/acpi.c
> +++ b/drivers/cxl/acpi.c
> @@ -296,8 +296,7 @@ static int cxl_parse_cfmws(union acpi_subtable_headers *header, void *arg,
> else
> rc = cxl_decoder_autoremove(dev, cxld);
> if (rc) {
> - dev_err(dev, "Failed to add decode range [%#llx - %#llx]\n",
> - res->start, res->end);
> + dev_err(dev, "Failed to add decode range: %pr", res);
> return rc;
> }
> dev_dbg(dev, "add: %s node: %d range [%#llx - %#llx]\n",