[PATCH 3/4] perf/dwc_pcie: Always register for PCIe bus notifier
Krishna Chaitanya Chundru
quic_krichai at quicinc.com
Thu Aug 15 20:51:33 PDT 2024
On 8/15/2024 7:19 PM, Yicong Yang wrote:
> On 2024/7/31 12:23, Krishna chaitanya chundru wrote:
>> When the PCIe devices are discovered late, the driver can't find
>> the PCIe devices and returns in the init without registering with
>> the bus notifier. Due to that the devices which are discovered late
>> the driver can't register for this.
>>
>> Register for bus notifier even if the device is not found in init.
>>
>> Fixes: af9597adc2f1 ("drivers/perf: add DesignWare PCIe PMU driver")
>> Signed-off-by: Krishna chaitanya chundru <quic_krichai at quicinc.com>
>> ---
>> drivers/perf/dwc_pcie_pmu.c | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/perf/dwc_pcie_pmu.c b/drivers/perf/dwc_pcie_pmu.c
>> index c115348b8d53..aa1010b44bcb 100644
>> --- a/drivers/perf/dwc_pcie_pmu.c
>> +++ b/drivers/perf/dwc_pcie_pmu.c
>> @@ -741,8 +741,6 @@ static int __init dwc_pcie_pmu_init(void)
>>
>> found = true;
>> }
>> - if (!found)
>> - return -ENODEV;
>>
>> ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN,
>> "perf/dwc_pcie_pmu:online",
>> @@ -753,9 +751,11 @@ static int __init dwc_pcie_pmu_init(void)
>>
>> dwc_pcie_pmu_hp_state = ret;
>>
>> - ret = platform_driver_register(&dwc_pcie_pmu_driver);
>> - if (ret)
>> - goto platform_driver_register_err;
>> + if (!found) {
>> + ret = platform_driver_register(&dwc_pcie_pmu_driver);
>> + if (ret)
>> + goto platform_driver_register_err;
>> + }
>>
>
> This doesn't match the commit.
> > If any device is found at this stage, we cannot use them since you don't
> register a driver.
>
If the device is not found then only we are skipping platform driver
register otherwise driver will be registering with the platform driver.
- Krishna Chaitanya.
>> ret = bus_register_notifier(&pci_bus_type, &dwc_pcie_pmu_nb);
>> if (ret)
>>
More information about the linux-arm-kernel
mailing list