Subject: linux-next: build failure after merge of the bitmap tree

From: Stephen Rothwell <[email-masked]>
Date: Fri, 15 Jul 2022 20:29:33 +1000

Hi all,

After merging the bitmap tree, today's linux-next build (x86_64
allmodconfig) failed like this:

drivers/gpu/drm/i915/gt/intel_sseu.c: In function 'intel_sseu_print_ss_info':
drivers/gpu/drm/i915/gt/intel_sseu.c:868:52: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=]
  868 |                 seq_printf(m, "  %s Geometry DSS: %u\n", type,
      |                                                   ~^
      |                                                    |
      |                                                    unsigned int
      |                                                   %lu
  869 |                            bitmap_weight(sseu->geometry_subslice_mask.xehp,
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            |
      |                            long unsigned int
  870 |                                          XEHP_BITMAP_BITS(sseu->geometry_subslice_mask)));
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/i915/gt/intel_sseu.c:871:51: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=]
  871 |                 seq_printf(m, "  %s Compute DSS: %u\n", type,
      |                                                  ~^
      |                                                   |
      |                                                   unsigned int
      |                                                  %lu
  872 |                            bitmap_weight(sseu->compute_subslice_mask.xehp,
      |                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            |
      |                            long unsigned int
  873 |                                          XEHP_BITMAP_BITS(sseu->compute_subslice_mask)));
      |                                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
