Subject: Re: linux-next: manual merge of the tip tree with the sparc tree

From: Daniel Hellstrom <[email-masked]>
Date: Thu, 19 May 2011 15:37:59 +0200

Stephen Rothwell wrote:

>Hi all,
>
>Today's linux-next merge of the tip tree got a conflict in
>arch/sparc/kernel/smp_32.c between commit d6d048192b1d ("sparc32:
>implement SMP IPIs using the generic functions") from the sparc tree and
>commit 184748cc50b2 ("sched: Provide scheduler_ipi() callback in response
>to smp_send_reschedule()") from the tip tree.
>
>I fixed it up (I am pretty sure that the sparc tree patch supercedes the
>tip tree one) and can carry the fix as necessary.
>  
>
Thanks for noticing this.

I looked at linux-next and I think the call to the scheduler_ipi is 
missing in the resched interrupt routine. I believe that the below patch 
should be applied ontop of linux-next. Could you include it in the merge 
or what do you suggest I do?

Thanks,
Daniel

diff --git a/arch/sparc/kernel/smp_32.c b/arch/sparc/kernel/smp_32.c
index 41102c5..d5b3958 100644
--- a/arch/sparc/kernel/smp_32.c
+++ b/arch/sparc/kernel/smp_32.c
@@ -156,11 +156,11 @@ void arch_send_call_function_ipi_mask(const struct 
cpumask *mask)

 void smp_resched_interrupt(void)
 {
+       irq_enter();
+       scheduler_ipi();
        local_cpu_data().irq_resched_count++;
-       /*
-        * do nothing, since it all was about calling re-schedule
-        * routine called by interrupt return code.
-        */
+       irq_exit();
+       /* re-schedule routine called by interrupt return code. */
 }

 void smp_call_function_single_interrupt(void)