All callers have switched to dev_is_removable() for detecting
hotpluggable PCIe devices.
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
---
include/linux/pci.h | 22 ----------------------
1 file changed, 22 deletions(-)
diff --git a/include/linux/pci.h b/include/linux/pci.h
index b56417276042..530b0a360514 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -2616,28 +2616,6 @@ static inline bool pci_ari_enabled(struct pci_bus *bus)
return bus->self && bus->self->ari_enabled;
}
-/**
- * pci_is_thunderbolt_attached - whether device is on a Thunderbolt daisy chain
- * @pdev: PCI device to check
- *
- * Walk upwards from @pdev and check for each encountered bridge if it's part
- * of a Thunderbolt controller. Reaching the host bridge means @pdev is not
- * Thunderbolt-attached. (But rather soldered to the mainboard usually.)
- */
-static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
-{
- struct pci_dev *parent = pdev;
-
- if (pdev->is_thunderbolt)
- return true;
-
- while ((parent = pci_upstream_bridge(parent)))
- if (parent->is_thunderbolt)
- return true;
-
- return false;
-}
-
#if defined(CONFIG_PCIEPORTBUS) || defined(CONFIG_EEH)
void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type);
#endif
--
2.34.1
On Fri, 3 Nov 2023, Mario Limonciello wrote:
> All callers have switched to dev_is_removable() for detecting
> hotpluggable PCIe devices.
>
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
> ---
> include/linux/pci.h | 22 ----------------------
> 1 file changed, 22 deletions(-)
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index b56417276042..530b0a360514 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -2616,28 +2616,6 @@ static inline bool pci_ari_enabled(struct pci_bus *bus)
> return bus->self && bus->self->ari_enabled;
> }
>
> -/**
> - * pci_is_thunderbolt_attached - whether device is on a Thunderbolt daisy chain
> - * @pdev: PCI device to check
> - *
> - * Walk upwards from @pdev and check for each encountered bridge if it's part
> - * of a Thunderbolt controller. Reaching the host bridge means @pdev is not
> - * Thunderbolt-attached. (But rather soldered to the mainboard usually.)
> - */
> -static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
> -{
> - struct pci_dev *parent = pdev;
> -
> - if (pdev->is_thunderbolt)
> - return true;
> -
> - while ((parent = pci_upstream_bridge(parent)))
> - if (parent->is_thunderbolt)
> - return true;
> -
> - return false;
> -}
> -
> #if defined(CONFIG_PCIEPORTBUS) || defined(CONFIG_EEH)
> void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type);
> #endif
>
I don't think all callers have been removed. Ah, lkp has caught the same
problem.
--
i.
On 11/6/2023 06:33, Ilpo Järvinen wrote:
> On Fri, 3 Nov 2023, Mario Limonciello wrote:
>
>> All callers have switched to dev_is_removable() for detecting
>> hotpluggable PCIe devices.
>>
>> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
>> ---
>> include/linux/pci.h | 22 ----------------------
>> 1 file changed, 22 deletions(-)
>>
>> diff --git a/include/linux/pci.h b/include/linux/pci.h
>> index b56417276042..530b0a360514 100644
>> --- a/include/linux/pci.h
>> +++ b/include/linux/pci.h
>> @@ -2616,28 +2616,6 @@ static inline bool pci_ari_enabled(struct pci_bus *bus)
>> return bus->self && bus->self->ari_enabled;
>> }
>>
>> -/**
>> - * pci_is_thunderbolt_attached - whether device is on a Thunderbolt daisy chain
>> - * @pdev: PCI device to check
>> - *
>> - * Walk upwards from @pdev and check for each encountered bridge if it's part
>> - * of a Thunderbolt controller. Reaching the host bridge means @pdev is not
>> - * Thunderbolt-attached. (But rather soldered to the mainboard usually.)
>> - */
>> -static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
>> -{
>> - struct pci_dev *parent = pdev;
>> -
>> - if (pdev->is_thunderbolt)
>> - return true;
>> -
>> - while ((parent = pci_upstream_bridge(parent)))
>> - if (parent->is_thunderbolt)
>> - return true;
>> -
>> - return false;
>> -}
>> -
>> #if defined(CONFIG_PCIEPORTBUS) || defined(CONFIG_EEH)
>> void pci_uevent_ers(struct pci_dev *pdev, enum pci_ers_result err_type);
>> #endif
>>
>
> I don't think all callers have been removed. Ah, lkp has caught the same
> problem.
>
As I mentioned in the cover letter this series is done on 6.6 + a patch
going into 6.7-rc1. The LKP report will drop off when I rebase the
series on 6.7-rc1.
As it's not yet in Linus' tree here is that patch so you can see it:
https://gitlab.freedesktop.org/agd5f/linux/-/commit/7b1c6263eaf4fd64ffe1cafdc504a42ee4bfbb33
Hi Mario,
kernel test robot noticed the following build errors:
[auto build test ERROR on pci/for-linus]
[also build test ERROR on drm-misc/drm-misc-next westeri-thunderbolt/next rafael-pm/linux-next rafael-pm/acpi-bus linus/master rafael-pm/devprop v6.6 next-20231103]
[cannot apply to pci/next]
[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/Mario-Limonciello/drm-nouveau-Switch-from-pci_is_thunderbolt_attached-to-dev_is_removable/20231104-030945
base: https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git for-linus
patch link: https://lore.kernel.org/r/20231103190758.82911-4-mario.limonciello%40amd.com
patch subject: [PATCH v2 3/9] PCI: Drop pci_is_thunderbolt_attached()
config: loongarch-randconfig-002-20231104 (https://download.01.org/0day-ci/archive/20231104/202311040800.zpVIwNrB-lkp@intel.com/config)
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231104/202311040800.zpVIwNrB-lkp@intel.com/reproduce)
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
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311040800.zpVIwNrB-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c: In function 'nbio_v2_3_enable_aspm':
>> drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c:364:21: error: implicit declaration of function 'pci_is_thunderbolt_attached' [-Werror=implicit-function-declaration]
364 | if (pci_is_thunderbolt_attached(adev->pdev))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c: In function 'amdgpu_device_ip_early_init':
>> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c:2118:14: error: implicit declaration of function 'pci_is_thunderbolt_attached' [-Werror=implicit-function-declaration]
2118 | !pci_is_thunderbolt_attached(to_pci_dev(dev->dev)))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/pci_is_thunderbolt_attached +364 drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c
f1213b15976881d Evan Quan 2020-08-18 350
f1213b15976881d Evan Quan 2020-08-18 351 static void nbio_v2_3_enable_aspm(struct amdgpu_device *adev,
f1213b15976881d Evan Quan 2020-08-18 352 bool enable)
f1213b15976881d Evan Quan 2020-08-18 353 {
f1213b15976881d Evan Quan 2020-08-18 354 uint32_t def, data;
f1213b15976881d Evan Quan 2020-08-18 355
f1213b15976881d Evan Quan 2020-08-18 356 def = data = RREG32_PCIE(smnPCIE_LC_CNTL);
f1213b15976881d Evan Quan 2020-08-18 357
f1213b15976881d Evan Quan 2020-08-18 358 if (enable) {
f1213b15976881d Evan Quan 2020-08-18 359 /* Disable ASPM L0s/L1 first */
f1213b15976881d Evan Quan 2020-08-18 360 data &= ~(PCIE_LC_CNTL__LC_L0S_INACTIVITY_MASK | PCIE_LC_CNTL__LC_L1_INACTIVITY_MASK);
f1213b15976881d Evan Quan 2020-08-18 361
f1213b15976881d Evan Quan 2020-08-18 362 data |= NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT;
f1213b15976881d Evan Quan 2020-08-18 363
f1213b15976881d Evan Quan 2020-08-18 @364 if (pci_is_thunderbolt_attached(adev->pdev))
f1213b15976881d Evan Quan 2020-08-18 365 data |= NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
f1213b15976881d Evan Quan 2020-08-18 366 else
f1213b15976881d Evan Quan 2020-08-18 367 data |= NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
f1213b15976881d Evan Quan 2020-08-18 368
f1213b15976881d Evan Quan 2020-08-18 369 data &= ~PCIE_LC_CNTL__LC_PMI_TO_L1_DIS_MASK;
f1213b15976881d Evan Quan 2020-08-18 370 } else {
f1213b15976881d Evan Quan 2020-08-18 371 /* Disbale ASPM L1 */
f1213b15976881d Evan Quan 2020-08-18 372 data &= ~PCIE_LC_CNTL__LC_L1_INACTIVITY_MASK;
f1213b15976881d Evan Quan 2020-08-18 373 /* Disable ASPM TxL0s */
f1213b15976881d Evan Quan 2020-08-18 374 data &= ~PCIE_LC_CNTL__LC_L0S_INACTIVITY_MASK;
f1213b15976881d Evan Quan 2020-08-18 375 /* Disable ACPI L1 */
f1213b15976881d Evan Quan 2020-08-18 376 data |= PCIE_LC_CNTL__LC_PMI_TO_L1_DIS_MASK;
f1213b15976881d Evan Quan 2020-08-18 377 }
f1213b15976881d Evan Quan 2020-08-18 378
f1213b15976881d Evan Quan 2020-08-18 379 if (def != data)
f1213b15976881d Evan Quan 2020-08-18 380 WREG32_PCIE(smnPCIE_LC_CNTL, data);
f1213b15976881d Evan Quan 2020-08-18 381 }
f1213b15976881d Evan Quan 2020-08-18 382
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
© 2016 - 2025 Red Hat, Inc.