Patchwork [RFC,v0,1/1] ppc64: ignore interrupts while offline

login
register
mail settings
Submitter Tiejun Chen
Date Jan. 15, 2013, 10:31 a.m.
Message ID <1358245860-6546-1-git-send-email-tiejun.chen@windriver.com>
Download mbox | patch
Permalink /patch/212073/
State Not Applicable
Headers show

Comments

Tiejun Chen - Jan. 15, 2013, 10:31 a.m.
With lazy interrupt, some implementations of hotplug will
get some interrupts even while offline, just ignore these.

Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com>
---
 arch/powerpc/kernel/irq.c |    6 ++++++
 1 file changed, 6 insertions(+)
Tiejun Chen - Jan. 16, 2013, 3 a.m.
Please ignore this to check next version.

Tiejun

On 01/15/2013 06:31 PM, Tiejun Chen wrote:
> With lazy interrupt, some implementations of hotplug will
> get some interrupts even while offline, just ignore these.
>
> Signed-off-by: Tiejun Chen <tiejun.chen@windriver.com>
> ---
>   arch/powerpc/kernel/irq.c |    6 ++++++
>   1 file changed, 6 insertions(+)
>
> diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
> index 4f97fe3..dbca574 100644
> --- a/arch/powerpc/kernel/irq.c
> +++ b/arch/powerpc/kernel/irq.c
> @@ -144,6 +144,12 @@ notrace unsigned int __check_irq_replay(void)
>   	 */
>   	unsigned char happened = local_paca->irq_happened;
>
> +	/* Some implementations of hotplug will get some interrupts while
> +	 * offline, just ignore these.
> +	 */
> +	if (cpu_is_offline(smp_processor_id()))
> +		return 0;
> +
>   	/* Clear bit 0 which we wouldn't clear otherwise */
>   	local_paca->irq_happened &= ~PACA_IRQ_HARD_DIS;
>
>

Patch

diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 4f97fe3..dbca574 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -144,6 +144,12 @@  notrace unsigned int __check_irq_replay(void)
 	 */
 	unsigned char happened = local_paca->irq_happened;
 
+	/* Some implementations of hotplug will get some interrupts while
+	 * offline, just ignore these.
+	 */
+	if (cpu_is_offline(smp_processor_id()))
+		return 0;
+
 	/* Clear bit 0 which we wouldn't clear otherwise */
 	local_paca->irq_happened &= ~PACA_IRQ_HARD_DIS;