mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-24 23:04:17 +08:00
perf/x86/intel/uncore: Rename uncore_notifier to uncore_pci_sub_notifier
Perf will use a similar method to the PCI sub driver to register the PMUs for the PCI type of uncore blocks. The method requires a BUS notifier to support hotplug. The current BUS notifier cannot be reused, because it searches a const id_table for the corresponding registered PMU. The PCI type of uncore blocks in the discovery tables doesn't provide an id_table. Factor out uncore_bus_notify() and add the pointer of an id_table as a parameter. The uncore_bus_notify() will be reused in the following patch. The current BUS notifier is only used by the PCI sub driver. Its name is too generic. Rename it to uncore_pci_sub_notifier, which is specific for the PCI sub driver. Signed-off-by: Kan Liang <kan.liang@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lkml.kernel.org/r/1616003977-90612-4-git-send-email-kan.liang@linux.intel.com
This commit is contained in:
parent
d6c7541304
commit
6477dc3934
@ -1203,7 +1203,8 @@ static void uncore_pci_remove(struct pci_dev *pdev)
|
||||
}
|
||||
|
||||
static int uncore_bus_notify(struct notifier_block *nb,
|
||||
unsigned long action, void *data)
|
||||
unsigned long action, void *data,
|
||||
const struct pci_device_id *ids)
|
||||
{
|
||||
struct device *dev = data;
|
||||
struct pci_dev *pdev = to_pci_dev(dev);
|
||||
@ -1214,7 +1215,7 @@ static int uncore_bus_notify(struct notifier_block *nb,
|
||||
if (action != BUS_NOTIFY_DEL_DEVICE)
|
||||
return NOTIFY_DONE;
|
||||
|
||||
pmu = uncore_pci_find_dev_pmu(pdev, uncore_pci_sub_driver->id_table);
|
||||
pmu = uncore_pci_find_dev_pmu(pdev, ids);
|
||||
if (!pmu)
|
||||
return NOTIFY_DONE;
|
||||
|
||||
@ -1226,8 +1227,15 @@ static int uncore_bus_notify(struct notifier_block *nb,
|
||||
return NOTIFY_OK;
|
||||
}
|
||||
|
||||
static struct notifier_block uncore_notifier = {
|
||||
.notifier_call = uncore_bus_notify,
|
||||
static int uncore_pci_sub_bus_notify(struct notifier_block *nb,
|
||||
unsigned long action, void *data)
|
||||
{
|
||||
return uncore_bus_notify(nb, action, data,
|
||||
uncore_pci_sub_driver->id_table);
|
||||
}
|
||||
|
||||
static struct notifier_block uncore_pci_sub_notifier = {
|
||||
.notifier_call = uncore_pci_sub_bus_notify,
|
||||
};
|
||||
|
||||
static void uncore_pci_sub_driver_init(void)
|
||||
@ -1268,7 +1276,7 @@ static void uncore_pci_sub_driver_init(void)
|
||||
ids++;
|
||||
}
|
||||
|
||||
if (notify && bus_register_notifier(&pci_bus_type, &uncore_notifier))
|
||||
if (notify && bus_register_notifier(&pci_bus_type, &uncore_pci_sub_notifier))
|
||||
notify = false;
|
||||
|
||||
if (!notify)
|
||||
@ -1319,7 +1327,7 @@ static void uncore_pci_exit(void)
|
||||
if (pcidrv_registered) {
|
||||
pcidrv_registered = false;
|
||||
if (uncore_pci_sub_driver)
|
||||
bus_unregister_notifier(&pci_bus_type, &uncore_notifier);
|
||||
bus_unregister_notifier(&pci_bus_type, &uncore_pci_sub_notifier);
|
||||
pci_unregister_driver(uncore_pci_driver);
|
||||
uncore_types_exit(uncore_pci_uncores);
|
||||
kfree(uncore_extra_pci_dev);
|
||||
|
Loading…
Reference in New Issue
Block a user