mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-28 18:05:00 +00:00
Urgent perf ARC fix
-----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEOXpuCuR6hedrdLCJadfx3eKKwl4FAl+SNO0ACgkQadfx3eKK wl4VgA//d79Bt3a78eDpXhK12g8UImgUM99AxKKx3nd/pt9mP0pjB0DILnWGmPq4 kaqpt4jgkOfezAdPFjNCLs8ghNswQWmeKfh57f5sZcLt4OPBlpzFhauaIauYAdCW /9xmN2CVSr8EOfXK+S4VxjSG8FIFdtaiw4B+zYaZ9O684Cnp6it2Izk9EMDwfHbB kP70plt5yIohnec0ByHpgbQvoXGUpxR3raTHFAOh3RTl35Dh1IyvFlv9/C5h7qrJ KIwsTO7OfnnQZ+TfqN9fNXTh4ybZ4ogfAU59TtKkzMyVDERdMIwWMR+Jb+WVo4HV NPobwmzrAkJFephnJjvlvZ+0UIcBQ8fZqk4H+P0z2Cv6dyAlaJEE8L4XEQolm96l exNT/tcmCyysLqWmpYJ6NRVJnfK6iU5UT34nLun8mucWCJYA3FdmhCciss2MgmYi a6ZDV4XLFihglnbRAFfqYELfhdSQi4llkFRAJ/R4yH2gzX4Bhyt4nE/JJxElyxNb E1e4UT6fKnlKqi5yNEt2elF+n/u+RXlH6GhWJ4QDQk73gkiJYksq0uDnso+60KKJ y6KoUVlHzSZM8rc4qRCPcX1OwrsYRJvGEk1vJc0RXVBL0i8/EkGK9w4r/Ty3PqOg r46LDlruGpL4yTFnZMKNyJqt2gk2eZgUhYdhAEfdnMYq47yqTnY= =OtSA -----END PGP SIGNATURE----- Merge tag 'arc-5.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fix from Vineet Gupta: "I found a snafu in perf driver which made it into 5.9-rc4 and the fix should go in now than wait" * tag 'arc-5.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: perf: redo the pct irq missing in device-tree handling
This commit is contained in:
commit
0a14d76498
1 changed files with 18 additions and 9 deletions
|
@ -562,7 +562,7 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct arc_reg_pct_build pct_bcr;
|
struct arc_reg_pct_build pct_bcr;
|
||||||
struct arc_reg_cc_build cc_bcr;
|
struct arc_reg_cc_build cc_bcr;
|
||||||
int i, has_interrupts, irq;
|
int i, has_interrupts, irq = -1;
|
||||||
int counter_size; /* in bits */
|
int counter_size; /* in bits */
|
||||||
|
|
||||||
union cc_name {
|
union cc_name {
|
||||||
|
@ -637,19 +637,28 @@ static int arc_pmu_device_probe(struct platform_device *pdev)
|
||||||
.attr_groups = arc_pmu->attr_groups,
|
.attr_groups = arc_pmu->attr_groups,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
|
if (has_interrupts) {
|
||||||
|
irq = platform_get_irq(pdev, 0);
|
||||||
|
if (irq >= 0) {
|
||||||
|
int ret;
|
||||||
|
|
||||||
arc_pmu->irq = irq;
|
arc_pmu->irq = irq;
|
||||||
|
|
||||||
/* intc map function ensures irq_set_percpu_devid() called */
|
/* intc map function ensures irq_set_percpu_devid() called */
|
||||||
request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
|
ret = request_percpu_irq(irq, arc_pmu_intr, "ARC perf counters",
|
||||||
this_cpu_ptr(&arc_pmu_cpu));
|
this_cpu_ptr(&arc_pmu_cpu));
|
||||||
|
|
||||||
|
if (!ret)
|
||||||
|
on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
|
||||||
|
else
|
||||||
|
irq = -1;
|
||||||
|
}
|
||||||
|
|
||||||
on_each_cpu(arc_cpu_pmu_irq_init, &irq, 1);
|
|
||||||
} else {
|
|
||||||
arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (irq == -1)
|
||||||
|
arc_pmu->pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* perf parser doesn't really like '-' symbol in events name, so let's
|
* perf parser doesn't really like '-' symbol in events name, so let's
|
||||||
* use '_' in arc pct name as it goes to kernel PMU event prefix.
|
* use '_' in arc pct name as it goes to kernel PMU event prefix.
|
||||||
|
|
Loading…
Add table
Reference in a new issue