From c4c6c3a26a3db4fb24ea823f302c55f671a7e0cd Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 4 May 2015 23:42:03 +0200 Subject: [PATCH] remove 2 3.10 patches --- ...k-unmask-managment-per-irq-chip-type.patch | 108 ------------------ queue-3.10/series | 2 - ...p-atomic-context-in-graph_trace_open.patch | 85 -------------- 3 files changed, 195 deletions(-) delete mode 100644 queue-3.10/gpio-mvebu-fix-mask-unmask-managment-per-irq-chip-type.patch delete mode 100644 queue-3.10/tracing-handle-ftrace_dump-atomic-context-in-graph_trace_open.patch diff --git a/queue-3.10/gpio-mvebu-fix-mask-unmask-managment-per-irq-chip-type.patch b/queue-3.10/gpio-mvebu-fix-mask-unmask-managment-per-irq-chip-type.patch deleted file mode 100644 index 7d496d187c6..00000000000 --- a/queue-3.10/gpio-mvebu-fix-mask-unmask-managment-per-irq-chip-type.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 61819549f572edd7fce53f228c0d8420cdc85f71 Mon Sep 17 00:00:00 2001 -From: Gregory CLEMENT -Date: Thu, 2 Apr 2015 17:11:11 +0200 -Subject: gpio: mvebu: Fix mask/unmask managment per irq chip type - -From: Gregory CLEMENT - -commit 61819549f572edd7fce53f228c0d8420cdc85f71 upstream. - -Level IRQ handlers and edge IRQ handler are managed by tow different -sets of registers. But currently the driver uses the same mask for the -both registers. It lead to issues with the following scenario: - -First, an IRQ is requested on a GPIO to be triggered on front. After, -this an other IRQ is requested for a GPIO of the same bank but -triggered on level. Then the first one will be also setup to be -triggered on level. It leads to an interrupt storm. - -The different kind of handler are already associated with two -different irq chip type. With this patch the driver uses a private -mask for each one which solves this issue. - -It has been tested on an Armada XP based board and on an Armada 375 -board. For the both boards, with this patch is applied, there is no -such interrupt storm when running the previous scenario. - -This bug was already fixed but in a different way in the legacy -version of this driver by Evgeniy Dushistov: -9ece8839b1277fb9128ff6833411614ab6c88d68 "ARM: orion: Fix for certain -sequence of request_irq can cause irq storm". The fact the new version -of the gpio drive could be affected had been discussed there: -http://thread.gmane.org/gmane.linux.ports.arm.kernel/344670/focus=364012 - -Reported-by: Evgeniy A. Dushistov -Signed-off-by: Gregory CLEMENT -Signed-off-by: Linus Walleij -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/gpio/gpio-mvebu.c | 24 ++++++++++++++++-------- - 1 file changed, 16 insertions(+), 8 deletions(-) - ---- a/drivers/gpio/gpio-mvebu.c -+++ b/drivers/gpio/gpio-mvebu.c -@@ -304,11 +304,13 @@ static void mvebu_gpio_edge_irq_mask(str - { - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); - struct mvebu_gpio_chip *mvchip = gc->private; -+ struct irq_chip_type *ct = irq_data_get_chip_type(d); - u32 mask = 1 << (d->irq - gc->irq_base); - - irq_gc_lock(gc); -- gc->mask_cache &= ~mask; -- writel_relaxed(gc->mask_cache, mvebu_gpioreg_edge_mask(mvchip)); -+ ct->mask_cache_priv &= ~mask; -+ -+ writel_relaxed(ct->mask_cache_priv, mvebu_gpioreg_edge_mask(mvchip)); - irq_gc_unlock(gc); - } - -@@ -316,11 +318,13 @@ static void mvebu_gpio_edge_irq_unmask(s - { - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); - struct mvebu_gpio_chip *mvchip = gc->private; -+ struct irq_chip_type *ct = irq_data_get_chip_type(d); -+ - u32 mask = 1 << (d->irq - gc->irq_base); - - irq_gc_lock(gc); -- gc->mask_cache |= mask; -- writel_relaxed(gc->mask_cache, mvebu_gpioreg_edge_mask(mvchip)); -+ ct->mask_cache_priv |= mask; -+ writel_relaxed(ct->mask_cache_priv, mvebu_gpioreg_edge_mask(mvchip)); - irq_gc_unlock(gc); - } - -@@ -328,11 +332,13 @@ static void mvebu_gpio_level_irq_mask(st - { - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); - struct mvebu_gpio_chip *mvchip = gc->private; -+ struct irq_chip_type *ct = irq_data_get_chip_type(d); -+ - u32 mask = 1 << (d->irq - gc->irq_base); - - irq_gc_lock(gc); -- gc->mask_cache &= ~mask; -- writel_relaxed(gc->mask_cache, mvebu_gpioreg_level_mask(mvchip)); -+ ct->mask_cache_priv &= ~mask; -+ writel_relaxed(ct->mask_cache_priv, mvebu_gpioreg_level_mask(mvchip)); - irq_gc_unlock(gc); - } - -@@ -340,11 +346,13 @@ static void mvebu_gpio_level_irq_unmask( - { - struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); - struct mvebu_gpio_chip *mvchip = gc->private; -+ struct irq_chip_type *ct = irq_data_get_chip_type(d); -+ - u32 mask = 1 << (d->irq - gc->irq_base); - - irq_gc_lock(gc); -- gc->mask_cache |= mask; -- writel_relaxed(gc->mask_cache, mvebu_gpioreg_level_mask(mvchip)); -+ ct->mask_cache_priv |= mask; -+ writel_relaxed(ct->mask_cache_priv, mvebu_gpioreg_level_mask(mvchip)); - irq_gc_unlock(gc); - } - diff --git a/queue-3.10/series b/queue-3.10/series index 66385afa548..d1aad07341f 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -45,14 +45,12 @@ drivers-parport-kconfig-exclude-arm64-for-parport_pc.patch acpica-utilities-split-io-address-types-from-data-type-models.patch xtensa-xtfpga-fix-hardware-lockup-caused-by-lcd-driver.patch xtensa-provide-__nr_sync_file_range2-instead-of-__nr_sync_file_range.patch -gpio-mvebu-fix-mask-unmask-managment-per-irq-chip-type.patch drivers-hv-vmbus-fix-a-bug-in-the-error-path-in-vmbus_open.patch mvsas-fix-panic-on-expander-attached-sata-devices.patch stk1160-make-sure-current-buffer-is-released.patch ib-core-disallow-registering-0-sized-memory-region.patch ib-core-don-t-disallow-registering-region-starting-at-0x0.patch ib-mlx4-fix-wqe-lso-segment-calculation.patch -tracing-handle-ftrace_dump-atomic-context-in-graph_trace_open.patch i2c-core-export-bus-recovery-functions.patch drm-radeon-fix-doublescan-modes-v2.patch drm-i915-cope-with-large-i2c-transfers.patch diff --git a/queue-3.10/tracing-handle-ftrace_dump-atomic-context-in-graph_trace_open.patch b/queue-3.10/tracing-handle-ftrace_dump-atomic-context-in-graph_trace_open.patch deleted file mode 100644 index c91705a51d5..00000000000 --- a/queue-3.10/tracing-handle-ftrace_dump-atomic-context-in-graph_trace_open.patch +++ /dev/null @@ -1,85 +0,0 @@ -From ef99b88b16bee753fa51207abdc58ae660453ec6 Mon Sep 17 00:00:00 2001 -From: Rabin Vincent -Date: Mon, 13 Apr 2015 22:30:12 +0200 -Subject: tracing: Handle ftrace_dump() atomic context in graph_trace_open() - -From: Rabin Vincent - -commit ef99b88b16bee753fa51207abdc58ae660453ec6 upstream. - -graph_trace_open() can be called in atomic context from ftrace_dump(). -Use GFP_ATOMIC for the memory allocations when that's the case, in order -to avoid the following splat. - - BUG: sleeping function called from invalid context at mm/slab.c:2849 - in_atomic(): 1, irqs_disabled(): 128, pid: 0, name: swapper/0 - Backtrace: - .. - [<8004dc94>] (__might_sleep) from [<801371f4>] (kmem_cache_alloc_trace+0x160/0x238) - r7:87800040 r6:000080d0 r5:810d16e8 r4:000080d0 - [<80137094>] (kmem_cache_alloc_trace) from [<800cbd60>] (graph_trace_open+0x30/0xd0) - r10:00000100 r9:809171a8 r8:00008e28 r7:810d16f0 r6:00000001 r5:810d16e8 - r4:810d16f0 - [<800cbd30>] (graph_trace_open) from [<800c79c4>] (trace_init_global_iter+0x50/0x9c) - r8:00008e28 r7:808c853c r6:00000001 r5:810d16e8 r4:810d16f0 r3:800cbd30 - [<800c7974>] (trace_init_global_iter) from [<800c7aa0>] (ftrace_dump+0x90/0x2ec) - r4:810d2580 r3:00000000 - [<800c7a10>] (ftrace_dump) from [<80414b2c>] (sysrq_ftrace_dump+0x1c/0x20) - r10:00000100 r9:809171a8 r8:808f6e7c r7:00000001 r6:00000007 r5:0000007a - r4:808d5394 - [<80414b10>] (sysrq_ftrace_dump) from [<800169b8>] (return_to_handler+0x0/0x18) - [<80415498>] (__handle_sysrq) from [<800169b8>] (return_to_handler+0x0/0x18) - r8:808c8100 r7:808c8444 r6:00000101 r5:00000010 r4:84eb3210 - [<80415668>] (handle_sysrq) from [<800169b8>] (return_to_handler+0x0/0x18) - [<8042a760>] (pl011_int) from [<800169b8>] (return_to_handler+0x0/0x18) - r10:809171bc r9:809171a8 r8:00000001 r7:00000026 r6:808c6000 r5:84f01e60 - r4:8454fe00 - [<8007782c>] (handle_irq_event_percpu) from [<80077b44>] (handle_irq_event+0x4c/0x6c) - r10:808c7ef0 r9:87283e00 r8:00000001 r7:00000000 r6:8454fe00 r5:84f01e60 - r4:84f01e00 - [<80077af8>] (handle_irq_event) from [<8007aa28>] (handle_fasteoi_irq+0xf0/0x1ac) - r6:808f52a4 r5:84f01e60 r4:84f01e00 r3:00000000 - [<8007a938>] (handle_fasteoi_irq) from [<80076dc0>] (generic_handle_irq+0x3c/0x4c) - r6:00000026 r5:00000000 r4:00000026 r3:8007a938 - [<80076d84>] (generic_handle_irq) from [<80077128>] (__handle_domain_irq+0x8c/0xfc) - r4:808c1e38 r3:0000002e - [<8007709c>] (__handle_domain_irq) from [<800087b8>] (gic_handle_irq+0x34/0x6c) - r10:80917748 r9:00000001 r8:88802100 r7:808c7ef0 r6:808c8fb0 r5:00000015 - r4:8880210c r3:808c7ef0 - [<80008784>] (gic_handle_irq) from [<80014044>] (__irq_svc+0x44/0x7c) - -Link: http://lkml.kernel.org/r/1428953721-31349-1-git-send-email-rabin@rab.in -Link: http://lkml.kernel.org/r/1428957012-2319-1-git-send-email-rabin@rab.in - -Signed-off-by: Rabin Vincent -Signed-off-by: Steven Rostedt -Signed-off-by: Greg Kroah-Hartman - ---- - kernel/trace/trace_functions_graph.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- a/kernel/trace/trace_functions_graph.c -+++ b/kernel/trace/trace_functions_graph.c -@@ -1382,15 +1382,19 @@ void graph_trace_open(struct trace_itera - { - /* pid and depth on the last trace processed */ - struct fgraph_data *data; -+ gfp_t gfpflags; - int cpu; - - iter->private = NULL; - -- data = kzalloc(sizeof(*data), GFP_KERNEL); -+ /* We can be called in atomic context via ftrace_dump() */ -+ gfpflags = (in_atomic() || irqs_disabled()) ? GFP_ATOMIC : GFP_KERNEL; -+ -+ data = kzalloc(sizeof(*data), gfpflags); - if (!data) - goto out_err; - -- data->cpu_data = alloc_percpu(struct fgraph_cpu_data); -+ data->cpu_data = alloc_percpu_gfp(struct fgraph_cpu_data, gfpflags); - if (!data->cpu_data) - goto out_err_free; - -- 2.47.3