Messages in this thread Patch in this message | | | From | kan.liang@linux ... | Subject | [PATCH 5/7] perf/x86/intel/uncore: Factor out uncore_pci_pmu_unregister() | Date | Thu, 2 Jul 2020 10:05:15 -0700 |
| |
From: Kan Liang <kan.liang@linux.intel.com>
The PMU unregistration of a platform device is similar as a PCI device.
Factor out the codes of unregister a PCI PMU into a separate function. The function will be used later.
There is no functional change.
Signed-off-by: Kan Liang <kan.liang@linux.intel.com> --- arch/x86/events/intel/uncore.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)
diff --git a/arch/x86/events/intel/uncore.c b/arch/x86/events/intel/uncore.c index ccc90b0..b702dc3 100644 --- a/arch/x86/events/intel/uncore.c +++ b/arch/x86/events/intel/uncore.c @@ -1118,6 +1118,16 @@ static int uncore_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id return ret; } +static void uncore_pci_pmu_unregister(struct intel_uncore_pmu *pmu, + struct intel_uncore_box *box) +{ + pmu->boxes[box->dieid] = NULL; + if (atomic_dec_return(&pmu->activeboxes) == 0) + uncore_pmu_unregister(pmu); + uncore_box_exit(box); + kfree(box); +} + static void uncore_pci_remove(struct pci_dev *pdev) { struct intel_uncore_box *box; @@ -1145,11 +1155,8 @@ static void uncore_pci_remove(struct pci_dev *pdev) return; pci_set_drvdata(pdev, NULL); - pmu->boxes[box->dieid] = NULL; - if (atomic_dec_return(&pmu->activeboxes) == 0) - uncore_pmu_unregister(pmu); - uncore_box_exit(box); - kfree(box); + + uncore_pci_pmu_unregister(pmu, box); } static int __init uncore_pci_init(void) -- 2.7.4
| |