]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
platform/x86/intel/pmt/discovery: Fix size_t specifiers for 32-bit
authorNathan Chancellor <nathan@kernel.org>
Tue, 8 Jul 2025 23:41:01 +0000 (16:41 -0700)
committerIlpo Järvinen <ilpo.jarvinen@linux.intel.com>
Wed, 9 Jul 2025 08:32:37 +0000 (11:32 +0300)
When building i386 allmodconfig, there are two warnings in the newly
added discovery code:

  drivers/platform/x86/intel/pmt/discovery.c: In function 'pmt_feature_get_feature_table':
  drivers/platform/x86/intel/pmt/discovery.c:427:35: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
    427 |         if (WARN(size > res_size, "Bad table size %ld > %pa", size, &res_size))
        |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~
        |                                                               |
        |                                                               size_t {aka unsigned int}
  ...
  drivers/platform/x86/intel/pmt/discovery.c:427:53: note: format string is defined here
    427 |         if (WARN(size > res_size, "Bad table size %ld > %pa", size, &res_size))
        |                                                   ~~^
        |                                                     |
        |                                                     long int
        |                                                   %d

  drivers/platform/x86/intel/pmt/discovery-kunit.c: In function 'validate_pmt_regions':
  include/linux/kern_levels.h:5:25: error: format '%lu' expects argument of type 'long unsigned int', but argument 4 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
  ...
  drivers/platform/x86/intel/pmt/discovery-kunit.c:35:17: note: in expansion of macro 'kunit_info'
     35 |                 kunit_info(test, "\t\taddr=%p, size=%lu, num_rmids=%u", region->addr, region->size,
        |                 ^~~~~~~~~~

size_t is 'unsigned long' for 64-bit platforms but 'unsigned int' for
32-bit platforms, so '%ld' is not correct. Use the proper size_t
specifier, '%zu', to resolve the warnings on 32-bit platforms while not
affecting 64-bit platforms.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Reported-by: kernelci.org bot <bot@kernelci.org>
Fixes: d9a078809356 ("platform/x86/intel/pmt: Add PMT Discovery driver")
Fixes: b9707d46a959 ("platform/x86/intel/pmt: KUNIT test for PMT Enhanced Discovery API")
Closes: https://lore.kernel.org/all/CACo-S-29Degjym-azsJNSd1yofLOB2_Rf5xpa9b7L-14OPn7wQ@mail.gmail.com/
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20250708-discovery-pmt-fix-32-bit-formats-v1-1-296a5fc9c3d4@kernel.org
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
drivers/platform/x86/intel/pmt/discovery-kunit.c
drivers/platform/x86/intel/pmt/discovery.c

index b4493fb96738a0e674bdc1a6ded685b52178247c..f44eb41d58f64f3cd11b79d69433089e6146c16e 100644 (file)
@@ -32,7 +32,7 @@ validate_pmt_regions(struct kunit *test, struct pmt_feature_group *feature_group
                kunit_info(test, "\t\tbus=%u, device=%u, function=%u, guid=0x%x,",
                           region->plat_info.bus_number, region->plat_info.device_number,
                           region->plat_info.function_number, region->guid);
-               kunit_info(test, "\t\taddr=%p, size=%lu, num_rmids=%u", region->addr, region->size,
+               kunit_info(test, "\t\taddr=%p, size=%zu, num_rmids=%u", region->addr, region->size,
                           region->num_rmids);
 
 
index e72d43b675b4646bfbb8904b461e953e5c1c028f..1a680a042a98e55651e44ed9934c9eb699f162b2 100644 (file)
@@ -424,7 +424,7 @@ pmt_feature_get_feature_table(struct pmt_features_priv *priv,
        size = sizeof(*header) + FEAT_ATTR_SIZE(header->attr_size) +
               PMT_GUID_SIZE(header->num_guids);
        res_size = resource_size(&res);
-       if (WARN(size > res_size, "Bad table size %ld > %pa", size, &res_size))
+       if (WARN(size > res_size, "Bad table size %zu > %pa", size, &res_size))
                return -EINVAL;
 
        /* Get the feature attributes, including capability fields */