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

From: Stephen Rothwell <[email-masked]>
Date: Wed, 27 Jan 2021 20:41:26 +1100

Hi all,

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

In file included from include/linux/wait.h:9,
                 from include/linux/pid.h:6,
                 from include/linux/sched.h:14,
                 from include/linux/ratelimit.h:6,
                 from include/linux/dev_printk.h:16,
                 from include/linux/device.h:15,
                 from drivers/pinctrl/samsung/pinctrl-s3c64xx.c:14:
drivers/pinctrl/samsung/pinctrl-s3c64xx.c: In function 's3c64xx_irq_set_function':
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:289:20: error: passing argument 1 of 'spinlock_check' from incompatible pointer type [-Werror=incompatible-pointer-types]
  289 |  spin_lock_irqsave(&bank->slock, flags);
      |                    ^~~~~~~~~~~~
      |                    |
      |                    raw_spinlock_t * {aka struct raw_spinlock *}
include/linux/spinlock.h:252:34: note: in definition of macro 'raw_spin_lock_irqsave'
  252 |   flags = _raw_spin_lock_irqsave(lock); \
      |                                  ^~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:289:2: note: in expansion of macro 'spin_lock_irqsave'
  289 |  spin_lock_irqsave(&bank->slock, flags);
      |  ^~~~~~~~~~~~~~~~~
In file included from include/linux/wait.h:9,
                 from include/linux/pid.h:6,
                 from include/linux/sched.h:14,
                 from include/linux/ratelimit.h:6,
                 from include/linux/dev_printk.h:16,
                 from include/linux/device.h:15,
                 from drivers/pinctrl/samsung/pinctrl-s3c64xx.c:14:
include/linux/spinlock.h:327:67: note: expected 'spinlock_t *' {aka 'struct spinlock *'} but argument is of type 'raw_spinlock_t *' {aka 'struct raw_spinlock *'}
  327 | static __always_inline raw_spinlock_t *spinlock_check(spinlock_t *lock)
      |                                                       ~~~~~~~~~~~~^~~~
drivers/pinctrl/samsung/pinctrl-s3c64xx.c:296:25: error: passing argument 1 of 'spin_unlock_irqrestore' from incompatible pointer type [-Werror=incompatible-pointer-types]
  296 |  spin_unlock_irqrestore(&bank->slock, flags);
      |                         ^~~~~~~~~~~~
      |                         |
      |                         raw_spinlock_t * {aka struct raw_spinlock *}
In file included from include/linux/wait.h:9,
                 from include/linux/pid.h:6,
                 from include/linux/sched.h:14,
                 from include/linux/ratelimit.h:6,
                 from include/linux/dev_printk.h:16,
                 from include/linux/device.h:15,
                 from drivers/pinctrl/samsung/pinctrl-s3c64xx.c:14:
include/linux/spinlock.h:407:64: note: expected 'spinlock_t *' {aka 'struct spinlock *'} but argument is of type 'raw_spinlock_t *' {aka 'struct raw_spinlock *'}
  407 | static __always_inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags)
      |                                                    ~~~~~~~~~~~~^~~~

Caused by commit

  1f306ecbe0f6 ("pinctrl: samsung: use raw_spinlock for locking")

I have used the pinctrl tree from next-20210125 for today.
-- 
Cheers,
Stephen Rothwell