In file included from include/linux/printk.h:573,
                 from include/linux/kernel.h:29,
                 from arch/x86/include/asm/percpu.h:27,
                 from arch/x86/include/asm/nospec-branch.h:14,
                 from arch/x86/include/asm/paravirt_types.h:40,
                 from arch/x86/include/asm/ptrace.h:97,
                 from arch/x86/include/asm/math_emu.h:5,
                 from arch/x86/include/asm/processor.h:13,
                 from arch/x86/include/asm/timex.h:5,
                 from include/linux/timex.h:67,
                 from include/linux/time32.h:13,
                 from include/linux/time.h:60,
                 from include/linux/stat.h:19,
                 from include/linux/module.h:13,
                 from drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:9:
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c: In function 'rvu_npc_exact_alloc_mem_table_entry':
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:454:27: error: format '%u' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=]
  454 |         dev_dbg(rvu->dev, "%s: No space in 4 way exact way, weight=%u\n", __func__,
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
  134 |                 func(&id, ##__VA_ARGS__);               \
      |                             ^~~~~~~~~~~
include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
  166 |         _dynamic_func_call(fmt,__dynamic_dev_dbg,               \
      |         ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
  155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
      |         ^~~~~~~~~~~~~~~
include/linux/dev_printk.h:155:30: note: in expansion of macro 'dev_fmt'
  155 |         dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
      |                              ^~~~~~~
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:454:9: note: in expansion of macro 'dev_dbg'
  454 |         dev_dbg(rvu->dev, "%s: No space in 4 way exact way, weight=%u\n", __func__,
      |         ^~~~~~~
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:454:69: note: format string is defined here
  454 |         dev_dbg(rvu->dev, "%s: No space in 4 way exact way, weight=%u\n", __func__,
      |                                                                    ~^
      |                                                                     |
      |                                                                     unsigned int
      |                                                                    %lu
In file included from include/linux/device.h:15,
                 from include/linux/pci.h:37,
                 from drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:10:
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c: In function 'rvu_npc_exact_alloc_id':
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:492:35: error: format '%d' expects argument of type 'int', but argument 4 has type 'long unsigned int' [-Werror=format=]
  492 |                 dev_err(rvu->dev, "%s: No space in id bitmap (%d)\n",
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
  110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                              ^~~
include/linux/dev_printk.h:144:56: note: in expansion of macro 'dev_fmt'
  144 |         dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__)
      |                                                        ^~~~~~~
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:492:17: note: in expansion of macro 'dev_err'
  492 |                 dev_err(rvu->dev, "%s: No space in id bitmap (%d)\n",
      |                 ^~~~~~~
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:492:64: note: format string is defined here
  492 |                 dev_err(rvu->dev, "%s: No space in id bitmap (%d)\n",
      |                                                               ~^
      |                                                                |
      |                                                                int
      |                                                               %ld
In file included from include/linux/device.h:15,
                 from include/linux/pci.h:37,
                 from drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:10:
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c: In function 'rvu_npc_exact_alloc_cam_table_entry':
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:525:36: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=]
  525 |                 dev_info(rvu->dev, "%s: No space in exact cam table, weight=%u\n", __func__,
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
  110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
      |                              ^~~
include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
  150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
      |                                                          ^~~~~~~
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:525:17: note: in expansion of macro 'dev_info'
  525 |                 dev_info(rvu->dev, "%s: No space in exact cam table, weight=%u\n", __func__,
      |                 ^~~~~~~~
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c:525:78: note: format string is defined here
  525 |                 dev_info(rvu->dev, "%s: No space in exact cam table, weight=%u\n", __func__,
      |                                                                             ~^
      |                                                                              |
      |                                                                              unsigned int
      |                                                                             %lu
cc1: all warnings being treated as errors

Caused by commit

  31563fb891aa ("lib/bitmap: change type of bitmap_weight to unsigned long")

interacting with commits

  b87d39019651 ("drm/i915/sseu: Disassociate internal subslice mask representation from uapi")

from the drm tree and

  b747923afff8 ("octeontx2-af: Exact match support")

from the net-next tree.

I have applied the following merge resolution patch.

From: Stephen Rothwell <[email-masked]>
Date: Fri, 15 Jul 2022 20:20:15 +1000
Subject: [PATCH] fix up for bitmap_weight return value changing

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 drivers/gpu/drm/i915/gt/intel_sseu.c                     | 4 ++--
 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_sseu.c b/drivers/gpu/drm/i915/gt/intel_sseu.c
index c6d3050604c8..79fa564785b6 100644
--- a/drivers/gpu/drm/i915/gt/intel_sseu.c
+++ b/drivers/gpu/drm/i915/gt/intel_sseu.c
@@ -865,10 +865,10 @@ void intel_sseu_print_ss_info(const char *type,
 	int s;
 
 	if (sseu->has_xehp_dss) {
-		seq_printf(m, "  %s Geometry DSS: %u\n", type,
+		seq_printf(m, "  %s Geometry DSS: %lu\n", type,
 			   bitmap_weight(sseu->geometry_subslice_mask.xehp,
 					 XEHP_BITMAP_BITS(sseu->geometry_subslice_mask)));
-		seq_printf(m, "  %s Compute DSS: %u\n", type,
+		seq_printf(m, "  %s Compute DSS: %lu\n", type,
 			   bitmap_weight(sseu->compute_subslice_mask.xehp,
 					 XEHP_BITMAP_BITS(sseu->compute_subslice_mask)));
 	} else {
diff --git a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
index 1195b690f483..2f4ce41df83c 100644
--- a/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
+++ b/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_hash.c
@@ -451,7 +451,7 @@ static int rvu_npc_exact_alloc_mem_table_entry(struct rvu *rvu, u8 *way,
 	}
 	mutex_unlock(&table->lock);
 
-	dev_dbg(rvu->dev, "%s: No space in 4 way exact way, weight=%u\n", __func__,
+	dev_dbg(rvu->dev, "%s: No space in 4 way exact way, weight=%lu\n", __func__,
 		bitmap_weight(table->mem_table.bmap, table->mem_table.depth));
 	return -ENOSPC;
 }
@@ -489,7 +489,7 @@ static bool rvu_npc_exact_alloc_id(struct rvu *rvu, u32 *seq_id)
 	idx = find_first_zero_bit(table->id_bmap, table->tot_ids);
 	if (idx == table->tot_ids) {
 		mutex_unlock(&table->lock);
-		dev_err(rvu->dev, "%s: No space in id bitmap (%d)\n",
+		dev_err(rvu->dev, "%s: No space in id bitmap (%lu)\n",
 			__func__, bitmap_weight(table->id_bmap, table->tot_ids));
 
 		return false;
@@ -522,7 +522,7 @@ static int rvu_npc_exact_alloc_cam_table_entry(struct rvu *rvu, int *index)
 	idx = find_first_zero_bit(table->cam_table.bmap, table->cam_table.depth);
 	if (idx == table->cam_table.depth) {
 		mutex_unlock(&table->lock);
-		dev_info(rvu->dev, "%s: No space in exact cam table, weight=%u\n", __func__,
+		dev_info(rvu->dev, "%s: No space in exact cam table, weight=%lu\n", __func__,
 			 bitmap_weight(table->cam_table.bmap, table->cam_table.depth));
 		return -ENOSPC;
 	}
-- 
2.35.1

-- 
Cheers,
Stephen Rothwell