From 9b1eb973e3c20fa447641362de613b2c312421c6 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 26 Apr 2018 14:57:05 +0200 Subject: [PATCH] drop irqchip-mips-gic-fix-local-interrupts.patch from 4.9 --- ...rqchip-mips-gic-fix-local-interrupts.patch | 85 ------------------- queue-4.9/series | 1 - 2 files changed, 86 deletions(-) delete mode 100644 queue-4.9/irqchip-mips-gic-fix-local-interrupts.patch diff --git a/queue-4.9/irqchip-mips-gic-fix-local-interrupts.patch b/queue-4.9/irqchip-mips-gic-fix-local-interrupts.patch deleted file mode 100644 index 6fd89bf54ee..00000000000 --- a/queue-4.9/irqchip-mips-gic-fix-local-interrupts.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 4cfffcfa5106492f5785924ce2e9af49f075999b Mon Sep 17 00:00:00 2001 -From: Marcin Nowakowski -Date: Wed, 25 Jan 2017 15:08:25 +0100 -Subject: irqchip/mips-gic: Fix local interrupts - -From: Marcin Nowakowski - -commit 4cfffcfa5106492f5785924ce2e9af49f075999b upstream. - -Some local interrupts are not initialised properly at the moment and -cannot be used since the domain's alloc method is never called for them. - -This has been observed earlier and partially fixed in commit -e875bd66dfb ("irqchip/mips-gic: Fix local interrupts"), but that change -still relied on the interrupt to be requested by an external driver (eg. -drivers/clocksource/mips-gic-timer.c). - -This does however not solve the issue for interrupts that are not -referenced by any driver through the device tree and results in -request_irq() calls returning -ENOSYS. It can be observed when attempting -to use perf tool to access hardware performance counters. - -Fix this by explicitly calling irq_create_fwspec_mapping() for local -interrupts. - -Fixes: e875bd66dfb ("irqchip/mips-gic: Fix local interrupts") -Signed-off-by: Marcin Nowakowski -Cc: Paul Burton -Cc: Thomas Gleixner -Cc: Jason Cooper -Cc: Marc Zyngier -Cc: linux-mips@linux-mips.org -Signed-off-by: Marc Zyngier -Cc: Amit Pundir -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/irqchip/irq-mips-gic.c | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - ---- a/drivers/irqchip/irq-mips-gic.c -+++ b/drivers/irqchip/irq-mips-gic.c -@@ -969,6 +969,34 @@ static struct irq_domain_ops gic_ipi_dom - .match = gic_ipi_domain_match, - }; - -+static void __init gic_map_single_int(struct device_node *node, -+ unsigned int irq) -+{ -+ unsigned int linux_irq; -+ struct irq_fwspec local_int_fwspec = { -+ .fwnode = &node->fwnode, -+ .param_count = 3, -+ .param = { -+ [0] = GIC_LOCAL, -+ [1] = irq, -+ [2] = IRQ_TYPE_NONE, -+ }, -+ }; -+ -+ if (!gic_local_irq_is_routable(irq)) -+ return; -+ -+ linux_irq = irq_create_fwspec_mapping(&local_int_fwspec); -+ WARN_ON(!linux_irq); -+} -+ -+static void __init gic_map_interrupts(struct device_node *node) -+{ -+ gic_map_single_int(node, GIC_LOCAL_INT_TIMER); -+ gic_map_single_int(node, GIC_LOCAL_INT_PERFCTR); -+ gic_map_single_int(node, GIC_LOCAL_INT_FDC); -+} -+ - static void __init __gic_init(unsigned long gic_base_addr, - unsigned long gic_addrspace_size, - unsigned int cpu_vec, unsigned int irqbase, -@@ -1069,6 +1097,7 @@ static void __init __gic_init(unsigned l - - bitmap_copy(ipi_available, ipi_resrv, GIC_MAX_INTRS); - gic_basic_init(); -+ gic_map_interrupts(node); - } - - void __init gic_init(unsigned long gic_base_addr, diff --git a/queue-4.9/series b/queue-4.9/series index 745ce7e8f43..726edc7c145 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -13,7 +13,6 @@ input-drv260x-fix-initializing-overdrive-voltage.patch power-supply-bq2415x-check-for-null-acpi_id-to-avoid-null-pointer-dereference.patch stk-webcam-fix-an-endian-bug-in-stk_camera_read_reg.patch of-prevent-unaligned-access-in-of_alias_scan.patch -irqchip-mips-gic-fix-local-interrupts.patch ath9k_hw-check-if-the-chip-failed-to-wake-up.patch jbd2-fix-use-after-free-in-kjournald2.patch revert-perf-tools-decompress-kernel-module-when-reading-dso.patch -- 2.47.3