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

From: Stephen Rothwell <[email-masked]>
Date: Thu, 7 Nov 2024 18:24:11 +1100

Hi all,

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

In file included from rust/helpers/helpers.c:26:
rust/helpers/spinlock.c: In function 'rust_helper___spin_lock_init':
rust/helpers/spinlock.c:10:30: error: implicit declaration of function 'spinlock_check'; did you mean 'spin_lock_bh'? [-Wimplicit-function-declaration]
   10 |         __raw_spin_lock_init(spinlock_check(lock), name, key, LD_WAIT_CONFIG);
      |                              ^~~~~~~~~~~~~~
      |                              spin_lock_bh
rust/helpers/spinlock.c:10:30: error: passing argument 1 of '__raw_spin_lock_init' makes pointer from integer without a cast [-Wint-conversion]
   10 |         __raw_spin_lock_init(spinlock_check(lock), name, key, LD_WAIT_CONFIG);
      |                              ^~~~~~~~~~~~~~~~~~~~
      |                              |
      |                              int
In file included from include/linux/wait.h:9,
                 from include/linux/wait_bit.h:8,
                 from include/linux/fs.h:6,
                 from include/linux/highmem.h:5,
                 from include/linux/bvec.h:10,
                 from include/linux/blk_types.h:10,
                 from include/linux/blkdev.h:9,
                 from include/linux/blk-mq.h:5,
                 from rust/helpers/blk.c:3,
                 from rust/helpers/helpers.c:10:
include/linux/spinlock.h:101:52: note: expected 'raw_spinlock_t *' {aka 'struct raw_spinlock *'} but argument is of type 'int'
  101 |   extern void __raw_spin_lock_init(raw_spinlock_t *lock, const char *name,
      |                                    ~~~~~~~~~~~~~~~~^~~~

Probably caused by commit

  35772d627b55 ("sched: Enable PREEMPT_DYNAMIC for PREEMPT_RT")

at least reverting commit

  dafc2d42c0a6 ("Merge branch into tip/master: 'sched/core'")

makes the build work again for me - so I have done that for today.

Without the revert CONFIG_PREEMPT_RT=y, after the revert it is not set
and spinlock_check is only defined for !defined(CONFIG_PREEMPT_RT).

-- 
Cheers,
Stephen Rothwell