diff mbox series

cxl/acpi: Use printk specifier for resource

Message ID 20230717102625.4083462-1-leitao@debian.org
State New, archived
Headers show
Series cxl/acpi: Use printk specifier for resource | expand

Commit Message

Breno Leitao July 17, 2023, 10:26 a.m. UTC
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 <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202307151059.2vvBt55H-lkp@intel.com/
Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
Suggested-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Breno Leitao <leitao@debian.org>
---
 drivers/cxl/acpi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Dave Jiang July 17, 2023, 4:28 p.m. UTC | #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 <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202307151059.2vvBt55H-lkp@intel.com/
> Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Breno Leitao <leitao@debian.org>

Reviewed-by: Dave Jiang <dave.jiang@intel.com>
> ---
>   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",
Jonathan Cameron July 18, 2023, 9:29 a.m. UTC | #2
On Mon, 17 Jul 2023 09:28:47 -0700
Dave Jiang <dave.jiang@intel.com> 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 <lkp@intel.com>
> > Closes: https://lore.kernel.org/oe-kbuild-all/202307151059.2vvBt55H-lkp@intel.com/
> > Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> > Suggested-by: Dan Williams <dan.j.williams@intel.com>
> > Signed-off-by: Breno Leitao <leitao@debian.org>  
> 
> Reviewed-by: Dave Jiang <dave.jiang@intel.com>

FWIW
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

> > ---
> >   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",  
>
Verma, Vishal L July 18, 2023, 5:58 p.m. UTC | #3
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 <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202307151059.2vvBt55H-lkp@intel.com/
> Fixes: 3840e10e8dca ("cxl/acpi: Fix a use-after-free in cxl_parse_cfmws()")
> Suggested-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: Breno Leitao <leitao@debian.org>
> ---
>  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",
diff mbox series

Patch

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",