[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