* [PATCH] irqchip: tegra: fix wrong data being passed as the irqdomain chip data
@ 2015-05-09 20:06 Lucas Stach
[not found] ` <1431202014-3136-1-git-send-email-dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Lucas Stach @ 2015-05-09 20:06 UTC (permalink / raw)
To: Thomas Gleixner, Jason Cooper, Marc Zyngier
Cc: Stephen Warren, Thierry Reding, Alexandre Courbot, linux-kernel,
linux-tegra
The irq chip functions use the irq chipdata directly as the base register
address of the controller, so this should be passed in instead of a pointer
to the array address holding the base address.
This fixes Tegra20 CPUidle as now the un-/masking of IRQs at the LIC level
works again, but more importantly it fixes the resulting memory corruption.
Signed-off-by: Lucas Stach <dev@lynxeye.de>
---
This is an important fix and should go into 4.1.
---
drivers/irqchip/irq-tegra.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-tegra.c b/drivers/irqchip/irq-tegra.c
index 51c485d..f67bbd8 100644
--- a/drivers/irqchip/irq-tegra.c
+++ b/drivers/irqchip/irq-tegra.c
@@ -264,7 +264,7 @@ static int tegra_ictlr_domain_alloc(struct irq_domain *domain,
irq_domain_set_hwirq_and_chip(domain, virq + i, hwirq + i,
&tegra_ictlr_chip,
- &info->base[ictlr]);
+ info->base[ictlr]);
}
parent_args = *args;
--
2.1.0
^ permalink raw reply related [flat|nested] 3+ messages in thread[parent not found: <1431202014-3136-1-git-send-email-dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>]
* Re: [PATCH] irqchip: tegra: fix wrong data being passed as the irqdomain chip data [not found] ` <1431202014-3136-1-git-send-email-dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org> @ 2015-05-13 9:35 ` Thierry Reding 2015-05-13 22:18 ` Stephen Warren 1 sibling, 0 replies; 3+ messages in thread From: Thierry Reding @ 2015-05-13 9:35 UTC (permalink / raw) To: Lucas Stach Cc: Thomas Gleixner, Jason Cooper, Marc Zyngier, Stephen Warren, Alexandre Courbot, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 1368 bytes --] On Sat, May 09, 2015 at 10:06:54PM +0200, Lucas Stach wrote: > The irq chip functions use the irq chipdata directly as the base register > address of the controller, so this should be passed in instead of a pointer > to the array address holding the base address. > > This fixes Tegra20 CPUidle as now the un-/masking of IRQs at the LIC level > works again, but more importantly it fixes the resulting memory corruption. > > Signed-off-by: Lucas Stach <dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org> > --- > This is an important fix and should go into 4.1. > --- > drivers/irqchip/irq-tegra.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) This does indeed fix a boot regression on Tegra20. Unfortunately this is not exposed on any platform that uses PCIe because PCIe needs to disable the CPUidle LP2 state as a workaround for a hardware bug. However, I was able to reproduce the regression on TrimSlice by disabling PCIe, hence keeping CPUidle LP2 activated. I reproduced with v4.1-rc3 and applying this patch on top restores functionality. Thanks for tracking this down Lucas. I just noticed that Thomas already applied this while I was testing it, but here goes anyway: Tested-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> Acked-by: Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> [-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] irqchip: tegra: fix wrong data being passed as the irqdomain chip data [not found] ` <1431202014-3136-1-git-send-email-dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org> 2015-05-13 9:35 ` Thierry Reding @ 2015-05-13 22:18 ` Stephen Warren 1 sibling, 0 replies; 3+ messages in thread From: Stephen Warren @ 2015-05-13 22:18 UTC (permalink / raw) To: Lucas Stach Cc: Thomas Gleixner, Jason Cooper, Marc Zyngier, Thierry Reding, Alexandre Courbot, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-tegra-u79uwXL29TY76Z2rM5mHXA On 05/09/2015 02:06 PM, Lucas Stach wrote: > The irq chip functions use the irq chipdata directly as the base register > address of the controller, so this should be passed in instead of a pointer > to the array address holding the base address. > > This fixes Tegra20 CPUidle as now the un-/masking of IRQs at the LIC level > works again, but more importantly it fixes the resulting memory corruption. Tested-by: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org> Tested on NVIDIA Seaboard (which is affected by the bug in the default configuration/DT) with the patch applied on to of 4.1-rc3. ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-05-13 22:18 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-09 20:06 [PATCH] irqchip: tegra: fix wrong data being passed as the irqdomain chip data Lucas Stach
[not found] ` <1431202014-3136-1-git-send-email-dev-8ppwABl0HbeELgA04lAiVw@public.gmane.org>
2015-05-13 9:35 ` Thierry Reding
2015-05-13 22:18 ` Stephen Warren
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).