* [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
* 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).