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. -- Cheers, Stephen Rothwell