]>
Commit | Line | Data |
---|---|---|
4a28f1d1 GKH |
1 | From e98f09bcf3691350c589c1770532600132bad960 Mon Sep 17 00:00:00 2001 |
2 | From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
3 | Date: Sun, 9 Jun 2019 12:02:32 +0200 | |
4 | Subject: Revert "MIPS: perf: ath79: Fix perfcount IRQ assignment" | |
5 | MIME-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ||
9 | From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
10 | ||
11 | This reverts commit f9b1baac265600a61d36ebaf9ba657119303b5b5 which is | |
12 | commit a1e8783db8e0d58891681bc1e6d9ada66eae8e20 upstream. | |
13 | ||
14 | Petr writes: | |
15 | Karl has reported to me today, that he's experiencing weird | |
16 | reboot hang on his devices with 4.9.180 kernel and that he has | |
17 | bisected it down to my backported patch. | |
18 | ||
19 | I would like to kindly ask you for removal of this patch. This | |
20 | patch should be reverted from all stable kernels up to 5.1, | |
21 | because perf counters were not broken on those kernels, and this | |
22 | patch won't work on the ath79 legacy IRQ code anyway, it needs | |
23 | new irqchip driver which was enabled on ath79 with commit | |
24 | 51fa4f8912c0 ("MIPS: ath79: drop legacy IRQ code"). | |
25 | ||
26 | Reported-by: Petr Štetiar <ynezz@true.cz> | |
27 | Cc: Kevin 'ldir' Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> | |
28 | Cc: John Crispin <john@phrozen.org> | |
29 | Cc: Marc Zyngier <marc.zyngier@arm.com> | |
30 | Cc: Paul Burton <paul.burton@mips.com> | |
31 | Cc: linux-mips@vger.kernel.org | |
32 | Cc: Ralf Baechle <ralf@linux-mips.org> | |
33 | Cc: James Hogan <jhogan@kernel.org> | |
34 | Cc: Thomas Gleixner <tglx@linutronix.de> | |
35 | Cc: Jason Cooper <jason@lakedaemon.net> | |
36 | Cc: Sasha Levin <sashal@kernel.org> | |
37 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
38 | --- | |
39 | arch/mips/ath79/setup.c | 6 ++++++ | |
40 | drivers/irqchip/irq-ath79-misc.c | 11 ----------- | |
41 | 2 files changed, 6 insertions(+), 11 deletions(-) | |
42 | ||
43 | --- a/arch/mips/ath79/setup.c | |
44 | +++ b/arch/mips/ath79/setup.c | |
45 | @@ -183,6 +183,12 @@ const char *get_system_type(void) | |
46 | return ath79_sys_type; | |
47 | } | |
48 | ||
49 | +int get_c0_perfcount_int(void) | |
50 | +{ | |
51 | + return ATH79_MISC_IRQ(5); | |
52 | +} | |
53 | +EXPORT_SYMBOL_GPL(get_c0_perfcount_int); | |
54 | + | |
55 | unsigned int get_c0_compare_int(void) | |
56 | { | |
57 | return CP0_LEGACY_COMPARE_IRQ; | |
58 | --- a/drivers/irqchip/irq-ath79-misc.c | |
59 | +++ b/drivers/irqchip/irq-ath79-misc.c | |
60 | @@ -22,15 +22,6 @@ | |
61 | #define AR71XX_RESET_REG_MISC_INT_ENABLE 4 | |
62 | ||
63 | #define ATH79_MISC_IRQ_COUNT 32 | |
64 | -#define ATH79_MISC_PERF_IRQ 5 | |
65 | - | |
66 | -static int ath79_perfcount_irq; | |
67 | - | |
68 | -int get_c0_perfcount_int(void) | |
69 | -{ | |
70 | - return ath79_perfcount_irq; | |
71 | -} | |
72 | -EXPORT_SYMBOL_GPL(get_c0_perfcount_int); | |
73 | ||
74 | static void ath79_misc_irq_handler(struct irq_desc *desc) | |
75 | { | |
76 | @@ -122,8 +113,6 @@ static void __init ath79_misc_intc_domai | |
77 | { | |
78 | void __iomem *base = domain->host_data; | |
79 | ||
80 | - ath79_perfcount_irq = irq_create_mapping(domain, ATH79_MISC_PERF_IRQ); | |
81 | - | |
82 | /* Disable and clear all interrupts */ | |
83 | __raw_writel(0, base + AR71XX_RESET_REG_MISC_INT_ENABLE); | |
84 | __raw_writel(0, base + AR71XX_RESET_REG_MISC_INT_STATUS); |