* [PATCH] cxl: Fix warning from emitting resoruce_size_t as long long int on 32bit systems
@ 2025-02-28 19:44 Dave Jiang
2025-02-28 20:31 ` Alison Schofield
0 siblings, 1 reply; 3+ messages in thread
From: Dave Jiang @ 2025-02-28 19:44 UTC (permalink / raw)
To: linux-cxl; +Cc: kernel test robot
Reported by kernel test bot from an ARM build:
drivers/cxl/core/region.c:3263:26: warning: format '%lld' expects argument of type 'long long int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
On a 32bit system, resoruce_size_t is defined as 32bit long vs on a 64bit
system it is defined as 64bit long. Define the variables as u64 instead to
make the size same across all archs.
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202503010252.mIDhZ5kY-lkp@intel.com/
Fixes: 0ec9849b6333 ("acpi/hmat / cxl: Add extended linear cache support for CXL")
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
---
drivers/cxl/core/region.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
index a83301f24fa2..958c15842b1e 100644
--- a/drivers/cxl/core/region.c
+++ b/drivers/cxl/core/region.c
@@ -3235,14 +3235,15 @@ static int cxl_extended_linear_cache_resize(struct cxl_region *cxlr,
struct cxl_root_decoder *cxlrd = to_cxl_root_decoder(cxlr->dev.parent);
struct cxl_region_params *p = &cxlr->params;
int nid = phys_to_target_node(res->start);
- resource_size_t size, cache_size, start;
+ u64 size, cache_size, start;
int rc;
size = resource_size(res);
if (!size)
return -EINVAL;
- rc = cxl_acpi_get_extended_linear_cache_size(res, nid, &cache_size);
+ rc = cxl_acpi_get_extended_linear_cache_size(res, nid,
+ (resource_size_t *)&cache_size);
if (rc)
return rc;
--
2.48.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] cxl: Fix warning from emitting resoruce_size_t as long long int on 32bit systems
2025-02-28 19:44 [PATCH] cxl: Fix warning from emitting resoruce_size_t as long long int on 32bit systems Dave Jiang
@ 2025-02-28 20:31 ` Alison Schofield
2025-02-28 20:33 ` Dave Jiang
0 siblings, 1 reply; 3+ messages in thread
From: Alison Schofield @ 2025-02-28 20:31 UTC (permalink / raw)
To: Dave Jiang; +Cc: linux-cxl, kernel test robot
On Fri, Feb 28, 2025 at 12:44:02PM -0700, Dave Jiang wrote:
> Reported by kernel test bot from an ARM build:
> drivers/cxl/core/region.c:3263:26: warning: format '%lld' expects argument of type 'long long int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
>
> On a 32bit system, resoruce_size_t is defined as 32bit long vs on a 64bit
'resource' here and in commit msg.
> system it is defined as 64bit long. Define the variables as u64 instead to
> make the size same across all archs.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202503010252.mIDhZ5kY-lkp@intel.com/
> Fixes: 0ec9849b6333 ("acpi/hmat / cxl: Add extended linear cache support for CXL")
> Signed-off-by: Dave Jiang <dave.jiang@intel.com>
> ---
> drivers/cxl/core/region.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
> index a83301f24fa2..958c15842b1e 100644
> --- a/drivers/cxl/core/region.c
> +++ b/drivers/cxl/core/region.c
> @@ -3235,14 +3235,15 @@ static int cxl_extended_linear_cache_resize(struct cxl_region *cxlr,
> struct cxl_root_decoder *cxlrd = to_cxl_root_decoder(cxlr->dev.parent);
> struct cxl_region_params *p = &cxlr->params;
> int nid = phys_to_target_node(res->start);
> - resource_size_t size, cache_size, start;
> + u64 size, cache_size, start;
> int rc;
>
> size = resource_size(res);
> if (!size)
> return -EINVAL;
>
> - rc = cxl_acpi_get_extended_linear_cache_size(res, nid, &cache_size);
> + rc = cxl_acpi_get_extended_linear_cache_size(res, nid,
> + (resource_size_t *)&cache_size);
> if (rc)
> return rc;
Ah...I was thinking this fixup would be either a %pa format or (u64)cast on
cache_size in the dev_warns, but this works too.
Do we also need to do this to avoid a complaint assigning to cxl_region_params:
- p->cache_size = cache_size;
+ p->cache_size = (resource_size_t)cache_size;
>
> --
> 2.48.1
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] cxl: Fix warning from emitting resoruce_size_t as long long int on 32bit systems
2025-02-28 20:31 ` Alison Schofield
@ 2025-02-28 20:33 ` Dave Jiang
0 siblings, 0 replies; 3+ messages in thread
From: Dave Jiang @ 2025-02-28 20:33 UTC (permalink / raw)
To: Alison Schofield; +Cc: linux-cxl, kernel test robot
On 2/28/25 1:31 PM, Alison Schofield wrote:
> On Fri, Feb 28, 2025 at 12:44:02PM -0700, Dave Jiang wrote:
>> Reported by kernel test bot from an ARM build:
>> drivers/cxl/core/region.c:3263:26: warning: format '%lld' expects argument of type 'long long int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
>>
>> On a 32bit system, resoruce_size_t is defined as 32bit long vs on a 64bit
>
> 'resource' here and in commit msg.
>
>> system it is defined as 64bit long. Define the variables as u64 instead to
>> make the size same across all archs.
>>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Closes: https://lore.kernel.org/oe-kbuild-all/202503010252.mIDhZ5kY-lkp@intel.com/
>> Fixes: 0ec9849b6333 ("acpi/hmat / cxl: Add extended linear cache support for CXL")
>> Signed-off-by: Dave Jiang <dave.jiang@intel.com>
>> ---
>> drivers/cxl/core/region.c | 5 +++--
>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/cxl/core/region.c b/drivers/cxl/core/region.c
>> index a83301f24fa2..958c15842b1e 100644
>> --- a/drivers/cxl/core/region.c
>> +++ b/drivers/cxl/core/region.c
>> @@ -3235,14 +3235,15 @@ static int cxl_extended_linear_cache_resize(struct cxl_region *cxlr,
>> struct cxl_root_decoder *cxlrd = to_cxl_root_decoder(cxlr->dev.parent);
>> struct cxl_region_params *p = &cxlr->params;
>> int nid = phys_to_target_node(res->start);
>> - resource_size_t size, cache_size, start;
>> + u64 size, cache_size, start;
>> int rc;
>>
>> size = resource_size(res);
>> if (!size)
>> return -EINVAL;
>>
>> - rc = cxl_acpi_get_extended_linear_cache_size(res, nid, &cache_size);
>> + rc = cxl_acpi_get_extended_linear_cache_size(res, nid,
>> + (resource_size_t *)&cache_size);
>> if (rc)
>> return rc;
>
> Ah...I was thinking this fixup would be either a %pa format or (u64)cast on
> cache_size in the dev_warns, but this works too.
>
> Do we also need to do this to avoid a complaint assigning to cxl_region_params:
> - p->cache_size = cache_size;
> + p->cache_size = (resource_size_t)cache_size;
Sure I can add that.
>
>
>>
>> --
>> 2.48.1
>>
>>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-02-28 20:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-28 19:44 [PATCH] cxl: Fix warning from emitting resoruce_size_t as long long int on 32bit systems Dave Jiang
2025-02-28 20:31 ` Alison Schofield
2025-02-28 20:33 ` Dave Jiang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox