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

From: Mark Brown <[email-masked]>
Date: Fri, 21 Jun 2024 16:11:03 +0100

Hi all,

After merging the mmc tree, today's linux-next build (arm64 defconfig)
failed like this:

In file included from /tmp/next/build/include/linux/bits.h:22,
                 from /tmp/next/build/include/linux/bitops.h:6,
                 from /tmp/next/build/drivers/mmc/host/renesas_sdhi_internal_dmac.c:10:
/tmp/next/build/drivers/mmc/host/renesas_sdhi_internal_dmac.c: In function 'renesas_sdhi_internal_dmac_complete_work_fn':
/tmp/next/build/include/linux/container_of.h:20:54: error: 'struct tmio_mmc_host' has no member named 'dma_complete'
   20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |                                                      ^~
/tmp/next/build/include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
   78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
      |                                                        ^~~~
/tmp/next/build/include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert'
   20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |         ^~~~~~~~~~~~~
/tmp/next/build/include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
   20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |                       ^~~~~~~~~~~
/tmp/next/build/include/linux/workqueue.h:535:9: note: in expansion of macro 'container_of'
  535 |         container_of(callback_work, typeof(*var), work_fieldname)
      |         ^~~~~~~~~~~~
/tmp/next/build/drivers/mmc/host/renesas_sdhi_internal_dmac.c:489:38: note: in expansion of macro 'from_work'
  489 |         struct tmio_mmc_host *host = from_work(host, t, dma_complete);
      |                                      ^~~~~~~~~
/tmp/next/build/include/linux/compiler_types.h:451:27: error: expression in static assertion is not an integer
  451 | #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/next/build/include/linux/build_bug.h:78:56: note: in definition of macro '__static_assert'
   78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
      |                                                        ^~~~
/tmp/next/build/include/linux/container_of.h:20:9: note: in expansion of macro 'static_assert'
   20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |         ^~~~~~~~~~~~~
/tmp/next/build/include/linux/container_of.h:20:23: note: in expansion of macro '__same_type'
   20 |         static_assert(__same_type(*(ptr), ((type *)0)->member) ||       \
      |                       ^~~~~~~~~~~
/tmp/next/build/include/linux/workqueue.h:535:9: note: in expansion of macro 'container_of'
  535 |         container_of(callback_work, typeof(*var), work_fieldname)
      |         ^~~~~~~~~~~~
/tmp/next/build/drivers/mmc/host/renesas_sdhi_internal_dmac.c:489:38: note: in expansion of macro 'from_work'
  489 |         struct tmio_mmc_host *host = from_work(host, t, dma_complete);
      |                                      ^~~~~~~~~
In file included from /tmp/next/build/include/uapi/linux/posix_types.h:5,
                 from /tmp/next/build/include/uapi/linux/types.h:14,
                 from /tmp/next/build/include/linux/types.h:6,
                 from /tmp/next/build/include/linux/kasan-checks.h:5,
                 from /tmp/next/build/include/asm-generic/rwonce.h:26,
                 from /tmp/next/build/arch/arm64/include/asm/rwonce.h:71,
                 from /tmp/next/build/include/linux/compiler.h:299,
                 from /tmp/next/build/include/linux/build_bug.h:5,
                 from /tmp/next/build/include/linux/bits.h:22,
                 from /tmp/next/build/include/linux/bitops.h:6,
                 from /tmp/next/build/drivers/mmc/host/renesas_sdhi_internal_dmac.c:10:
/tmp/next/build/include/linux/stddef.h:16:33: error: 'struct tmio_mmc_host' has no member named 'dma_complete'
   16 | #define offsetof(TYPE, MEMBER)  __builtin_offsetof(TYPE, MEMBER)
      |                                 ^~~~~~~~~~~~~~~~~~
/tmp/next/build/include/linux/container_of.h:23:28: note: in expansion of macro 'offsetof'
   23 |         ((type *)(__mptr - offsetof(type, member))); })
      |                            ^~~~~~~~
/tmp/next/build/include/linux/workqueue.h:535:9: note: in expansion of macro 'container_of'
  535 |         container_of(callback_work, typeof(*var), work_fieldname)
      |         ^~~~~~~~~~~~
/tmp/next/build/drivers/mmc/host/renesas_sdhi_internal_dmac.c:489:38: note: in expansion of macro 'from_work'
  489 |         struct tmio_mmc_host *host = from_work(host, t, dma_complete);
      |                                      ^~~~~~~~~
make[6]: *** [/tmp/next/build/scripts/Makefile.build:244: drivers/mmc/host/renesas_sdhi_internal_dmac.o] Error 1
make[6]: *** Waiting for unfinished jobs....
make[5]: *** [/tmp/next/build/scripts/Makefile.build:485: drivers/mmc/host] Error 2
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [/tmp/next/build/scripts/Makefile.build:485: drivers/mmc] Error 2
make[4]: *** Waiting for unfinished jobs....
make[3]: *** [/tmp/next/build/scripts/Makefile.build:485: drivers] Error 2
make[2]: *** [/tmp/next/build/Makefile:1934: .] Error 2
make[1]: *** [/tmp/next/build/Makefile:240: __sub-make] Error 2
make: *** [Makefile:240: __sub-make] Error 2
Command exited with non-zero status 2

Caused by commit

  74a3fe7c3784c8cae ("mmc: Convert from tasklet to BH workqueue")

I have used the tree from yesterday instead.