Re: linux-next: build failure after merge of the staging tree

From: Greg KH
Date: Tue Oct 08 2019 - 08:46:19 EST


On Tue, Oct 08, 2019 at 01:49:07PM +1100, Stephen Rothwell wrote:
> Hi all,
>
> After merging the staging tree, today's linux-next build (powerpc
> allyesconfig) failed like this:
>
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/linux/gpio/consumer.h:5,
> from drivers/staging/wfx/bh.c:8:
> drivers/staging/wfx/bh.c: In function 'rx_helper':
> drivers/staging/wfx/bh.c:86:19: warning: passing argument 1 of '__swab16s' makes pointer from integer without a cast [-Wint-conversion]
> 86 | le16_to_cpus(hif->len);
> include/uapi/linux/byteorder/big_endian.h:97:38: note: in definition of macro '__le16_to_cpus'
> 97 | #define __le16_to_cpus(x) __swab16s((x))
> | ^
> drivers/staging/wfx/bh.c:86:3: note: in expansion of macro 'le16_to_cpus'
> 86 | le16_to_cpus(hif->len);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/linux/gpio/consumer.h:5,
> from drivers/staging/wfx/bh.c:8:
> include/uapi/linux/swab.h:230:37: note: expected '__u16 *' {aka 'short unsigned int *'} but argument is of type 'uint16_t' {aka 'short unsigned int'}
> 230 | static inline void __swab16s(__u16 *p)
> | ~~~~~~~^
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/linux/gpio/consumer.h:5,
> from drivers/staging/wfx/bh.c:8:
> drivers/staging/wfx/bh.c:91:19: warning: passing argument 1 of '__swab16s' makes pointer from integer without a cast [-Wint-conversion]
> 91 | le16_to_cpus(hif->len);
> include/uapi/linux/byteorder/big_endian.h:97:38: note: in definition of macro '__le16_to_cpus'
> 97 | #define __le16_to_cpus(x) __swab16s((x))
> | ^
> drivers/staging/wfx/bh.c:91:3: note: in expansion of macro 'le16_to_cpus'
> 91 | le16_to_cpus(hif->len);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/linux/gpio/consumer.h:5,
> from drivers/staging/wfx/bh.c:8:
> include/uapi/linux/swab.h:230:37: note: expected '__u16 *' {aka 'short unsigned int *'} but argument is of type 'uint16_t' {aka 'short unsigned int'}
> 230 | static inline void __swab16s(__u16 *p)
> | ~~~~~~~^
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/key.c:8:
> drivers/staging/wfx/hif_tx_mib.h: In function 'hif_set_mfp':
> drivers/staging/wfx/hif_tx_mib.h:139:15: error: passing argument 1 of '__swab32s' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 139 | cpu_to_le32s(&val);
> include/uapi/linux/byteorder/big_endian.h:94:38: note: in definition of macro '__cpu_to_le32s'
> 94 | #define __cpu_to_le32s(x) __swab32s((x))
> | ^
> drivers/staging/wfx/hif_tx_mib.h:139:2: note: in expansion of macro 'cpu_to_le32s'
> 139 | cpu_to_le32s(&val);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/key.c:8:
> include/uapi/linux/swab.h:242:46: note: expected '__u32 *' {aka 'unsigned int *'} but argument is of type 'struct hif_mib_protected_mgmt_policy *'
> 242 | static __always_inline void __swab32s(__u32 *p)
> | ~~~~~~~^
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/scan.c:8:
> drivers/staging/wfx/hif_tx_mib.h: In function 'hif_set_mfp':
> drivers/staging/wfx/hif_tx_mib.h:139:15: error: passing argument 1 of '__swab32s' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 139 | cpu_to_le32s(&val);
> include/uapi/linux/byteorder/big_endian.h:94:38: note: in definition of macro '__cpu_to_le32s'
> 94 | #define __cpu_to_le32s(x) __swab32s((x))
> | ^
> drivers/staging/wfx/hif_tx_mib.h:139:2: note: in expansion of macro 'cpu_to_le32s'
> 139 | cpu_to_le32s(&val);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/scan.c:8:
> include/uapi/linux/swab.h:242:46: note: expected '__u32 *' {aka 'unsigned int *'} but argument is of type 'struct hif_mib_protected_mgmt_policy *'
> 242 | static __always_inline void __swab32s(__u32 *p)
> | ~~~~~~~^
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/linux/list.h:9,
> from include/linux/module.h:9,
> from drivers/staging/wfx/main.c:13:
> drivers/staging/wfx/hif_tx_mib.h: In function 'hif_set_mfp':
> drivers/staging/wfx/hif_tx_mib.h:139:15: error: passing argument 1 of '__swab32s' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 139 | cpu_to_le32s(&val);
> include/uapi/linux/byteorder/big_endian.h:94:38: note: in definition of macro '__cpu_to_le32s'
> 94 | #define __cpu_to_le32s(x) __swab32s((x))
> | ^
> drivers/staging/wfx/hif_tx_mib.h:139:2: note: in expansion of macro 'cpu_to_le32s'
> 139 | cpu_to_le32s(&val);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/linux/list.h:9,
> from include/linux/module.h:9,
> from drivers/staging/wfx/main.c:13:
> include/uapi/linux/swab.h:242:46: note: expected '__u32 *' {aka 'unsigned int *'} but argument is of type 'struct hif_mib_protected_mgmt_policy *'
> 242 | static __always_inline void __swab32s(__u32 *p)
> | ~~~~~~~^
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/data_tx.c:8:
> drivers/staging/wfx/hif_tx_mib.h: In function 'hif_set_mfp':
> drivers/staging/wfx/hif_tx_mib.h:139:15: error: passing argument 1 of '__swab32s' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 139 | cpu_to_le32s(&val);
> include/uapi/linux/byteorder/big_endian.h:94:38: note: in definition of macro '__cpu_to_le32s'
> 94 | #define __cpu_to_le32s(x) __swab32s((x))
> | ^
> drivers/staging/wfx/hif_tx_mib.h:139:2: note: in expansion of macro 'cpu_to_le32s'
> 139 | cpu_to_le32s(&val);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/data_tx.c:8:
> include/uapi/linux/swab.h:242:46: note: expected '__u32 *' {aka 'unsigned int *'} but argument is of type 'struct hif_mib_protected_mgmt_policy *'
> 242 | static __always_inline void __swab32s(__u32 *p)
> | ~~~~~~~^
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/data_tx.c:8:
> drivers/staging/wfx/data_tx.c: In function 'wfx_tx_inner':
> include/uapi/linux/byteorder/big_endian.h:35:26: warning: conversion from 'short unsigned int' to 'uint8_t' {aka 'unsigned char'} changes value from '1024' to '0' [-Woverflow]
> 35 | #define __cpu_to_le16(x) ((__force __le16)__swab16((x)))
> | ^
> include/linux/byteorder/generic.h:90:21: note: in expansion of macro '__cpu_to_le16'
> 90 | #define cpu_to_le16 __cpu_to_le16
> | ^~~~~~~~~~~~~
> drivers/staging/wfx/data_tx.c:623:16: note: in expansion of macro 'cpu_to_le16'
> 623 | hif_msg->id = cpu_to_le16(HIF_REQ_ID_TX);
> | ^~~~~~~~~~~
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/sta.c:8:
> drivers/staging/wfx/hif_tx_mib.h: In function 'hif_set_mfp':
> drivers/staging/wfx/hif_tx_mib.h:139:15: error: passing argument 1 of '__swab32s' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 139 | cpu_to_le32s(&val);
> include/uapi/linux/byteorder/big_endian.h:94:38: note: in definition of macro '__cpu_to_le32s'
> 94 | #define __cpu_to_le32s(x) __swab32s((x))
> | ^
> drivers/staging/wfx/hif_tx_mib.h:139:2: note: in expansion of macro 'cpu_to_le32s'
> 139 | cpu_to_le32s(&val);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/asm-generic/bug.h:19,
> from arch/powerpc/include/asm/bug.h:120,
> from include/linux/bug.h:5,
> from include/net/mac80211.h:16,
> from drivers/staging/wfx/sta.c:8:
> include/uapi/linux/swab.h:242:46: note: expected '__u32 *' {aka 'unsigned int *'} but argument is of type 'struct hif_mib_protected_mgmt_policy *'
> 242 | static __always_inline void __swab32s(__u32 *p)
> | ~~~~~~~^
> In file included from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/linux/list.h:9,
> from include/linux/wait.h:7,
> from include/linux/wait_bit.h:8,
> from include/linux/fs.h:6,
> from include/linux/debugfs.h:15,
> from drivers/staging/wfx/debug.c:8:
> drivers/staging/wfx/hif_tx_mib.h: In function 'hif_set_mfp':
> drivers/staging/wfx/hif_tx_mib.h:139:15: error: passing argument 1 of '__swab32s' from incompatible pointer type [-Werror=incompatible-pointer-types]
> 139 | cpu_to_le32s(&val);
> include/uapi/linux/byteorder/big_endian.h:94:38: note: in definition of macro '__cpu_to_le32s'
> 94 | #define __cpu_to_le32s(x) __swab32s((x))
> | ^
> drivers/staging/wfx/hif_tx_mib.h:139:2: note: in expansion of macro 'cpu_to_le32s'
> 139 | cpu_to_le32s(&val);
> | ^~~~~~~~~~~~
> In file included from include/linux/swab.h:5,
> from include/uapi/linux/byteorder/big_endian.h:13,
> from include/linux/byteorder/big_endian.h:5,
> from arch/powerpc/include/uapi/asm/byteorder.h:14,
> from include/asm-generic/bitops/le.h:6,
> from arch/powerpc/include/asm/bitops.h:243,
> from include/linux/bitops.h:26,
> from include/linux/kernel.h:12,
> from include/linux/list.h:9,
> from include/linux/wait.h:7,
> from include/linux/wait_bit.h:8,
> from include/linux/fs.h:6,
> from include/linux/debugfs.h:15,
> from drivers/staging/wfx/debug.c:8:
> include/uapi/linux/swab.h:242:46: note: expected '__u32 *' {aka 'unsigned int *'} but argument is of type 'struct hif_mib_protected_mgmt_policy *'
> 242 | static __always_inline void __swab32s(__u32 *p)
> | ~~~~~~~^
>
> Caused by commits from the staging tree.
>
> I have disabled CONFIG_WFX for today.

Should be fixed soon, thanks for the report.

greg k-h