drivers/net/wireless/mediatek/mt76/mt7615/mac.c:18:10: note: in expansion of macro 'FIELD_GET'

From: kbuild test robot
Date: Sat Sep 21 2019 - 13:13:45 EST


tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f97c81dc6ca5996560b3944064f63fc87eb18d00
commit: bf92e76851009e6bf082db9e9de9b0ab9320cf26 mt76: mt7615: add support for per-chain signal strength reporting
date: 3 months ago
config: x86_64-randconfig-g003-201938 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
git checkout bf92e76851009e6bf082db9e9de9b0ab9320cf26
# save the attached .config to linux build tree
make ARCH=x86_64

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All error/warnings (new ones prefixed by >>):

Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/arch_hweight.h:__arch_hweight32
Cyclomatic Complexity 1 arch/x86/include/asm/arch_hweight.h:__arch_hweight8
Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_add
Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_sub
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock_bh
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_bh
Cyclomatic Complexity 1 include/linux/rcupdate.h:__rcu_read_lock
Cyclomatic Complexity 1 include/linux/rcupdate.h:__rcu_read_unlock
Cyclomatic Complexity 1 include/linux/rcutiny.h:rcu_is_watching
Cyclomatic Complexity 1 include/linux/dma-debug.h:debug_dma_unmap_page
Cyclomatic Complexity 1 include/linux/dma-mapping.h:valid_dma_direction
Cyclomatic Complexity 1 arch/x86/include/asm/dma-mapping.h:get_arch_dma_ops
Cyclomatic Complexity 2 include/linux/dma-mapping.h:get_dma_ops
Cyclomatic Complexity 1 include/linux/skbuff.h:skb_get_queue_mapping
Cyclomatic Complexity 1 include/linux/etherdevice.h:is_multicast_ether_addr
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_has_a4
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_mgmt
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_data
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_data_qos
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_beacon
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_back_req
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_qos_nullfunc
Cyclomatic Complexity 2 include/linux/ieee80211.h:ieee80211_get_qos_ctl
Cyclomatic Complexity 1 include/net/mac80211.h:ieee80211_rate_get_vht_mcs
Cyclomatic Complexity 1 include/net/mac80211.h:ieee80211_rate_get_vht_nss
Cyclomatic Complexity 1 include/net/mac80211.h:IEEE80211_SKB_CB
Cyclomatic Complexity 1 drivers/net/wireless/mediatek/mt76/mt7615/../mt76.h:mt76_get_txwi_ptr
Cyclomatic Complexity 3 drivers/net/wireless/mediatek/mt76/mt7615/../mt76.h:wcid_to_sta
Cyclomatic Complexity 2 include/net/mac80211.h:ieee80211_tx_info_clear_status
Cyclomatic Complexity 21 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_fill_txs
Cyclomatic Complexity 8 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_rx_get_wcid
Cyclomatic Complexity 4 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:to_rssi
Cyclomatic Complexity 1 include/linux/netdevice.h:dev_kfree_skb_any
Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_is_direct
Cyclomatic Complexity 3 include/linux/dma-mapping.h:dma_unmap_page_attrs
Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_unmap_single_attrs
Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_lock_acquire
Cyclomatic Complexity 4 include/linux/rcupdate.h:rcu_read_lock
Cyclomatic Complexity 6 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_mac_add_txs_skb
Cyclomatic Complexity 1 include/net/mac80211.h:ieee80211_tx_status_noskb
Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_lock_release
Cyclomatic Complexity 4 include/linux/rcupdate.h:rcu_read_unlock
Cyclomatic Complexity 37 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_mac_fill_rx
Cyclomatic Complexity 1 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_sta_ps
Cyclomatic Complexity 5 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_tx_complete_skb
Cyclomatic Complexity 16 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_mac_tx_rate_val
Cyclomatic Complexity 47 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_mac_write_txwi
Cyclomatic Complexity 2 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_txp_skb_unmap
Cyclomatic Complexity 8 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_tx_prepare_skb
Cyclomatic Complexity 10 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_mac_add_txs
Cyclomatic Complexity 4 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_mac_tx_free
Cyclomatic Complexity 1 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:mt7615_mac_work
Cyclomatic Complexity 1 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:_GLOBAL__sub_I_00100_0_mt7615_mac_fill_rx
Cyclomatic Complexity 1 drivers/net/wireless/mediatek/mt76/mt7615/mac.c:_GLOBAL__sub_D_00100_1_mt7615_mac_fill_rx
In file included from include/linux/export.h:45:0,
from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from include/linux/skbuff.h:17,
from include/linux/if_ether.h:23,
from include/linux/etherdevice.h:25,
from drivers/net/wireless/mediatek/mt76/mt7615/mac.c:10:
drivers/net/wireless/mediatek/mt76/mt7615/mac.c: In function 'to_rssi':
>> include/linux/compiler.h:345:38: error: call to '__compiletime_assert_18' declared with attribute error: BUILD_BUG_ON failed: (((field) + (1ULL << (__builtin_ffsll(field) - 1))) & (((field) + (1ULL << (__builtin_ffsll(field) - 1))) - 1)) != 0
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/compiler.h:326:4: note: in definition of macro '__compiletime_assert'
prefix ## suffix(); \
^~~~~~
include/linux/compiler.h:345:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:54:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG(!__builtin_constant_p(_mask), \
^~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:103:3: note: in expansion of macro '__BF_FIELD_CHECK'
__BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
^~~~~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt7615/mac.c:18:10: note: in expansion of macro 'FIELD_GET'
return (FIELD_GET(field, rxv) - 220) / 2;
^~~~~~~~~
>> include/linux/compiler.h:345:38: error: call to '__compiletime_assert_18' declared with attribute error: BUILD_BUG_ON failed: (((field) + (1ULL << (__builtin_ffsll(field) - 1))) & (((field) + (1ULL << (__builtin_ffsll(field) - 1))) - 1)) != 0
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/compiler.h:326:4: note: in definition of macro '__compiletime_assert'
prefix ## suffix(); \
^~~~~~
include/linux/compiler.h:345:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^~~~~~~~~~~~~~~~
>> include/linux/build_bug.h:21:2: note: in expansion of macro 'BUILD_BUG_ON'
BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
^~~~~~~~~~~~
>> include/linux/bitfield.h:62:3: note: in expansion of macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
__BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:103:3: note: in expansion of macro '__BF_FIELD_CHECK'
__BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
^~~~~~~~~~~~~~~~
>> drivers/net/wireless/mediatek/mt76/mt7615/mac.c:18:10: note: in expansion of macro 'FIELD_GET'
return (FIELD_GET(field, rxv) - 220) / 2;
^~~~~~~~~
--
Cyclomatic Complexity 5 include/linux/compiler.h:__read_once_size
Cyclomatic Complexity 1 arch/x86/include/asm/bitops.h:constant_test_bit
Cyclomatic Complexity 1 arch/x86/include/asm/arch_hweight.h:__arch_hweight32
Cyclomatic Complexity 1 arch/x86/include/asm/arch_hweight.h:__arch_hweight8
Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_add
Cyclomatic Complexity 5 arch/x86/include/asm/preempt.h:__preempt_count_sub
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_lock_bh
Cyclomatic Complexity 1 include/linux/spinlock.h:spin_unlock_bh
Cyclomatic Complexity 1 include/linux/rcupdate.h:__rcu_read_lock
Cyclomatic Complexity 1 include/linux/rcupdate.h:__rcu_read_unlock
Cyclomatic Complexity 1 include/linux/rcutiny.h:rcu_is_watching
Cyclomatic Complexity 1 include/linux/dma-debug.h:debug_dma_unmap_page
Cyclomatic Complexity 1 include/linux/dma-mapping.h:valid_dma_direction
Cyclomatic Complexity 1 arch/x86/include/asm/dma-mapping.h:get_arch_dma_ops
Cyclomatic Complexity 2 include/linux/dma-mapping.h:get_dma_ops
Cyclomatic Complexity 1 include/linux/skbuff.h:skb_get_queue_mapping
Cyclomatic Complexity 1 include/linux/etherdevice.h:is_multicast_ether_addr
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_has_a4
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_mgmt
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_data
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_data_qos
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_beacon
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_back_req
Cyclomatic Complexity 1 include/linux/ieee80211.h:ieee80211_is_qos_nullfunc
Cyclomatic Complexity 2 include/linux/ieee80211.h:ieee80211_get_qos_ctl
Cyclomatic Complexity 1 include/net/mac80211.h:ieee80211_rate_get_vht_mcs
Cyclomatic Complexity 1 include/net/mac80211.h:ieee80211_rate_get_vht_nss
Cyclomatic Complexity 1 include/net/mac80211.h:IEEE80211_SKB_CB
Cyclomatic Complexity 1 drivers/net/wireless//mediatek/mt76/mt7615/../mt76.h:mt76_get_txwi_ptr
Cyclomatic Complexity 3 drivers/net/wireless//mediatek/mt76/mt7615/../mt76.h:wcid_to_sta
Cyclomatic Complexity 2 include/net/mac80211.h:ieee80211_tx_info_clear_status
Cyclomatic Complexity 21 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_fill_txs
Cyclomatic Complexity 8 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_rx_get_wcid
Cyclomatic Complexity 4 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:to_rssi
Cyclomatic Complexity 1 include/linux/netdevice.h:dev_kfree_skb_any
Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_is_direct
Cyclomatic Complexity 3 include/linux/dma-mapping.h:dma_unmap_page_attrs
Cyclomatic Complexity 1 include/linux/dma-mapping.h:dma_unmap_single_attrs
Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_lock_acquire
Cyclomatic Complexity 4 include/linux/rcupdate.h:rcu_read_lock
Cyclomatic Complexity 6 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_mac_add_txs_skb
Cyclomatic Complexity 1 include/net/mac80211.h:ieee80211_tx_status_noskb
Cyclomatic Complexity 1 include/linux/rcupdate.h:rcu_lock_release
Cyclomatic Complexity 4 include/linux/rcupdate.h:rcu_read_unlock
Cyclomatic Complexity 37 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_mac_fill_rx
Cyclomatic Complexity 1 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_sta_ps
Cyclomatic Complexity 5 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_tx_complete_skb
Cyclomatic Complexity 16 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_mac_tx_rate_val
Cyclomatic Complexity 47 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_mac_write_txwi
Cyclomatic Complexity 2 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_txp_skb_unmap
Cyclomatic Complexity 8 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_tx_prepare_skb
Cyclomatic Complexity 10 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_mac_add_txs
Cyclomatic Complexity 4 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_mac_tx_free
Cyclomatic Complexity 1 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:mt7615_mac_work
Cyclomatic Complexity 1 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:_GLOBAL__sub_I_00100_0_mt7615_mac_fill_rx
Cyclomatic Complexity 1 drivers/net/wireless//mediatek/mt76/mt7615/mac.c:_GLOBAL__sub_D_00100_1_mt7615_mac_fill_rx
In file included from include/linux/export.h:45:0,
from include/linux/linkage.h:7,
from include/linux/kernel.h:8,
from include/linux/skbuff.h:17,
from include/linux/if_ether.h:23,
from include/linux/etherdevice.h:25,
from drivers/net/wireless//mediatek/mt76/mt7615/mac.c:10:
drivers/net/wireless//mediatek/mt76/mt7615/mac.c: In function 'to_rssi':
>> include/linux/compiler.h:345:38: error: call to '__compiletime_assert_18' declared with attribute error: BUILD_BUG_ON failed: (((field) + (1ULL << (__builtin_ffsll(field) - 1))) & (((field) + (1ULL << (__builtin_ffsll(field) - 1))) - 1)) != 0
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/compiler.h:326:4: note: in definition of macro '__compiletime_assert'
prefix ## suffix(); \
^~~~~~
include/linux/compiler.h:345:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:54:3: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG(!__builtin_constant_p(_mask), \
^~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:103:3: note: in expansion of macro '__BF_FIELD_CHECK'
__BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
^~~~~~~~~~~~~~~~
drivers/net/wireless//mediatek/mt76/mt7615/mac.c:18:10: note: in expansion of macro 'FIELD_GET'
return (FIELD_GET(field, rxv) - 220) / 2;
^~~~~~~~~
>> include/linux/compiler.h:345:38: error: call to '__compiletime_assert_18' declared with attribute error: BUILD_BUG_ON failed: (((field) + (1ULL << (__builtin_ffsll(field) - 1))) & (((field) + (1ULL << (__builtin_ffsll(field) - 1))) - 1)) != 0
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/compiler.h:326:4: note: in definition of macro '__compiletime_assert'
prefix ## suffix(); \
^~~~~~
include/linux/compiler.h:345:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
^~~~~~~~~~~~~~~~
>> include/linux/build_bug.h:21:2: note: in expansion of macro 'BUILD_BUG_ON'
BUILD_BUG_ON(((n) & ((n) - 1)) != 0)
^~~~~~~~~~~~
>> include/linux/bitfield.h:62:3: note: in expansion of macro '__BUILD_BUG_ON_NOT_POWER_OF_2'
__BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> include/linux/bitfield.h:103:3: note: in expansion of macro '__BF_FIELD_CHECK'
__BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
^~~~~~~~~~~~~~~~
drivers/net/wireless//mediatek/mt76/mt7615/mac.c:18:10: note: in expansion of macro 'FIELD_GET'
return (FIELD_GET(field, rxv) - 220) / 2;
^~~~~~~~~

vim +/FIELD_GET +18 drivers/net/wireless/mediatek/mt76/mt7615/mac.c

15
16 static inline s8 to_rssi(u32 field, u32 rxv)
17 {
> 18 return (FIELD_GET(field, rxv) - 220) / 2;
19 }
20

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip