Subject: linux-next: build failures after merge of the staging tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 4 Jan 2021 12:26:53 +1100

Hi all,

After merging the staging tree, today's linux-next build (arm
multi_v7_defconfig) failed like this:

In file included from include/linux/printk.h:6,
                 from include/linux/kernel.h:16,
                 from drivers/staging/board/kzm9d.c:4:
drivers/staging/board/kzm9d.c:28:17: error: initialization of 'initcall_t' {aka 'int (*)(void)'} from incompatible pointer type 'void (*)(void)' [-Werror=incompatible-pointer-types]
   28 | device_initcall(kzm9d_init);
      |                 ^~~~~~~~~~
include/linux/init.h:197:50: note: in definition of macro '___define_initcall'
  197 |   __attribute__((__section__(#__sec ".init"))) = fn;
      |                                                  ^~
include/linux/init.h:229:30: note: in expansion of macro '__define_initcall'
  229 | #define device_initcall(fn)  __define_initcall(fn, 6)
      |                              ^~~~~~~~~~~~~~~~~
drivers/staging/board/kzm9d.c:28:1: note: in expansion of macro 'device_initcall'
   28 | device_initcall(kzm9d_init);
      | ^~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
In file included from include/linux/printk.h:6,
                 from include/linux/kernel.h:16,
                 from include/asm-generic/bug.h:20,
                 from arch/arm/include/asm/bug.h:60,
                 from include/linux/bug.h:5,
                 from include/linux/thread_info.h:12,
                 from include/asm-generic/current.h:5,
                 from ./arch/arm/include/generated/asm/current.h:1,
                 from include/linux/sched.h:12,
                 from include/linux/ratelimit.h:6,
                 from include/linux/dev_printk.h:16,
                 from include/linux/device.h:15,
                 from include/linux/dma-mapping.h:7,
                 from drivers/staging/board/armadillo800eva.c:12:
drivers/staging/board/armadillo800eva.c:90:17: error: initialization of 'initcall_t' {aka 'int (*)(void)'} from incompatible pointer type 'void (*)(void)' [-Werror=incompatible-pointer-types]
   90 | device_initcall(armadillo800eva_init);
      |                 ^~~~~~~~~~~~~~~~~~~~
include/linux/init.h:197:50: note: in definition of macro '___define_initcall'
  197 |   __attribute__((__section__(#__sec ".init"))) = fn;
      |                                                  ^~
include/linux/init.h:229:30: note: in expansion of macro '__define_initcall'
  229 | #define device_initcall(fn)  __define_initcall(fn, 6)
      |                              ^~~~~~~~~~~~~~~~~
drivers/staging/board/armadillo800eva.c:90:1: note: in expansion of macro 'device_initcall'
   90 | device_initcall(armadillo800eva_init);
      | ^~~~~~~~~~~~~~~

Caused by commit

  850c35bb28ec ("staging: board: Remove macro board_staging")

I have used the staging tree from next-20201223 for today.

-- 
Cheers,
Stephen Rothwell