linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
       [not found] <454f967d452548a9acfa7c0a0872507e@AcuMS.aculab.com>
@ 2023-07-25 14:14 ` kernel test robot
  2023-07-25 14:56 ` kernel test robot
  2023-07-25 15:58 ` kernel test robot
  2 siblings, 0 replies; 7+ messages in thread
From: kernel test robot @ 2023-07-25 14:14 UTC (permalink / raw)
  To: David Laight, linux-kernel@vger.kernel.org,
	'Andy Shevchenko', 'Andrew Morton',
	Matthew Wilcox (Oracle), Christoph Hellwig, Jason A. Donenfeld
  Cc: oe-kbuild-all, Linux Memory Management List

Hi David,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on linus/master v6.5-rc3 next-20230725]
[cannot apply to next-20230725 hch-configfs/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/David-Laight/minmax-Add-min_unsigned-a-b-and-max_unsigned-a-b/20230725-180332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link:    https://lore.kernel.org/r/454f967d452548a9acfa7c0a0872507e%40AcuMS.aculab.com
patch subject: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
config: loongarch-allnoconfig (https://download.01.org/0day-ci/archive/20230725/202307252139.Kz3mgUAw-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 12.3.0
reproduce: (https://download.01.org/0day-ci/archive/20230725/202307252139.Kz3mgUAw-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307252139.Kz3mgUAw-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/irqdomain.h:36,
                    from arch/loongarch/include/asm/irq.h:8,
                    from include/linux/irq.h:23,
                    from arch/loongarch/include/asm/hardirq.h:10,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from drivers/irqchip/irq-loongarch-cpu.c:8:
>> include/linux/irqchip.h:24:10: error: implicit declaration of function '__typecheck'; did you mean 'typecheck'? [-Werror=implicit-function-declaration]
      24 |         (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn)
         |          ^~~~~~~~~~~
   include/linux/of.h:1478:31: note: in definition of macro '_OF_DECLARE'
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                               ^~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   include/linux/irqchip.h:37:45: note: in expansion of macro 'typecheck_irq_init_cb'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |                                             ^~~~~~~~~~~~~~~~~~~~~
   drivers/irqchip/irq-loongarch-cpu.c:110:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     110 | IRQCHIP_DECLARE(cpu_intc, "loongson,cpu-interrupt-controller", cpuintc_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongarch-cpu.c:110:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     110 | IRQCHIP_DECLARE(cpu_intc, "loongson,cpu-interrupt-controller", cpuintc_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_cpu_intc.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongarch-cpu.c:110:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     110 | IRQCHIP_DECLARE(cpu_intc, "loongson,cpu-interrupt-controller", cpuintc_of_init);
         | ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from include/linux/irqdomain.h:36,
                    from arch/loongarch/include/asm/irq.h:8,
                    from include/linux/irq.h:23,
                    from arch/loongarch/include/asm/hardirq.h:10,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from drivers/irqchip/irq-loongson-liointc.c:10:
>> include/linux/irqchip.h:24:10: error: implicit declaration of function '__typecheck'; did you mean 'typecheck'? [-Werror=implicit-function-declaration]
      24 |         (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn)
         |          ^~~~~~~~~~~
   include/linux/of.h:1478:31: note: in definition of macro '_OF_DECLARE'
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                               ^~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   include/linux/irqchip.h:37:45: note: in expansion of macro 'typecheck_irq_init_cb'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |                                             ^~~~~~~~~~~~~~~~~~~~~
   drivers/irqchip/irq-loongson-liointc.c:371:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     371 | IRQCHIP_DECLARE(loongson_liointc_1_0, "loongson,liointc-1.0", liointc_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-liointc.c:371:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     371 | IRQCHIP_DECLARE(loongson_liointc_1_0, "loongson,liointc-1.0", liointc_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_loongson_liointc_1_0.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-liointc.c:371:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     371 | IRQCHIP_DECLARE(loongson_liointc_1_0, "loongson,liointc-1.0", liointc_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-liointc.c:372:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     372 | IRQCHIP_DECLARE(loongson_liointc_1_0a, "loongson,liointc-1.0a", liointc_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_loongson_liointc_1_0a.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-liointc.c:372:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     372 | IRQCHIP_DECLARE(loongson_liointc_1_0a, "loongson,liointc-1.0a", liointc_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-liointc.c:373:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     373 | IRQCHIP_DECLARE(loongson_liointc_2_0, "loongson,liointc-2.0", liointc_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_loongson_liointc_2_0.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-liointc.c:373:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     373 | IRQCHIP_DECLARE(loongson_liointc_2_0, "loongson,liointc-2.0", liointc_of_init);
         | ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from include/linux/irqdomain.h:36,
                    from arch/loongarch/include/asm/irq.h:8,
                    from include/linux/irq.h:23,
                    from arch/loongarch/include/asm/hardirq.h:10,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from drivers/irqchip/irq-loongson-eiointc.c:11:
>> include/linux/irqchip.h:24:10: error: implicit declaration of function '__typecheck'; did you mean 'typecheck'? [-Werror=implicit-function-declaration]
      24 |         (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn)
         |          ^~~~~~~~~~~
   include/linux/of.h:1478:31: note: in definition of macro '_OF_DECLARE'
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                               ^~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   include/linux/irqchip.h:37:45: note: in expansion of macro 'typecheck_irq_init_cb'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |                                             ^~~~~~~~~~~~~~~~~~~~~
   drivers/irqchip/irq-loongson-eiointc.c:508:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     508 | IRQCHIP_DECLARE(loongson_ls2k0500_eiointc, "loongson,ls2k0500-eiointc", eiointc_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-eiointc.c:508:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     508 | IRQCHIP_DECLARE(loongson_ls2k0500_eiointc, "loongson,ls2k0500-eiointc", eiointc_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_loongson_ls2k0500_eiointc.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-eiointc.c:508:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     508 | IRQCHIP_DECLARE(loongson_ls2k0500_eiointc, "loongson,ls2k0500-eiointc", eiointc_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-eiointc.c:509:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     509 | IRQCHIP_DECLARE(loongson_ls2k2000_eiointc, "loongson,ls2k2000-eiointc", eiointc_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_loongson_ls2k2000_eiointc.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-eiointc.c:509:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     509 | IRQCHIP_DECLARE(loongson_ls2k2000_eiointc, "loongson,ls2k2000-eiointc", eiointc_of_init);
         | ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from include/linux/irqdomain.h:36,
                    from arch/loongarch/include/asm/irq.h:8,
                    from include/linux/irq.h:23,
                    from arch/loongarch/include/asm/hardirq.h:10,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from drivers/irqchip/irq-loongson-htvec.c:9:
>> include/linux/irqchip.h:24:10: error: implicit declaration of function '__typecheck'; did you mean 'typecheck'? [-Werror=implicit-function-declaration]
      24 |         (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn)
         |          ^~~~~~~~~~~
   include/linux/of.h:1478:31: note: in definition of macro '_OF_DECLARE'
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                               ^~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   include/linux/irqchip.h:37:45: note: in expansion of macro 'typecheck_irq_init_cb'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |                                             ^~~~~~~~~~~~~~~~~~~~~
   drivers/irqchip/irq-loongson-htvec.c:257:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     257 | IRQCHIP_DECLARE(htvec, "loongson,htvec-1.0", htvec_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-htvec.c:257:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     257 | IRQCHIP_DECLARE(htvec, "loongson,htvec-1.0", htvec_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_htvec.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-htvec.c:257:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     257 | IRQCHIP_DECLARE(htvec, "loongson,htvec-1.0", htvec_of_init);
         | ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
--
   In file included from include/linux/irqdomain.h:36,
                    from arch/loongarch/include/asm/irq.h:8,
                    from include/linux/irq.h:23,
                    from arch/loongarch/include/asm/hardirq.h:10,
                    from include/linux/hardirq.h:11,
                    from include/linux/interrupt.h:11,
                    from drivers/irqchip/irq-loongson-pch-pic.c:9:
>> include/linux/irqchip.h:24:10: error: implicit declaration of function '__typecheck'; did you mean 'typecheck'? [-Werror=implicit-function-declaration]
      24 |         (__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn)
         |          ^~~~~~~~~~~
   include/linux/of.h:1478:31: note: in definition of macro '_OF_DECLARE'
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                               ^~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   include/linux/irqchip.h:37:45: note: in expansion of macro 'typecheck_irq_init_cb'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |                                             ^~~~~~~~~~~~~~~~~~~~~
   drivers/irqchip/irq-loongson-pch-pic.c:358:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     358 | IRQCHIP_DECLARE(pch_pic, "loongson,pch-pic-1.0", pch_pic_of_init);
         | ^~~~~~~~~~~~~~~
>> include/linux/of.h:1478:30: error: initializer element is not constant
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-pch-pic.c:358:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     358 | IRQCHIP_DECLARE(pch_pic, "loongson,pch-pic-1.0", pch_pic_of_init);
         | ^~~~~~~~~~~~~~~
   include/linux/of.h:1478:30: note: (near initialization for '__of_table_pch_pic.data')
    1478 |                      .data = (fn == (fn_type)NULL) ? fn : fn  }
         |                              ^
   include/linux/of.h:1493:17: note: in expansion of macro '_OF_DECLARE'
    1493 |                 _OF_DECLARE(table, name, compat, fn, of_init_fn_2)
         |                 ^~~~~~~~~~~
   include/linux/irqchip.h:37:9: note: in expansion of macro 'OF_DECLARE_2'
      37 |         OF_DECLARE_2(irqchip, name, compat, typecheck_irq_init_cb(fn))
         |         ^~~~~~~~~~~~
   drivers/irqchip/irq-loongson-pch-pic.c:358:1: note: in expansion of macro 'IRQCHIP_DECLARE'
     358 | IRQCHIP_DECLARE(pch_pic, "loongson,pch-pic-1.0", pch_pic_of_init);
         | ^~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors
..


vim +24 include/linux/irqchip.h

f1985002839af8 Marc Zyngier 2021-10-20  22  
f1985002839af8 Marc Zyngier 2021-10-20  23  #define typecheck_irq_init_cb(fn)					\
f1985002839af8 Marc Zyngier 2021-10-20 @24  	(__typecheck(typecheck_irq_init_cb, &fn) ? fn : fn)
f1985002839af8 Marc Zyngier 2021-10-20  25  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
       [not found] <454f967d452548a9acfa7c0a0872507e@AcuMS.aculab.com>
  2023-07-25 14:14 ` [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness kernel test robot
@ 2023-07-25 14:56 ` kernel test robot
  2023-07-26  9:47   ` David Laight
  2023-07-25 15:58 ` kernel test robot
  2 siblings, 1 reply; 7+ messages in thread
From: kernel test robot @ 2023-07-25 14:56 UTC (permalink / raw)
  To: David Laight, linux-kernel@vger.kernel.org,
	'Andy Shevchenko', 'Andrew Morton',
	Matthew Wilcox (Oracle), Christoph Hellwig, Jason A. Donenfeld
  Cc: llvm, oe-kbuild-all, Linux Memory Management List

Hi David,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on linus/master v6.5-rc3 next-20230725]
[cannot apply to next-20230725 hch-configfs/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/David-Laight/minmax-Add-min_unsigned-a-b-and-max_unsigned-a-b/20230725-180332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link:    https://lore.kernel.org/r/454f967d452548a9acfa7c0a0872507e%40AcuMS.aculab.com
patch subject: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
config: um-allyesconfig (https://download.01.org/0day-ci/archive/20230725/202307252241.W1SwUDKu-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce: (https://download.01.org/0day-ci/archive/20230725/202307252241.W1SwUDKu-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307252241.W1SwUDKu-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from init/calibrate.c:8:
>> include/linux/jiffies.h:427:28: error: implicit declaration of function 'static_assert' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
           return jiffies_to_clock_t(max(0L, delta));
                                     ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
   #define max(x, y)       __careful_cmp(max, x, y)
                           ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
                   ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
                   static_assert(__types_ok(x, y),         \
                   ^
   In file included from init/calibrate.c:8:
   include/linux/jiffies.h:432:26: error: implicit declaration of function 'static_assert' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
           return jiffies_to_msecs(max(0L, delta));
                                   ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
   #define max(x, y)       __careful_cmp(max, x, y)
                           ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
                   ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
                   static_assert(__types_ok(x, y),         \
                   ^
   2 errors generated.
--
   In file included from kernel/workqueue.c:39:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __raw_readb(PCI_IOBASE + addr);
                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
   #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
                                                     ^
   In file included from kernel/workqueue.c:39:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
                                                     ^
   In file included from kernel/workqueue.c:39:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writeb(value, PCI_IOBASE + addr);
                               ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsb(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsw(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsl(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesb(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesw(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesl(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
>> kernel/workqueue.c:4579:9: error: static_assert expression is not an integral constant expression
           return clamp_val(max_active, 1, lim);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:171:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:158:36: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) __careful_clamp((type)(val), (type)(lo), (type)(hi))
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   12 warnings and 1 error generated.
--
   In file included from mm/mm_init.c:17:
   In file included from include/linux/memblock.h:13:
   In file included from arch/um/include/asm/dma.h:5:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __raw_readb(PCI_IOBASE + addr);
                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
   #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
                                                     ^
   In file included from mm/mm_init.c:17:
   In file included from include/linux/memblock.h:13:
   In file included from arch/um/include/asm/dma.h:5:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
                                                     ^
   In file included from mm/mm_init.c:17:
   In file included from include/linux/memblock.h:13:
   In file included from arch/um/include/asm/dma.h:5:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writeb(value, PCI_IOBASE + addr);
                               ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsb(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsw(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsl(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesb(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesw(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesl(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
>> mm/mm_init.c:908:14: error: static_assert expression is not an integral constant expression
           start_pfn = clamp(start_pfn, zone_start_pfn, zone_end_pfn);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:123:28: note: expanded from macro 'clamp'
   #define clamp(val, lo, hi) __careful_clamp(val, lo, hi)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   mm/mm_init.c:909:12: error: static_assert expression is not an integral constant expression
           end_pfn = clamp(end_pfn, zone_start_pfn, zone_end_pfn);
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:123:28: note: expanded from macro 'clamp'
   #define clamp(val, lo, hi) __careful_clamp(val, lo, hi)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   mm/mm_init.c:1145:15: error: static_assert expression is not an integral constant expression
                   start_pfn = clamp(start_pfn, range_start_pfn, range_end_pfn);
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:123:28: note: expanded from macro 'clamp'
   #define clamp(val, lo, hi) __careful_clamp(val, lo, hi)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   mm/mm_init.c:1146:13: error: static_assert expression is not an integral constant expression
                   end_pfn = clamp(end_pfn, range_start_pfn, range_end_pfn);
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:123:28: note: expanded from macro 'clamp'
   #define clamp(val, lo, hi) __careful_clamp(val, lo, hi)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   mm/mm_init.c:1189:16: error: static_assert expression is not an integral constant expression
                           start_pfn = clamp(memblock_region_memory_base_pfn(r),
                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:123:28: note: expanded from macro 'clamp'
   #define clamp(val, lo, hi) __careful_clamp(val, lo, hi)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   mm/mm_init.c:1191:14: error: static_assert expression is not an integral constant expression
                           end_pfn = clamp(memblock_region_memory_end_pfn(r),
                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:123:28: note: expanded from macro 'clamp'
   #define clamp(val, lo, hi) __careful_clamp(val, lo, hi)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
--
   In file included from mm/page_alloc.c:20:
   In file included from include/linux/highmem.h:12:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __raw_readb(PCI_IOBASE + addr);
                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
   #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
                                                     ^
   In file included from mm/page_alloc.c:20:
   In file included from include/linux/highmem.h:12:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
                                                           ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
   #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
                                                     ^
   In file included from mm/page_alloc.c:20:
   In file included from include/linux/highmem.h:12:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writeb(value, PCI_IOBASE + addr);
                               ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
                                                         ~~~~~~~~~~ ^
   include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsb(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsw(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           readsl(PCI_IOBASE + addr, buffer, count);
                  ~~~~~~~~~~ ^
   include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesb(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesw(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
   include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
           writesl(PCI_IOBASE + addr, buffer, count);
                   ~~~~~~~~~~ ^
>> mm/page_alloc.c:2415:10: error: static_assert expression is not an integral constant expression
           batch = clamp(batch, min_nr_free, max_nr_free);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:123:28: note: expanded from macro 'clamp'
   #define clamp(val, lo, hi) __careful_clamp(val, lo, hi)
                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:54:3: note: expanded from macro '__careful_clamp'
                   __clamp_once(val, lo, hi, __UNIQUE_ID(__val),           \
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
                   static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),             \
                   ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
   #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
                                    ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
   #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
                                                          ^~~~
   12 warnings and 1 error generated.
..


vim +/static_assert +427 include/linux/jiffies.h

ae60d6a0e3a919 Nicholas Mc Guire 2015-05-28  420  
9ca308506062fc Baolin Wang       2015-07-29  421  extern unsigned long timespec64_to_jiffies(const struct timespec64 *value);
9ca308506062fc Baolin Wang       2015-07-29  422  extern void jiffies_to_timespec64(const unsigned long jiffies,
9ca308506062fc Baolin Wang       2015-07-29  423  				  struct timespec64 *value);
cbbc719fccdb8c hank              2011-09-20  424  extern clock_t jiffies_to_clock_t(unsigned long x);
a399a8053164ec Eric Dumazet      2012-08-08  425  static inline clock_t jiffies_delta_to_clock_t(long delta)
a399a8053164ec Eric Dumazet      2012-08-08  426  {
a399a8053164ec Eric Dumazet      2012-08-08 @427  	return jiffies_to_clock_t(max(0L, delta));
a399a8053164ec Eric Dumazet      2012-08-08  428  }
a399a8053164ec Eric Dumazet      2012-08-08  429  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
       [not found] <454f967d452548a9acfa7c0a0872507e@AcuMS.aculab.com>
  2023-07-25 14:14 ` [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness kernel test robot
  2023-07-25 14:56 ` kernel test robot
@ 2023-07-25 15:58 ` kernel test robot
  2023-07-26  8:30   ` David Laight
  2 siblings, 1 reply; 7+ messages in thread
From: kernel test robot @ 2023-07-25 15:58 UTC (permalink / raw)
  To: David Laight, linux-kernel@vger.kernel.org,
	'Andy Shevchenko', 'Andrew Morton',
	Matthew Wilcox (Oracle), Christoph Hellwig, Jason A. Donenfeld
  Cc: llvm, oe-kbuild-all, Linux Memory Management List

Hi David,

kernel test robot noticed the following build errors:

[auto build test ERROR on akpm-mm/mm-everything]
[also build test ERROR on linus/master v6.5-rc3 next-20230725]
[cannot apply to next-20230725 hch-configfs/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/David-Laight/minmax-Add-min_unsigned-a-b-and-max_unsigned-a-b/20230725-180332
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link:    https://lore.kernel.org/r/454f967d452548a9acfa7c0a0872507e%40AcuMS.aculab.com
patch subject: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
config: um-allnoconfig (https://download.01.org/0day-ci/archive/20230725/202307252359.Is4T2MXC-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230725/202307252359.Is4T2MXC-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307252359.Is4T2MXC-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from init/calibrate.c:8:
>> include/linux/jiffies.h:427:28: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     427 |         return jiffies_to_clock_t(max(0L, delta));
         |                                   ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   In file included from init/calibrate.c:8:
   include/linux/jiffies.h:432:26: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     432 |         return jiffies_to_msecs(max(0L, delta));
         |                                 ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   2 errors generated.
--
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:7:
   In file included from include/linux/ktime.h:25:
>> include/linux/jiffies.h:427:28: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     427 |         return jiffies_to_clock_t(max(0L, delta));
         |                                   ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:7:
   In file included from include/linux/ktime.h:25:
   include/linux/jiffies.h:432:26: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     432 |         return jiffies_to_msecs(max(0L, delta));
         |                                 ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:10:
   In file included from include/linux/fs.h:33:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:97:11: warning: array index 3 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
      97 |                 return (set->sig[3] | set->sig[2] |
         |                         ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:10:
   In file included from include/linux/fs.h:33:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:97:25: warning: array index 2 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
      97 |                 return (set->sig[3] | set->sig[2] |
         |                                       ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:10:
   In file included from include/linux/fs.h:33:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:98:4: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
      98 |                         set->sig[1] | set->sig[0]) == 0;
         |                         ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:10:
   In file included from include/linux/fs.h:33:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:100:11: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
     100 |                 return (set->sig[1] | set->sig[0]) == 0;
         |                         ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:10:
   In file included from include/linux/fs.h:33:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:113:11: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds]
     113 |                 return  (set1->sig[3] == set2->sig[3]) &&
         |                          ^         ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:10:
   In file included from include/linux/fs.h:33:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:113:27: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds]
     113 |                 return  (set1->sig[3] == set2->sig[3]) &&
         |                                          ^         ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from fs/signalfd.c:22:
   In file included from include/linux/poll.h:10:
--
   In file included from kernel/irq/spurious.c:8:
>> include/linux/jiffies.h:427:28: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     427 |         return jiffies_to_clock_t(max(0L, delta));
         |                                   ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   In file included from kernel/irq/spurious.c:8:
   include/linux/jiffies.h:432:26: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     432 |         return jiffies_to_msecs(max(0L, delta));
         |                                 ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   In file included from kernel/irq/spurious.c:9:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     547 |         val = __raw_readb(PCI_IOBASE + addr);
         |                           ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     560 |         val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
      37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
         |                                                   ^
   In file included from kernel/irq/spurious.c:9:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     573 |         val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
      35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
         |                                                   ^
   In file included from kernel/irq/spurious.c:9:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     584 |         __raw_writeb(value, PCI_IOBASE + addr);
         |                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     594 |         __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     604 |         __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     692 |         readsb(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     700 |         readsw(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     708 |         readsl(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     717 |         writesb(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     726 |         writesw(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     735 |         writesl(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   12 warnings and 2 errors generated.
--
   In file included from kernel/time/alarmtimer.c:16:
   In file included from include/linux/hrtimer.h:15:
   In file included from include/linux/hrtimer_defs.h:5:
   In file included from include/linux/ktime.h:25:
>> include/linux/jiffies.h:427:28: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     427 |         return jiffies_to_clock_t(max(0L, delta));
         |                                   ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   In file included from kernel/time/alarmtimer.c:16:
   In file included from include/linux/hrtimer.h:15:
   In file included from include/linux/hrtimer_defs.h:5:
   In file included from include/linux/ktime.h:25:
   include/linux/jiffies.h:432:26: error: call to undeclared function 'static_assert'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     432 |         return jiffies_to_msecs(max(0L, delta));
         |                                 ^
   include/linux/minmax.h:69:19: note: expanded from macro 'max'
      69 | #define max(x, y)       __careful_cmp(max, x, y)
         |                         ^
   include/linux/minmax.h:36:3: note: expanded from macro '__careful_cmp'
      36 |                 __cmp_once(op, x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y)))
         |                 ^
   include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
      29 |                 static_assert(__types_ok(x, y),         \
         |                 ^
   In file included from kernel/time/alarmtimer.c:18:
   In file included from include/linux/rtc.h:17:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     547 |         val = __raw_readb(PCI_IOBASE + addr);
         |                           ~~~~~~~~~~ ^
   include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     560 |         val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu'
      37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x))
         |                                                   ^
   In file included from kernel/time/alarmtimer.c:18:
   In file included from include/linux/rtc.h:17:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     573 |         val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
         |                                                         ~~~~~~~~~~ ^
   include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu'
      35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x))
         |                                                   ^
   In file included from kernel/time/alarmtimer.c:18:
   In file included from include/linux/rtc.h:17:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/um/include/asm/hardirq.h:5:
   In file included from include/asm-generic/hardirq.h:17:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/um/include/asm/io.h:24:
   include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     584 |         __raw_writeb(value, PCI_IOBASE + addr);
         |                             ~~~~~~~~~~ ^
   include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     594 |         __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     604 |         __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
         |                                                       ~~~~~~~~~~ ^
   include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     692 |         readsb(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     700 |         readsw(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     708 |         readsl(PCI_IOBASE + addr, buffer, count);
         |                ~~~~~~~~~~ ^
   include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     717 |         writesb(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     726 |         writesw(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
     735 |         writesl(PCI_IOBASE + addr, buffer, count);
         |                 ~~~~~~~~~~ ^
   In file included from kernel/time/alarmtimer.c:18:
   In file included from include/linux/rtc.h:38:
   In file included from include/linux/seq_file.h:12:
   In file included from include/linux/fs.h:33:


vim +/static_assert +427 include/linux/jiffies.h

ae60d6a0e3a919 Nicholas Mc Guire 2015-05-28  420  
9ca308506062fc Baolin Wang       2015-07-29  421  extern unsigned long timespec64_to_jiffies(const struct timespec64 *value);
9ca308506062fc Baolin Wang       2015-07-29  422  extern void jiffies_to_timespec64(const unsigned long jiffies,
9ca308506062fc Baolin Wang       2015-07-29  423  				  struct timespec64 *value);
cbbc719fccdb8c hank              2011-09-20  424  extern clock_t jiffies_to_clock_t(unsigned long x);
a399a8053164ec Eric Dumazet      2012-08-08  425  static inline clock_t jiffies_delta_to_clock_t(long delta)
a399a8053164ec Eric Dumazet      2012-08-08  426  {
a399a8053164ec Eric Dumazet      2012-08-08 @427  	return jiffies_to_clock_t(max(0L, delta));
a399a8053164ec Eric Dumazet      2012-08-08  428  }
a399a8053164ec Eric Dumazet      2012-08-08  429  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
  2023-07-25 15:58 ` kernel test robot
@ 2023-07-26  8:30   ` David Laight
  2023-07-26 16:20     ` 'Andy Shevchenko'
  0 siblings, 1 reply; 7+ messages in thread
From: David Laight @ 2023-07-26  8:30 UTC (permalink / raw)
  To: 'kernel test robot', linux-kernel@vger.kernel.org,
	'Andy Shevchenko', 'Andrew Morton',
	Matthew Wilcox (Oracle), Christoph Hellwig, Jason A. Donenfeld
  Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Linux Memory Management List

From: kernel test robot
> Sent: 25 July 2023 16:58
> 
> kernel test robot noticed the following build errors:
> 
...
> 
>    In file included from init/calibrate.c:8:
> >> include/linux/jiffies.h:427:28: error: call to undeclared function 'static_assert'; ISO C99 and
> later do not support implicit function declarations [-Wimplicit-function-declaration]
>      427 |         return jiffies_to_clock_t(max(0L, delta));
>          |                                   ^
...
>    include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
>       29 |                 static_assert(__types_ok(x, y),         \

This is fixed by the earlier patch:
[PATCH v1 1/1] minmax: Fix header inclusions

which adds #include <linux/build_bug.h> and thus defines static_assert().

Can I just assume that will be applied?

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)



^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
  2023-07-25 14:56 ` kernel test robot
@ 2023-07-26  9:47   ` David Laight
  0 siblings, 0 replies; 7+ messages in thread
From: David Laight @ 2023-07-26  9:47 UTC (permalink / raw)
  To: 'kernel test robot', linux-kernel@vger.kernel.org,
	'Andy Shevchenko', 'Andrew Morton',
	Matthew Wilcox (Oracle), Christoph Hellwig, Jason A. Donenfeld
  Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	Linux Memory Management List

From: kernel test robot
> Sent: 25 July 2023 15:57
...
> >> mm/mm_init.c:908:14: error: static_assert expression is not an integral constant expression
>            start_pfn = clamp(start_pfn, zone_start_pfn, zone_end_pfn);
..
>    include/linux/minmax.h:45:17: note: expanded from macro '__clamp_once'
>                    static_assert(!__is_constexpr((lo) > (hi)) || (lo) <= (hi),

That didn't fail in my test builds.
The compiler I was using must short-circuited the ||.
I'll substitute a 'choose_expr' in v2.

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
  2023-07-26  8:30   ` David Laight
@ 2023-07-26 16:20     ` 'Andy Shevchenko'
  2023-07-27 14:01       ` David Laight
  0 siblings, 1 reply; 7+ messages in thread
From: 'Andy Shevchenko' @ 2023-07-26 16:20 UTC (permalink / raw)
  To: David Laight
  Cc: 'kernel test robot', linux-kernel@vger.kernel.org,
	'Andrew Morton', Matthew Wilcox (Oracle),
	Christoph Hellwig, Jason A. Donenfeld, llvm@lists.linux.dev,
	oe-kbuild-all@lists.linux.dev, Linux Memory Management List

On Wed, Jul 26, 2023 at 08:30:59AM +0000, David Laight wrote:
> From: kernel test robot
> > Sent: 25 July 2023 16:58
> > 
> > kernel test robot noticed the following build errors:

...

> >    In file included from init/calibrate.c:8:
> > >> include/linux/jiffies.h:427:28: error: call to undeclared function 'static_assert'; ISO C99 and
> > later do not support implicit function declarations [-Wimplicit-function-declaration]
> >      427 |         return jiffies_to_clock_t(max(0L, delta));
> >          |                                   ^
> ...
> >    include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
> >       29 |                 static_assert(__types_ok(x, y),         \
> 
> This is fixed by the earlier patch:
> [PATCH v1 1/1] minmax: Fix header inclusions
> 
> which adds #include <linux/build_bug.h> and thus defines static_assert().
> 
> Can I just assume that will be applied?

You can test that and reply there with your Tested-by there, it will help it
to be applied.

-- 
With Best Regards,
Andy Shevchenko




^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness.
  2023-07-26 16:20     ` 'Andy Shevchenko'
@ 2023-07-27 14:01       ` David Laight
  0 siblings, 0 replies; 7+ messages in thread
From: David Laight @ 2023-07-27 14:01 UTC (permalink / raw)
  To: 'Andy Shevchenko'
  Cc: 'kernel test robot', linux-kernel@vger.kernel.org,
	'Andrew Morton', Matthew Wilcox (Oracle),
	Christoph Hellwig, Jason A. Donenfeld, llvm@lists.linux.dev,
	oe-kbuild-all@lists.linux.dev, Linux Memory Management List

From: 'Andy Shevchenko'
> Sent: 26 July 2023 17:20
> 
> On Wed, Jul 26, 2023 at 08:30:59AM +0000, David Laight wrote:
> > From: kernel test robot
> > > Sent: 25 July 2023 16:58
> > >
> > > kernel test robot noticed the following build errors:
> 
> ...
> 
> > >    In file included from init/calibrate.c:8:
> > > >> include/linux/jiffies.h:427:28: error: call to undeclared function 'static_assert'; ISO C99 and
> > > later do not support implicit function declarations [-Wimplicit-function-declaration]
> > >      427 |         return jiffies_to_clock_t(max(0L, delta));
> > >          |                                   ^
> > ...
> > >    include/linux/minmax.h:29:3: note: expanded from macro '__cmp_once'
> > >       29 |                 static_assert(__types_ok(x, y),         \
> >
> > This is fixed by the earlier patch:
> > [PATCH v1 1/1] minmax: Fix header inclusions
> >
> > which adds #include <linux/build_bug.h> and thus defines static_assert().
> >
> > Can I just assume that will be applied?
> 
> You can test that and reply there with your Tested-by there, it will help it
> to be applied.

I can check it doesn't break my x86-64 build.

I think the build error was on a 'um' build - not really obvious
in the report.

I suspect everything else gets build_bug.h included from a very
common header file.

On x86-64 (5.10.xxx) by forcing an error I get:
  CC      init/calibrate.o
In file included from linux/include/linux/bits.h:22,
                 from linux/include/linux/bitops.h:5,
                 from linux/include/linux/kernel.h:12,
                 from linux/arch/x86/include/asm/percpu.h:27,
                 from linux/arch/x86/include/asm/current.h:6,
                 from linux/arch/x86/include/asm/processor.h:17,
                 from linux/arch/x86/include/asm/timex.h:5,
                 from linux/include/linux/timex.h:67,
                 from linux/include/linux/time32.h:13,
                 from linux/include/linux/time.h:73,
                 from linux/include/linux/jiffies.h:10,
                 from linux/init/calibrate.c:9:
linux/include/linux/build_bug.h: ...

I can't help feeling some of that chain isn't needed :-)

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2023-07-27 14:03 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <454f967d452548a9acfa7c0a0872507e@AcuMS.aculab.com>
2023-07-25 14:14 ` [PATCH next 2/5] minmax: Allow min()/max()/clamp() if the arguments have the same signedness kernel test robot
2023-07-25 14:56 ` kernel test robot
2023-07-26  9:47   ` David Laight
2023-07-25 15:58 ` kernel test robot
2023-07-26  8:30   ` David Laight
2023-07-26 16:20     ` 'Andy Shevchenko'
2023-07-27 14:01       ` David Laight

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).