Hi Manish, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on bluetooth/master] [also build test WARNING on bluetooth-next/master linus/master v6.3-rc4 next-20230327] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Manish-Mandlik/Bluetooth-Add-vhci-devcoredump-support/20230328-092008 base: https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git master patch link: https://lore.kernel.org/r/20230327181825.v9.1.I9b4e4818bab450657b19cda3497d363c9baa616e%40changeid patch subject: [PATCH v9 1/4] Bluetooth: Add support for hci devcoredump config: loongarch-allyesconfig (https://download.01.org/0day-ci/archive/20230328/202303281102.Wu5F8pYw-lkp@xxxxxxxxx/config) compiler: loongarch64-linux-gcc (GCC) 12.1.0 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 # https://github.com/intel-lab-lkp/linux/commit/40f9e7a85c5d41006c8a1b416c6e283ba4035aeb git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Manish-Mandlik/Bluetooth-Add-vhci-devcoredump-support/20230328-092008 git checkout 40f9e7a85c5d41006c8a1b416c6e283ba4035aeb # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=loongarch SHELL=/bin/bash net/bluetooth/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202303281102.Wu5F8pYw-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> net/bluetooth/coredump.c:181:6: warning: no previous prototype for 'hci_devcd_handle_pkt_init' [-Wmissing-prototypes] 181 | void hci_devcd_handle_pkt_init(struct hci_dev *hdev, struct sk_buff *skb) | ^~~~~~~~~~~~~~~~~~~~~~~~~ >> net/bluetooth/coredump.c:211:6: warning: no previous prototype for 'hci_devcd_handle_pkt_skb' [-Wmissing-prototypes] 211 | void hci_devcd_handle_pkt_skb(struct hci_dev *hdev, struct sk_buff *skb) | ^~~~~~~~~~~~~~~~~~~~~~~~ >> net/bluetooth/coredump.c:222:6: warning: no previous prototype for 'hci_devcd_handle_pkt_pattern' [-Wmissing-prototypes] 222 | void hci_devcd_handle_pkt_pattern(struct hci_dev *hdev, struct sk_buff *skb) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/bluetooth/coredump.c:242:6: warning: no previous prototype for 'hci_devcd_handle_pkt_complete' [-Wmissing-prototypes] 242 | void hci_devcd_handle_pkt_complete(struct hci_dev *hdev, struct sk_buff *skb) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/bluetooth/coredump.c:260:6: warning: no previous prototype for 'hci_devcd_handle_pkt_abort' [-Wmissing-prototypes] 260 | void hci_devcd_handle_pkt_abort(struct hci_dev *hdev, struct sk_buff *skb) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ vim +/hci_devcd_handle_pkt_init +181 net/bluetooth/coredump.c 180 > 181 void hci_devcd_handle_pkt_init(struct hci_dev *hdev, struct sk_buff *skb) 182 { 183 u32 *dump_size; 184 185 if (hdev->dump.state != HCI_DEVCOREDUMP_IDLE) { 186 DBG_UNEXPECTED_STATE(); 187 return; 188 } 189 190 if (skb->len != sizeof(*dump_size)) { 191 bt_dev_dbg(hdev, "Invalid dump init pkt"); 192 return; 193 } 194 195 dump_size = skb_pull_data(skb, sizeof(*dump_size)); 196 if (!*dump_size) { 197 bt_dev_err(hdev, "Zero size dump init pkt"); 198 return; 199 } 200 201 if (hci_devcd_prepare(hdev, *dump_size)) { 202 bt_dev_err(hdev, "Failed to prepare for dump"); 203 return; 204 } 205 206 hci_devcd_update_state(hdev, HCI_DEVCOREDUMP_ACTIVE); 207 queue_delayed_work(hdev->workqueue, &hdev->dump.dump_timeout, 208 DEVCOREDUMP_TIMEOUT); 209 } 210 > 211 void hci_devcd_handle_pkt_skb(struct hci_dev *hdev, struct sk_buff *skb) 212 { 213 if (hdev->dump.state != HCI_DEVCOREDUMP_ACTIVE) { 214 DBG_UNEXPECTED_STATE(); 215 return; 216 } 217 218 if (!hci_devcd_copy(hdev, skb->data, skb->len)) 219 bt_dev_dbg(hdev, "Failed to insert skb"); 220 } 221 > 222 void hci_devcd_handle_pkt_pattern(struct hci_dev *hdev, struct sk_buff *skb) 223 { 224 struct hci_devcoredump_skb_pattern *pattern; 225 226 if (hdev->dump.state != HCI_DEVCOREDUMP_ACTIVE) { 227 DBG_UNEXPECTED_STATE(); 228 return; 229 } 230 231 if (skb->len != sizeof(*pattern)) { 232 bt_dev_dbg(hdev, "Invalid pattern skb"); 233 return; 234 } 235 236 pattern = skb_pull_data(skb, sizeof(*pattern));; 237 238 if (!hci_devcd_memset(hdev, pattern->pattern, pattern->len)) 239 bt_dev_dbg(hdev, "Failed to set pattern"); 240 } 241 > 242 void hci_devcd_handle_pkt_complete(struct hci_dev *hdev, struct sk_buff *skb) 243 { 244 u32 dump_size; 245 246 if (hdev->dump.state != HCI_DEVCOREDUMP_ACTIVE) { 247 DBG_UNEXPECTED_STATE(); 248 return; 249 } 250 251 hci_devcd_update_state(hdev, HCI_DEVCOREDUMP_DONE); 252 dump_size = hdev->dump.tail - hdev->dump.head; 253 254 bt_dev_info(hdev, "Devcoredump complete with size %u (expect %zu)", 255 dump_size, hdev->dump.alloc_size); 256 257 dev_coredumpv(&hdev->dev, hdev->dump.head, dump_size, GFP_KERNEL); 258 } 259 > 260 void hci_devcd_handle_pkt_abort(struct hci_dev *hdev, struct sk_buff *skb) 261 { 262 u32 dump_size; 263 264 if (hdev->dump.state != HCI_DEVCOREDUMP_ACTIVE) { 265 DBG_UNEXPECTED_STATE(); 266 return; 267 } 268 269 hci_devcd_update_state(hdev, HCI_DEVCOREDUMP_ABORT); 270 dump_size = hdev->dump.tail - hdev->dump.head; 271 272 bt_dev_info(hdev, "Devcoredump aborted with size %u (expect %zu)", 273 dump_size, hdev->dump.alloc_size); 274 275 /* Emit a devcoredump with the available data */ 276 dev_coredumpv(&hdev->dev, hdev->dump.head, dump_size, GFP_KERNEL); 277 } 278 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests