:::::: :::::: Manual check reason: "low confidence static check warning: net/bluetooth/hci_event.c:6979:21: warning: Excessive padding in 'struct hci_ev' (11 padding bytes, where 3 is optimal). Optimal fields order: , min_len, max_len, req, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]" :::::: BCC: lkp@intel.com CC: llvm@lists.linux.dev CC: oe-kbuild-all@lists.linux.dev CC: linux-kernel@vger.kernel.org TO: Luiz Augusto von Dentz CC: Marcel Holtmann tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: bce9332220bd677d83b19d21502776ad555a0e73 commit: 3e54c5890c87a30b1019a3de9dab968ff2b21e06 Bluetooth: hci_event: Use of a function table to handle HCI events date: 12 months ago :::::: branch date: 6 hours ago :::::: commit date: 12 months ago config: riscv-randconfig-c006-20221128 compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 6e4cea55f0d1104408b26ac574566a0e4de48036) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3e54c5890c87a30b1019a3de9dab968ff2b21e06 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 3e54c5890c87a30b1019a3de9dab968ff2b21e06 # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot clang_analyzer warnings: (new ones prefixed by >>) ^ fs/btrfs/volumes.c:1218:9: note: Calling 'btrfs_open_one_device' ret = btrfs_open_one_device(fs_devices, device, flags, holder); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/volumes.c:619:6: note: Assuming field 'bdev' is null if (device->bdev) ^~~~~~~~~~~~ fs/btrfs/volumes.c:619:2: note: Taking false branch if (device->bdev) ^ fs/btrfs/volumes.c:621:6: note: Assuming field 'name' is non-null if (!device->name) ^~~~~~~~~~~~~ fs/btrfs/volumes.c:621:2: note: Taking false branch if (!device->name) ^ fs/btrfs/volumes.c:624:8: note: Calling 'btrfs_get_bdev_and_sb' ret = btrfs_get_bdev_and_sb(device->name->str, flags, holder, 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/volumes.c:506:2: note: Taking false branch if (IS_ERR(*bdev)) { ^ fs/btrfs/volumes.c:511:6: note: 'flush' is 1 if (flush) ^~~~~ fs/btrfs/volumes.c:511:2: note: Taking true branch if (flush) ^ fs/btrfs/volumes.c:514:6: note: Assuming 'ret' is 0 if (ret) { ^~~ fs/btrfs/volumes.c:514:2: note: Taking false branch if (ret) { ^ fs/btrfs/volumes.c:520:2: note: Taking true branch if (IS_ERR(*disk_super)) { ^ fs/btrfs/volumes.c:523:3: note: Control jumps to line 529 goto error; ^ fs/btrfs/volumes.c:529:2: note: Null pointer value stored to 'bdev' *bdev = NULL; ^~~~~~~~~~~~ fs/btrfs/volumes.c:530:2: note: Returning value (loaded from 'ret'), which participates in a condition later return ret; ^~~~~~~~~~ fs/btrfs/volumes.c:624:8: note: Returning from 'btrfs_get_bdev_and_sb' ret = btrfs_get_bdev_and_sb(device->name->str, flags, holder, 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/volumes.c:626:6: note: Assuming 'ret' is 0 if (ret) ^~~ fs/btrfs/volumes.c:626:2: note: Taking false branch if (ret) ^ fs/btrfs/volumes.c:630:6: note: Assuming 'devid' is equal to field 'devid' if (devid != device->devid) ^~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/volumes.c:630:2: note: Taking false branch if (devid != device->devid) ^ fs/btrfs/volumes.c:633:6: note: Assuming the condition is false if (memcmp(device->uuid, disk_super->dev_item.uuid, BTRFS_UUID_SIZE)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/volumes.c:633:2: note: Taking false branch if (memcmp(device->uuid, disk_super->dev_item.uuid, BTRFS_UUID_SIZE)) ^ fs/btrfs/volumes.c:638:6: note: Assuming the condition is false if (btrfs_super_flags(disk_super) & BTRFS_SUPER_FLAG_SEEDING) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/volumes.c:638:2: note: Taking false branch if (btrfs_super_flags(disk_super) & BTRFS_SUPER_FLAG_SEEDING) { ^ fs/btrfs/volumes.c:649:22: note: Passing null pointer value via 1st parameter 'bdev' if (bdev_read_only(bdev)) ^~~~ fs/btrfs/volumes.c:649:7: note: Calling 'bdev_read_only' if (bdev_read_only(bdev)) ^~~~~~~~~~~~~~~~~~~~ include/linux/genhd.h:228:9: note: Access to field 'bd_read_only' results in a dereference of a null pointer (loaded from variable 'bdev') return bdev->bd_read_only || get_disk_ro(bdev->bd_disk); ^~~~ Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. net/bluetooth/hci_core.c:890:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(di.name, hdev->name); ^~~~~~ net/bluetooth/hci_core.c:890:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(di.name, hdev->name); ^~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. >> net/bluetooth/hci_event.c:6979:21: warning: Excessive padding in 'struct hci_ev' (11 padding bytes, where 3 is optimal). Optimal fields order: , min_len, max_len, req, consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding] static const struct hci_ev { ~~~~~~~^~~~~~~~ net/bluetooth/hci_event.c:6979:21: note: Excessive padding in 'struct hci_ev' (11 padding bytes, where 3 is optimal). Optimal fields order: , min_len, max_len, req, consider reordering the fields or adding explicit padding members static const struct hci_ev { ~~~~~~~^~~~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 11 warnings generated. net/mac80211/wpa.c:452:2: warning: Value stored to 'hdr' is never read [clang-analyzer-deadcode.DeadStores] hdr = (struct ieee80211_hdr *) pos; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/wpa.c:452:2: note: Value stored to 'hdr' is never read hdr = (struct ieee80211_hdr *) pos; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/wpa.c:689:2: warning: Value stored to 'hdr' is never read [clang-analyzer-deadcode.DeadStores] hdr = (struct ieee80211_hdr *)pos; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/wpa.c:689:2: note: Value stored to 'hdr' is never read hdr = (struct ieee80211_hdr *)pos; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/wpa.c:884:2: warning: Value stored to 'hdr' is never read [clang-analyzer-deadcode.DeadStores] hdr = (struct ieee80211_hdr *)rx->skb->data; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/wpa.c:884:2: note: Value stored to 'hdr' is never read hdr = (struct ieee80211_hdr *)rx->skb->data; ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. net/mac80211/offchannel.c:401:6: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc] if (WARN_ON_ONCE(roc->started)) ^ include/asm-generic/bug.h:104:24: note: expanded from macro 'WARN_ON_ONCE' int __ret_warn_on = !!(condition); \ ^ net/mac80211/offchannel.c:954:9: note: Calling 'ieee80211_cancel_roc' return ieee80211_cancel_roc(local, cookie, true); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/offchannel.c:693:6: note: Assuming 'cookie' is not equal to 0 if (!cookie) ^~~~~~~ net/mac80211/offchannel.c:693:2: note: Taking false branch if (!cookie) ^ net/mac80211/offchannel.c:699:2: note: Loop condition is true. Entering loop body list_for_each_entry_safe(roc, tmp, &local->roc_list, list) { ^ include/linux/list.h:717:2: note: expanded from macro 'list_for_each_entry_safe' for (pos = list_first_entry(head, typeof(*pos), member), \ ^ net/mac80211/offchannel.c:700:8: note: 'mgmt_tx' is true if (!mgmt_tx && roc->cookie != cookie) ^~~~~~~ net/mac80211/offchannel.c:700:16: note: Left side of '&&' is false if (!mgmt_tx && roc->cookie != cookie) ^ net/mac80211/offchannel.c:702:12: note: 'mgmt_tx' is true else if (mgmt_tx && roc->mgmt_tx_cookie != cookie) ^~~~~~~ net/mac80211/offchannel.c:702:12: note: Left side of '&&' is true net/mac80211/offchannel.c:702:23: note: Assuming 'cookie' is equal to field 'mgmt_tx_cookie' else if (mgmt_tx && roc->mgmt_tx_cookie != cookie) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/offchannel.c:702:8: note: Taking false branch else if (mgmt_tx && roc->mgmt_tx_cookie != cookie) ^ net/mac80211/offchannel.c:706:3: note: Execution continues on line 709 break; ^ net/mac80211/offchannel.c:709:7: note: 'found' is non-null if (!found) { ^~~~~ net/mac80211/offchannel.c:709:2: note: Taking false branch if (!found) { ^ net/mac80211/offchannel.c:714:6: note: Assuming field 'started' is true if (!found->started) { ^~~~~~~~~~~~~~~ net/mac80211/offchannel.c:714:2: note: Taking false branch if (!found->started) { ^ net/mac80211/offchannel.c:719:6: note: Assuming field 'remain_on_channel' is non-null if (local->ops->remain_on_channel) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/offchannel.c:719:2: note: Taking true branch if (local->ops->remain_on_channel) { ^ net/mac80211/offchannel.c:721:7: note: Assuming 'ret' is 0 if (WARN_ON_ONCE(ret)) { ^ include/asm-generic/bug.h:104:23: note: expanded from macro 'WARN_ON_ONCE' vim +6979 net/bluetooth/hci_event.c 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6970 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6971 #define HCI_EV_REQ(_op, _func, _len) \ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6972 HCI_EV_REQ_VL(_op, _func, _len, _len) 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6973 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6974 /* Entries in this table shall have their position according to the event opcode 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6975 * they handle so the use of the macros above is recommend since it does attempt 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6976 * to initialize at its proper index using Designated Initializers that way 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6977 * events without a callback function don't have entered. 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6978 */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 @6979 static const struct hci_ev { 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6980 bool req; 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6981 union { 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6982 void (*func)(struct hci_dev *hdev, void *data, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6983 struct sk_buff *skb); 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6984 void (*func_req)(struct hci_dev *hdev, void *data, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6985 struct sk_buff *skb, u16 *opcode, u8 *status, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6986 hci_req_complete_t *req_complete, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6987 hci_req_complete_skb_t *req_complete_skb); 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6988 }; 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6989 u16 min_len; 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6990 u16 max_len; 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6991 } hci_ev_table[U8_MAX + 1] = { 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6992 /* [0x01 = HCI_EV_INQUIRY_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6993 HCI_EV_STATUS(HCI_EV_INQUIRY_COMPLETE, hci_inquiry_complete_evt), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6994 /* [0x02 = HCI_EV_INQUIRY_RESULT] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6995 HCI_EV_VL(HCI_EV_INQUIRY_RESULT, hci_inquiry_result_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6996 sizeof(struct hci_ev_inquiry_result), HCI_MAX_EVENT_SIZE), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6997 /* [0x03 = HCI_EV_CONN_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6998 HCI_EV(HCI_EV_CONN_COMPLETE, hci_conn_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 6999 sizeof(struct hci_ev_conn_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7000 /* [0x04 = HCI_EV_CONN_REQUEST] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7001 HCI_EV(HCI_EV_CONN_REQUEST, hci_conn_request_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7002 sizeof(struct hci_ev_conn_request)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7003 /* [0x05 = HCI_EV_DISCONN_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7004 HCI_EV(HCI_EV_DISCONN_COMPLETE, hci_disconn_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7005 sizeof(struct hci_ev_disconn_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7006 /* [0x06 = HCI_EV_AUTH_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7007 HCI_EV(HCI_EV_AUTH_COMPLETE, hci_auth_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7008 sizeof(struct hci_ev_auth_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7009 /* [0x07 = HCI_EV_REMOTE_NAME] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7010 HCI_EV(HCI_EV_REMOTE_NAME, hci_remote_name_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7011 sizeof(struct hci_ev_remote_name)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7012 /* [0x08 = HCI_EV_ENCRYPT_CHANGE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7013 HCI_EV(HCI_EV_ENCRYPT_CHANGE, hci_encrypt_change_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7014 sizeof(struct hci_ev_encrypt_change)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7015 /* [0x09 = HCI_EV_CHANGE_LINK_KEY_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7016 HCI_EV(HCI_EV_CHANGE_LINK_KEY_COMPLETE, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7017 hci_change_link_key_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7018 sizeof(struct hci_ev_change_link_key_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7019 /* [0x0b = HCI_EV_REMOTE_FEATURES] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7020 HCI_EV(HCI_EV_REMOTE_FEATURES, hci_remote_features_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7021 sizeof(struct hci_ev_remote_features)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7022 /* [0x0e = HCI_EV_CMD_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7023 HCI_EV_REQ_VL(HCI_EV_CMD_COMPLETE, hci_cmd_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7024 sizeof(struct hci_ev_cmd_complete), HCI_MAX_EVENT_SIZE), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7025 /* [0x0f = HCI_EV_CMD_STATUS] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7026 HCI_EV_REQ(HCI_EV_CMD_STATUS, hci_cmd_status_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7027 sizeof(struct hci_ev_cmd_status)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7028 /* [0x10 = HCI_EV_CMD_STATUS] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7029 HCI_EV(HCI_EV_HARDWARE_ERROR, hci_hardware_error_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7030 sizeof(struct hci_ev_hardware_error)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7031 /* [0x12 = HCI_EV_ROLE_CHANGE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7032 HCI_EV(HCI_EV_ROLE_CHANGE, hci_role_change_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7033 sizeof(struct hci_ev_role_change)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7034 /* [0x13 = HCI_EV_NUM_COMP_PKTS] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7035 HCI_EV_VL(HCI_EV_NUM_COMP_PKTS, hci_num_comp_pkts_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7036 sizeof(struct hci_ev_num_comp_pkts), HCI_MAX_EVENT_SIZE), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7037 /* [0x14 = HCI_EV_MODE_CHANGE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7038 HCI_EV(HCI_EV_MODE_CHANGE, hci_mode_change_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7039 sizeof(struct hci_ev_mode_change)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7040 /* [0x16 = HCI_EV_PIN_CODE_REQ] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7041 HCI_EV(HCI_EV_PIN_CODE_REQ, hci_pin_code_request_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7042 sizeof(struct hci_ev_pin_code_req)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7043 /* [0x17 = HCI_EV_LINK_KEY_REQ] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7044 HCI_EV(HCI_EV_LINK_KEY_REQ, hci_link_key_request_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7045 sizeof(struct hci_ev_link_key_req)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7046 /* [0x18 = HCI_EV_LINK_KEY_NOTIFY] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7047 HCI_EV(HCI_EV_LINK_KEY_NOTIFY, hci_link_key_notify_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7048 sizeof(struct hci_ev_link_key_notify)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7049 /* [0x1c = HCI_EV_CLOCK_OFFSET] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7050 HCI_EV(HCI_EV_CLOCK_OFFSET, hci_clock_offset_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7051 sizeof(struct hci_ev_clock_offset)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7052 /* [0x1d = HCI_EV_PKT_TYPE_CHANGE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7053 HCI_EV(HCI_EV_PKT_TYPE_CHANGE, hci_pkt_type_change_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7054 sizeof(struct hci_ev_pkt_type_change)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7055 /* [0x20 = HCI_EV_PSCAN_REP_MODE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7056 HCI_EV(HCI_EV_PSCAN_REP_MODE, hci_pscan_rep_mode_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7057 sizeof(struct hci_ev_pscan_rep_mode)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7058 /* [0x22 = HCI_EV_INQUIRY_RESULT_WITH_RSSI] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7059 HCI_EV_VL(HCI_EV_INQUIRY_RESULT_WITH_RSSI, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7060 hci_inquiry_result_with_rssi_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7061 sizeof(struct hci_ev_inquiry_result_rssi), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7062 HCI_MAX_EVENT_SIZE), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7063 /* [0x23 = HCI_EV_REMOTE_EXT_FEATURES] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7064 HCI_EV(HCI_EV_REMOTE_EXT_FEATURES, hci_remote_ext_features_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7065 sizeof(struct hci_ev_remote_ext_features)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7066 /* [0x2c = HCI_EV_SYNC_CONN_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7067 HCI_EV(HCI_EV_SYNC_CONN_COMPLETE, hci_sync_conn_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7068 sizeof(struct hci_ev_sync_conn_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7069 /* [0x2d = HCI_EV_EXTENDED_INQUIRY_RESULT] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7070 HCI_EV_VL(HCI_EV_EXTENDED_INQUIRY_RESULT, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7071 hci_extended_inquiry_result_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7072 sizeof(struct hci_ev_ext_inquiry_result), HCI_MAX_EVENT_SIZE), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7073 /* [0x30 = HCI_EV_KEY_REFRESH_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7074 HCI_EV(HCI_EV_KEY_REFRESH_COMPLETE, hci_key_refresh_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7075 sizeof(struct hci_ev_key_refresh_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7076 /* [0x31 = HCI_EV_IO_CAPA_REQUEST] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7077 HCI_EV(HCI_EV_IO_CAPA_REQUEST, hci_io_capa_request_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7078 sizeof(struct hci_ev_io_capa_request)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7079 /* [0x32 = HCI_EV_IO_CAPA_REPLY] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7080 HCI_EV(HCI_EV_IO_CAPA_REPLY, hci_io_capa_reply_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7081 sizeof(struct hci_ev_io_capa_reply)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7082 /* [0x33 = HCI_EV_USER_CONFIRM_REQUEST] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7083 HCI_EV(HCI_EV_USER_CONFIRM_REQUEST, hci_user_confirm_request_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7084 sizeof(struct hci_ev_user_confirm_req)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7085 /* [0x34 = HCI_EV_USER_PASSKEY_REQUEST] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7086 HCI_EV(HCI_EV_USER_PASSKEY_REQUEST, hci_user_passkey_request_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7087 sizeof(struct hci_ev_user_passkey_req)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7088 /* [0x35 = HCI_EV_REMOTE_OOB_DATA_REQUEST] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7089 HCI_EV(HCI_EV_REMOTE_OOB_DATA_REQUEST, hci_remote_oob_data_request_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7090 sizeof(struct hci_ev_remote_oob_data_request)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7091 /* [0x36 = HCI_EV_SIMPLE_PAIR_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7092 HCI_EV(HCI_EV_SIMPLE_PAIR_COMPLETE, hci_simple_pair_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7093 sizeof(struct hci_ev_simple_pair_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7094 /* [0x3b = HCI_EV_USER_PASSKEY_NOTIFY] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7095 HCI_EV(HCI_EV_USER_PASSKEY_NOTIFY, hci_user_passkey_notify_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7096 sizeof(struct hci_ev_user_passkey_notify)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7097 /* [0x3c = HCI_EV_KEYPRESS_NOTIFY] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7098 HCI_EV(HCI_EV_KEYPRESS_NOTIFY, hci_keypress_notify_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7099 sizeof(struct hci_ev_keypress_notify)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7100 /* [0x3d = HCI_EV_REMOTE_HOST_FEATURES] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7101 HCI_EV(HCI_EV_REMOTE_HOST_FEATURES, hci_remote_host_features_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7102 sizeof(struct hci_ev_remote_host_features)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7103 /* [0x3e = HCI_EV_LE_META] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7104 HCI_EV_VL(HCI_EV_LE_META, hci_le_meta_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7105 sizeof(struct hci_ev_le_meta), HCI_MAX_EVENT_SIZE), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7106 #if IS_ENABLED(CONFIG_BT_HS) 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7107 /* [0x40 = HCI_EV_PHY_LINK_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7108 HCI_EV(HCI_EV_PHY_LINK_COMPLETE, hci_phy_link_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7109 sizeof(struct hci_ev_phy_link_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7110 /* [0x41 = HCI_EV_CHANNEL_SELECTED] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7111 HCI_EV(HCI_EV_CHANNEL_SELECTED, hci_chan_selected_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7112 sizeof(struct hci_ev_channel_selected)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7113 /* [0x42 = HCI_EV_DISCONN_PHY_LINK_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7114 HCI_EV(HCI_EV_DISCONN_LOGICAL_LINK_COMPLETE, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7115 hci_disconn_loglink_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7116 sizeof(struct hci_ev_disconn_logical_link_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7117 /* [0x45 = HCI_EV_LOGICAL_LINK_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7118 HCI_EV(HCI_EV_LOGICAL_LINK_COMPLETE, hci_loglink_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7119 sizeof(struct hci_ev_logical_link_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7120 /* [0x46 = HCI_EV_DISCONN_LOGICAL_LINK_COMPLETE] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7121 HCI_EV(HCI_EV_DISCONN_PHY_LINK_COMPLETE, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7122 hci_disconn_phylink_complete_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7123 sizeof(struct hci_ev_disconn_phy_link_complete)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7124 #endif 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7125 /* [0x48 = HCI_EV_NUM_COMP_BLOCKS] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7126 HCI_EV(HCI_EV_NUM_COMP_BLOCKS, hci_num_comp_blocks_evt, 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7127 sizeof(struct hci_ev_num_comp_blocks)), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7128 /* [0xff = HCI_EV_VENDOR] */ 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7129 HCI_EV(HCI_EV_VENDOR, msft_vendor_evt, 0), 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7130 }; 3e54c5890c87a30 Luiz Augusto von Dentz 2021-12-01 7131 -- 0-DAY CI Kernel Test Service https://01.org/lkp