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