drivers/bluetooth/btintel_pcie.c:2402 btintel_pcie_reset_work() warn: can 'data' even be NULL?
kernel test robot <[email protected]> Fri, 24 Jul 2026 21:19:43 +0800
| Newsgroups | dev.linux.lists.oe-kbuild |
|---|---|
| Message-ID | <[email protected]> |
BCC: [email protected] CC: [email protected] CC: [email protected] TO: Chandrashekar Devegowda <[email protected]> CC: Luiz Augusto von Dentz <[email protected]> CC: Venkat Rao Bagalkote <[email protected]> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 4539944e515183668109bdf4d0c3d7d228383d88 commit: 2d00975c841fa2e52921353392ce9780843bfee7 Bluetooth: btintel_pcie: Support Product level reset date: 6 weeks ago :::::: branch date: 2 days ago :::::: commit date: 6 weeks ago config: x86_64-randconfig-161 (https://download.01.org/0day-ci/archive/20260724/[email protected]/config) compiler: gcc-14 (Debian 14.2.0-19) 14.2.0 smatch: v0.5.0-9187-g5189e3fb If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Fixes: 2d00975c841f ("Bluetooth: btintel_pcie: Support Product level reset") | Reported-by: kernel test robot <[email protected]> | Reported-by: Dan Carpenter <[email protected]> | Closes: https://lore.kernel.org/r/[email protected]/ smatch warnings: drivers/bluetooth/btintel_pcie.c:2402 btintel_pcie_reset_work() warn: can 'data' even be NULL? vim +/data +2402 drivers/bluetooth/btintel_pcie.c 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2389 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2390 static void btintel_pcie_reset_work(struct work_struct *wk) 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2391 { 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2392 struct btintel_pcie_data *data = 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2393 container_of(wk, struct btintel_pcie_data, reset_work); 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2394 struct pci_dev *pdev = data->pdev; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2395 int err; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2396 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2397 pci_lock_rescan_remove(); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2398 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2399 if (!pdev->bus) 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2400 goto out; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2401 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 @2402 if (!data) 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2403 goto out; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2404 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2405 btintel_pcie_disable_interrupts(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2406 btintel_pcie_synchronize_irqs(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2407 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2408 flush_work(&data->rx_work); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2409 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2410 bt_dev_dbg(data->hdev, "Release bluetooth interface"); 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2411 if (data->reset_type == BTINTEL_PCIE_IOSF_PRR_PLDR) { 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2412 /* This function holds pci_lock_rescan_remove(), which acquires 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2413 * pci_rescan_remove_lock. This mutex serializes against PCI device 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2414 * addition/removal (hotplug), so no device can be added to or 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2415 * removed from the bus list while this code runs. 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2416 */ 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2417 btintel_pcie_perform_pldr(data); 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2418 goto out; 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2419 } 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2420 btintel_pcie_release_hdev(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2421 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2422 err = pci_reset_function(pdev); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2423 if (err) { 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2424 BT_ERR("Failed resetting the pcie device (%d)", err); 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2425 goto out; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2426 } 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2427 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2428 btintel_pcie_enable_interrupts(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2429 btintel_pcie_config_msix(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2430 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2431 err = btintel_pcie_enable_bt(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2432 if (err) { 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2433 BT_ERR("Failed to enable bluetooth hardware after reset (%d)", 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2434 err); 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2435 goto out; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2436 } 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2437 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2438 btintel_pcie_reset_ia(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2439 btintel_pcie_start_rx(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2440 data->flags = 0; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2441 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2442 err = btintel_pcie_setup_hdev(data); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2443 if (err) { 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2444 BT_ERR("Failed registering hdev (%d)", err); 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2445 goto out; 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2446 } 2d00975c841fa2 Chandrashekar Devegowda 2026-04-13 2447 out: 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2448 pci_dev_put(pdev); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2449 pci_unlock_rescan_remove(); 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2450 } 256ab9520d15c7 Chandrashekar Devegowda 2025-06-10 2451 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki