Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [litex-hub:litex-rebase 8/18] drivers/gpio/gpio-litex.c:157:2: error: use of undeclared identifier 'class_spin_lock_irqsave_t'; did you mean '_raw_spin_lock_irqsave'?
@ 2025-04-02  7:11 kernel test robot
  2025-04-02 14:40 ` Gabriel L. Somlo
  0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2025-04-02  7:11 UTC (permalink / raw)
  To: Gabriel Somlo; +Cc: llvm, oe-kbuild-all

tree:   https://github.com/litex-hub/linux litex-rebase
head:   27cd831fb75ec1b1667350dcdad43e58d34ac9f5
commit: 639fd3757f161027e4f8ec56033e598bf06d7923 [8/18] fixup: use scoped_guard() with LiteGPIO
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20250402/202504021531.LSDxngLf-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250402/202504021531.LSDxngLf-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/202504021531.LSDxngLf-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/gpio/gpio-litex.c:157:2: error: use of undeclared identifier 'class_spin_lock_irqsave_t'; did you mean '_raw_spin_lock_irqsave'?
     157 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:7: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |              ^
   include/linux/cleanup.h:258:2: note: expanded from macro 'CLASS'
     258 |         class_##_name##_t var __cleanup(class_##_name##_destructor) =   \
         |         ^
   <scratch space>:159:1: note: expanded from here
     159 | class_spin_lock_irqsave_t
         | ^
   include/linux/spinlock_api_smp.h:32:26: note: '_raw_spin_lock_irqsave' declared here
      32 | unsigned long __lockfunc _raw_spin_lock_irqsave(raw_spinlock_t *lock)
         |                          ^
>> drivers/gpio/gpio-litex.c:157:2: error: expected ';' in 'for' statement specifier
     157 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:20: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |                           ^
>> drivers/gpio/gpio-litex.c:157:2: error: use of undeclared identifier 'scope'; did you mean 'sclp'?
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:20: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |                           ^
   arch/s390/include/asm/sclp.h:119:25: note: 'sclp' declared here
     119 | extern struct sclp_info sclp;
         |                         ^
>> drivers/gpio/gpio-litex.c:157:2: error: expected ';' in 'for' statement specifier
     157 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:7: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |              ^
   include/linux/cleanup.h:258:24: note: expanded from macro 'CLASS'
     258 |         class_##_name##_t var __cleanup(class_##_name##_destructor) =   \
         |                               ^
   include/linux/compiler-clang.h:15:25: note: expanded from macro '__cleanup'
      15 | #define __cleanup(func) __maybe_unused __attribute__((__cleanup__(func)))
         |                         ^
   include/linux/compiler_attributes.h:343:41: note: expanded from macro '__maybe_unused'
     343 | #define __maybe_unused                  __attribute__((__unused__))
         |                                         ^
>> drivers/gpio/gpio-litex.c:157:2: error: call to undeclared function 'class_spin_lock_irqsave_lock_ptr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:7: note: expanded from macro '__scoped_guard'
     335 |              __guard_ptr(_name)(&scope) || !__is_cond_ptr(_name);       \
         |              ^
   include/linux/cleanup.h:321:28: note: expanded from macro '__guard_ptr'
     321 | #define __guard_ptr(_name) class_##_name##_lock_ptr
         |                            ^
   <scratch space>:165:1: note: expanded from here
     165 | class_spin_lock_irqsave_lock_ptr
         | ^
   drivers/gpio/gpio-litex.c:157:2: note: did you mean 'class_spinlock_irqsave_lock_ptr'?
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:7: note: expanded from macro '__scoped_guard'
     335 |              __guard_ptr(_name)(&scope) || !__is_cond_ptr(_name);       \
         |              ^
   include/linux/cleanup.h:321:28: note: expanded from macro '__guard_ptr'
     321 | #define __guard_ptr(_name) class_##_name##_lock_ptr
         |                            ^
   <scratch space>:165:1: note: expanded from here
     165 | class_spin_lock_irqsave_lock_ptr
         | ^
   include/linux/spinlock.h:585:1: note: 'class_spinlock_irqsave_lock_ptr' declared here
     585 | DEFINE_LOCK_GUARD_1(spinlock_irqsave, spinlock_t,
         | ^
   include/linux/cleanup.h:408:49: note: expanded from macro 'DEFINE_LOCK_GUARD_1'
     408 | __DEFINE_CLASS_IS_CONDITIONAL(_name, false);                            \
         |                                                                         ^
   include/linux/cleanup.h:387:10: note: expanded from macro '\
   __DEFINE_UNLOCK_GUARD'
     387 |                                                                         \
         |                                                                         ^
   include/linux/cleanup.h:295:23: note: expanded from macro '\
   __DEFINE_GUARD_LOCK_PTR'
     295 |         static inline void * class_##_name##_lock_ptr(class_##_name##_t *_T) \
         |                              ^
   <scratch space>:133:1: note: expanded from here
     133 | class_spinlock_irqsave_lock_ptr
         | ^
>> drivers/gpio/gpio-litex.c:157:2: error: use of undeclared identifier 'scope'; did you mean 'sclp'?
     157 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:27: note: expanded from macro '__scoped_guard'
     335 |              __guard_ptr(_name)(&scope) || !__is_cond_ptr(_name);       \
         |                                  ^
   arch/s390/include/asm/sclp.h:119:25: note: 'sclp' declared here
     119 | extern struct sclp_info sclp;
         |                         ^
>> drivers/gpio/gpio-litex.c:157:2: error: use of undeclared identifier 'class_spin_lock_irqsave_is_conditional'; did you mean 'class_spinlock_irqsave_is_conditional'?
     157 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:38: note: expanded from macro '__scoped_guard'
     335 |              __guard_ptr(_name)(&scope) || !__is_cond_ptr(_name);       \
         |                                             ^
   include/linux/cleanup.h:322:30: note: expanded from macro '__is_cond_ptr'
     322 | #define __is_cond_ptr(_name) class_##_name##_is_conditional
         |                              ^
   <scratch space>:167:1: note: expanded from here
     167 | class_spin_lock_irqsave_is_conditional
         | ^
   include/linux/spinlock.h:585:1: note: 'class_spinlock_irqsave_is_conditional' declared here
     585 | DEFINE_LOCK_GUARD_1(spinlock_irqsave, spinlock_t,
         | ^
   include/linux/cleanup.h:407:65: note: expanded from macro 'DEFINE_LOCK_GUARD_1'
     407 | #define DEFINE_LOCK_GUARD_1(_name, _type, _lock, _unlock, ...)          \
         |                                                                         ^
   include/linux/cleanup.h:292:34: note: expanded from macro '\
   __DEFINE_CLASS_IS_CONDITIONAL'
     292 | static __maybe_unused const bool class_##_name##_is_conditional = _is_cond
         |                                  ^
   <scratch space>:125:1: note: expanded from here
     125 | class_spinlock_irqsave_is_conditional
         | ^
>> drivers/gpio/gpio-litex.c:157:2: error: expected ')'
     157 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:58: note: expanded from macro '__scoped_guard'
     335 |              __guard_ptr(_name)(&scope) || !__is_cond_ptr(_name);       \
         |                                                                 ^
   drivers/gpio/gpio-litex.c:157:2: note: to match this '('
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:6: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |             ^
>> drivers/gpio/gpio-litex.c:157:2: error: expected ';' after expression
     157 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:336:25: note: expanded from macro '__scoped_guard'
     336 |              ({ goto _label; }))                                        \
         |                                ^
>> drivers/gpio/gpio-litex.c:157:2: error: expected expression
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:336:25: note: expanded from macro '__scoped_guard'
     336 |              ({ goto _label; }))                                        \
         |                                ^
>> drivers/gpio/gpio-litex.c:157:2: error: use of undeclared label '__UNIQUE_ID_label556'
   include/linux/cleanup.h:343:24: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |                               ^
   include/linux/compiler.h:166:29: note: expanded from macro '__UNIQUE_ID'
     166 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
         |                             ^
   include/linux/compiler_types.h:84:22: note: expanded from macro '__PASTE'
      84 | #define __PASTE(a,b) ___PASTE(a,b)
         |                      ^
   include/linux/compiler_types.h:83:23: note: expanded from macro '___PASTE'
      83 | #define ___PASTE(a,b) a##b
         |                       ^
   <scratch space>:157:1: note: expanded from here
     157 | __UNIQUE_ID_label556
         | ^
   drivers/gpio/gpio-litex.c:173:2: error: use of undeclared identifier 'class_spin_lock_irqsave_t'; did you mean '_raw_spin_lock_irqsave'?
     173 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:7: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |              ^
   include/linux/cleanup.h:258:2: note: expanded from macro 'CLASS'
     258 |         class_##_name##_t var __cleanup(class_##_name##_destructor) =   \
         |         ^
   <scratch space>:173:1: note: expanded from here
     173 | class_spin_lock_irqsave_t
         | ^
   include/linux/spinlock_api_smp.h:32:26: note: '_raw_spin_lock_irqsave' declared here
      32 | unsigned long __lockfunc _raw_spin_lock_irqsave(raw_spinlock_t *lock)
         |                          ^
   drivers/gpio/gpio-litex.c:173:2: error: expected ';' in 'for' statement specifier
     173 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:20: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |                           ^
   drivers/gpio/gpio-litex.c:173:2: error: use of undeclared identifier 'scope'; did you mean 'sclp'?
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:20: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |                           ^
   arch/s390/include/asm/sclp.h:119:25: note: 'sclp' declared here
     119 | extern struct sclp_info sclp;
         |                         ^
   drivers/gpio/gpio-litex.c:173:2: error: expected ';' in 'for' statement specifier
     173 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:334:7: note: expanded from macro '__scoped_guard'
     334 |         for (CLASS(_name, scope)(args);                                 \
         |              ^
   include/linux/cleanup.h:258:24: note: expanded from macro 'CLASS'
     258 |         class_##_name##_t var __cleanup(class_##_name##_destructor) =   \
         |                               ^
   include/linux/compiler-clang.h:15:25: note: expanded from macro '__cleanup'
      15 | #define __cleanup(func) __maybe_unused __attribute__((__cleanup__(func)))
         |                         ^
   include/linux/compiler_attributes.h:343:41: note: expanded from macro '__maybe_unused'
     343 | #define __maybe_unused                  __attribute__((__unused__))
         |                                         ^
   drivers/gpio/gpio-litex.c:173:2: error: call to undeclared function 'class_spin_lock_irqsave_lock_ptr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:7: note: expanded from macro '__scoped_guard'
     335 |              __guard_ptr(_name)(&scope) || !__is_cond_ptr(_name);       \
         |              ^
   include/linux/cleanup.h:321:28: note: expanded from macro '__guard_ptr'
     321 | #define __guard_ptr(_name) class_##_name##_lock_ptr
         |                            ^
   <scratch space>:179:1: note: expanded from here
     179 | class_spin_lock_irqsave_lock_ptr
         | ^
   drivers/gpio/gpio-litex.c:173:2: error: use of undeclared identifier 'scope'; did you mean 'sclp'?
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:27: note: expanded from macro '__scoped_guard'
     335 |              __guard_ptr(_name)(&scope) || !__is_cond_ptr(_name);       \
         |                                  ^
   arch/s390/include/asm/sclp.h:119:25: note: 'sclp' declared here
     119 | extern struct sclp_info sclp;
         |                         ^
   drivers/gpio/gpio-litex.c:173:2: error: use of undeclared identifier 'class_spin_lock_irqsave_is_conditional'; did you mean 'class_spinlock_irqsave_is_conditional'?
     173 |         scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
         |         ^
   include/linux/cleanup.h:343:2: note: expanded from macro 'scoped_guard'
     343 |         __scoped_guard(_name, __UNIQUE_ID(label), args)
         |         ^
   include/linux/cleanup.h:335:38: note: expanded from macro '__scoped_guard'


vim +157 drivers/gpio/gpio-litex.c

   145	
   146	static void litex_gpio_irq_unmask(struct irq_data *idata)
   147	{
   148		struct gpio_chip *chip = irq_data_get_irq_chip_data(idata);
   149		struct litex_gpio *gpio_s = gpiochip_get_data(chip);
   150		int offset = irqd_to_hwirq(idata) % GPIO_PINS_MAX;
   151		u32 bit = BIT(offset);
   152		u32 enable;
   153	
   154		gpiochip_enable_irq(chip, idata->hwirq);
   155	
   156		/* Clear any sticky pending interrupts */
 > 157		scoped_guard(spin_lock_irqsave, &gpio_s->gpio_lock) {
   158			litex_gpio_set_reg(gpio_s, LITEX_GPIO_PENDING_OFFSET, bit);
   159			enable = litex_gpio_get_reg(gpio_s, LITEX_GPIO_ENABLE_OFFSET);
   160			enable |= bit;
   161			litex_gpio_set_reg(gpio_s, LITEX_GPIO_ENABLE_OFFSET, enable);
   162		}
   163	}
   164	

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

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

end of thread, other threads:[~2025-04-02 14:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-02  7:11 [litex-hub:litex-rebase 8/18] drivers/gpio/gpio-litex.c:157:2: error: use of undeclared identifier 'class_spin_lock_irqsave_t'; did you mean '_raw_spin_lock_irqsave'? kernel test robot
2025-04-02 14:40 ` Gabriel L. Somlo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox