All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <1295262433.30950.53.camel@laptop>

diff --git a/a/1.txt b/N1/1.txt
index 98f6b9d..c962990 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -48,25 +48,28 @@ index 42aa078..c4a570b 100644
  			   is done by the interrupt return path.  */
 +			scheduler_ipi();
  			break;
- 
+=20
  		case IPI_CALL_FUNC:
 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
 index 9066473..ffde790 100644
 --- a/arch/arm/kernel/smp.c
 +++ b/arch/arm/kernel/smp.c
-@@ -579,6 +579,7 @@ asmlinkage void __exception do_IPI(struct pt_regs *regs)
+@@ -579,6 +579,7 @@ asmlinkage void __exception do_IPI(struct pt_regs *regs=
+)
  				 * nothing more to do - eveything is
  				 * done on the interrupt return path
  				 */
 +				scheduler_ipi();
  				break;
- 
+=20
  			case IPI_CALL_FUNC:
-diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c
+diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/sm=
+p.c
 index a17107a..e210f8a 100644
 --- a/arch/blackfin/mach-common/smp.c
 +++ b/arch/blackfin/mach-common/smp.c
-@@ -156,6 +156,7 @@ static irqreturn_t ipi_handler(int irq, void *dev_instance)
+@@ -156,6 +156,7 @@ static irqreturn_t ipi_handler(int irq, void *dev_insta=
+nce)
  		case BFIN_IPI_RESCHEDULE:
  			/* That's the easiest one; leave it to
  			 * return_from_int. */
@@ -75,22 +78,24 @@ index a17107a..e210f8a 100644
  			break;
  		case BFIN_IPI_CALL_FUNC:
 @@ -301,7 +302,7 @@ void smp_send_reschedule(int cpu)
- 
- 	msg = kzalloc(sizeof(*msg), GFP_ATOMIC);
+=20
+ 	msg =3D kzalloc(sizeof(*msg), GFP_ATOMIC);
  	if (!msg)
 -		return;
 +		return; /* XXX unreliable needs fixing ! */
  	INIT_LIST_HEAD(&msg->list);
- 	msg->type = BFIN_IPI_RESCHEDULE;
- 
-diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c
+ 	msg->type =3D BFIN_IPI_RESCHEDULE;
+=20
+diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/sm=
+p.c
 index 84fed3b..86e3c76 100644
 --- a/arch/cris/arch-v32/kernel/smp.c
 +++ b/arch/cris/arch-v32/kernel/smp.c
-@@ -340,15 +340,18 @@ irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id)
- 
- 	ipi = REG_RD(intr_vect, irq_regs[smp_processor_id()], rw_ipi);
- 
+@@ -340,15 +340,18 @@ irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_=
+id)
+=20
+ 	ipi =3D REG_RD(intr_vect, irq_regs[smp_processor_id()], rw_ipi);
+=20
 +	if (ipi.vector & IPI_SCHEDULE) {
 +		scheduler_ipi();
 +	}
@@ -99,18 +104,18 @@ index 84fed3b..86e3c76 100644
 +		func(info);
  	}
  	if (ipi.vector & IPI_FLUSH_TLB) {
--		     if (flush_mm == FLUSH_ALL)
+-		     if (flush_mm =3D=3D FLUSH_ALL)
 -			 __flush_tlb_all();
--		     else if (flush_vma == FLUSH_ALL)
-+		if (flush_mm == FLUSH_ALL)
+-		     else if (flush_vma =3D=3D FLUSH_ALL)
++		if (flush_mm =3D=3D FLUSH_ALL)
 +			__flush_tlb_all();
-+		else if (flush_vma == FLUSH_ALL)
++		else if (flush_vma =3D=3D FLUSH_ALL)
  			__flush_tlb_mm(flush_mm);
 -		     else
 +		else
  			__flush_tlb_page(flush_vma, flush_addr);
  	}
- 
+=20
 diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c
 index 9a26015..a580230 100644
 --- a/arch/ia64/kernel/irq_ia64.c
@@ -120,10 +125,11 @@ index 9a26015..a580230 100644
  #include <linux/ratelimit.h>
  #include <linux/acpi.h>
 +#include <linux/sched.h>
- 
+=20
  #include <asm/delay.h>
  #include <asm/intrinsics.h>
-@@ -496,6 +497,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)
+@@ -496,6 +497,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *re=
+gs)
  			smp_local_flush_tlb();
  			kstat_incr_irqs_this_cpu(irq, desc);
  		} else if (unlikely(IS_RESCHEDULE(vector))) {
@@ -137,7 +143,7 @@ index a3fb7cf..2f235a3 100644
 +++ b/arch/ia64/xen/irq_xen.c
 @@ -92,6 +92,8 @@ static unsigned short saved_irq_cnt;
  static int xen_slab_ready;
- 
+=20
  #ifdef CONFIG_SMP
 +#include <linux/sched.h>
 +
@@ -150,49 +156,57 @@ index a3fb7cf..2f235a3 100644
  {
 +	return IRQ_HANDLED;
 +}
- 
+=20
 +static irqreturn_t
 +xen_resched_handler(int irq, void *dev_id)
 +{
 +	scheduler_ipi();
  	return IRQ_HANDLED;
  }
- 
-@@ -110,7 +118,7 @@ static struct irqaction xen_ipi_irqaction = {
+=20
+@@ -110,7 +118,7 @@ static struct irqaction xen_ipi_irqaction =3D {
  };
- 
- static struct irqaction xen_resched_irqaction = {
--	.handler =	xen_dummy_handler,
-+	.handler =	xen_resched_handler,
- 	.flags =	IRQF_DISABLED,
- 	.name =		"resched"
+=20
+ static struct irqaction xen_resched_irqaction =3D {
+-	.handler =3D	xen_dummy_handler,
++	.handler =3D	xen_resched_handler,
+ 	.flags =3D	IRQF_DISABLED,
+ 	.name =3D		"resched"
  };
 diff --git a/arch/m32r/kernel/smp.c b/arch/m32r/kernel/smp.c
 index 31cef20..f0ecc3f 100644
 --- a/arch/m32r/kernel/smp.c
 +++ b/arch/m32r/kernel/smp.c
 @@ -138,7 +138,7 @@ void smp_send_reschedule(int cpu_id)
-  *==========================================================================*/
+  *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+*/
  void smp_reschedule_interrupt(void)
  {
 -	/* nothing to do */
 +	scheduler_ipi();
  }
- 
- /*==========================================================================*
+=20
+ /*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+*
 diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
 index 39c0825..0443e91 100644
 --- a/arch/mips/kernel/smtc.c
 +++ b/arch/mips/kernel/smtc.c
-@@ -931,6 +931,7 @@ static void post_direct_ipi(int cpu, struct smtc_ipi *pipi)
+@@ -931,6 +931,7 @@ static void post_direct_ipi(int cpu, struct smtc_ipi *p=
+ipi)
  static void ipi_resched_interrupt(void)
  {
  	/* Return from interrupt should be enough to cause scheduler check */
 +	scheduler_ipi();
  }
- 
+=20
  static void ipi_call_interrupt(void)
-diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.c
+diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.=
+c
 index 47b347c..513a301 100644
 --- a/arch/mips/sibyte/bcm1480/smp.c
 +++ b/arch/mips/sibyte/bcm1480/smp.c
@@ -201,20 +215,20 @@ index 47b347c..513a301 100644
  #include <linux/smp.h>
  #include <linux/kernel_stat.h>
 +#include <linux/sched.h>
- 
+=20
  #include <asm/mmu_context.h>
  #include <asm/io.h>
 @@ -189,10 +190,8 @@ void bcm1480_mailbox_interrupt(void)
  	/* Clear the mailbox to clear the interrupt */
  	__raw_writeq(((u64)action)<<48, mailbox_0_clear_regs[cpu]);
- 
+=20
 -	/*
 -	 * Nothing to do for SMP_RESCHEDULE_YOURSELF; returning from the
 -	 * interrupt will do the reschedule for us
 -	 */
 +	if (actione & SMP_RESCHEDULE_YOURSELF)
 +		scheduler_ipi();
- 
+=20
  	if (action & SMP_CALL_FUNCTION)
  		smp_call_function_interrupt();
 diff --git a/arch/mips/sibyte/sb1250/smp.c b/arch/mips/sibyte/sb1250/smp.c
@@ -226,20 +240,20 @@ index c00a5cb..38e7f6b 100644
  #include <linux/smp.h>
  #include <linux/kernel_stat.h>
 +#include <linux/sched.h>
- 
+=20
  #include <asm/mmu_context.h>
  #include <asm/io.h>
 @@ -177,10 +178,8 @@ void sb1250_mailbox_interrupt(void)
  	/* Clear the mailbox to clear the interrupt */
  	____raw_writeq(((u64)action) << 48, mailbox_clear_regs[cpu]);
- 
+=20
 -	/*
 -	 * Nothing to do for SMP_RESCHEDULE_YOURSELF; returning from the
 -	 * interrupt will do the reschedule for us
 -	 */
 +	if (action & SMP_RESCHEDULE_YOURSELF)
 +		scheduler_ipi();
- 
+=20
  	if (action & SMP_CALL_FUNCTION)
  		smp_call_function_interrupt();
 diff --git a/arch/mn10300/kernel/smp.c b/arch/mn10300/kernel/smp.c
@@ -254,13 +268,13 @@ index 0dcd1c6..17f16ca 100644
 +	scheduler_ipi();
  	return IRQ_HANDLED;
  }
- 
+=20
 diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c
 index 69d63d3..f8f7970 100644
 --- a/arch/parisc/kernel/smp.c
 +++ b/arch/parisc/kernel/smp.c
 @@ -155,6 +155,7 @@ ipi_interrupt(int irq, void *dev_id)
- 				
+ 			=09
  			case IPI_RESCHEDULE:
  				smp_debug(100, KERN_DEBUG "CPU%d IPI_RESCHEDULE\n", this_cpu);
 +				scheduler_ipi();
@@ -271,34 +285,36 @@ diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
 index 68034bb..7ee0fc3 100644
 --- a/arch/powerpc/kernel/smp.c
 +++ b/arch/powerpc/kernel/smp.c
-@@ -128,6 +128,7 @@ static irqreturn_t call_function_action(int irq, void *data)
+@@ -128,6 +128,7 @@ static irqreturn_t call_function_action(int irq, void *=
+data)
  static irqreturn_t reschedule_action(int irq, void *data)
  {
  	/* we just need the return path side effect of checking need_resched */
 +	scheduler_ipi();
  	return IRQ_HANDLED;
  }
- 
+=20
 diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
 index 94cf510..61789e8 100644
 --- a/arch/s390/kernel/smp.c
 +++ b/arch/s390/kernel/smp.c
-@@ -163,12 +163,12 @@ static void do_ext_call_interrupt(unsigned int ext_int_code,
- 
+@@ -163,12 +163,12 @@ static void do_ext_call_interrupt(unsigned int ext_in=
+t_code,
+=20
  	/*
  	 * handle bit signal external calls
 -	 *
 -	 * For the ec_schedule signal we have to do nothing. All the work
 -	 * is done automatically when we return from the interrupt.
  	 */
- 	bits = xchg(&S390_lowcore.ext_call_fast, 0);
- 
+ 	bits =3D xchg(&S390_lowcore.ext_call_fast, 0);
+=20
 +	if (test_bit(ec_schedule, &bits))
 +		scheduler_ipi();
 +
  	if (test_bit(ec_call_function, &bits))
  		generic_smp_call_function_interrupt();
- 
+=20
 diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c
 index 509b36b..6207561 100644
 --- a/arch/sh/kernel/smp.c
@@ -323,14 +339,15 @@ diff --git a/arch/sparc/kernel/smp_32.c b/arch/sparc/kernel/smp_32.c
 index 91c10fb..042d8c9 100644
 --- a/arch/sparc/kernel/smp_32.c
 +++ b/arch/sparc/kernel/smp_32.c
-@@ -125,7 +125,7 @@ struct linux_prom_registers smp_penguin_ctable __cpuinitdata = { 0 };
- 
+@@ -125,7 +125,7 @@ struct linux_prom_registers smp_penguin_ctable __cpuini=
+tdata =3D { 0 };
+=20
  void smp_send_reschedule(int cpu)
  {
 -	/* See sparc64 */
 +	scheduler_ipi();
  }
- 
+=20
  void smp_send_stop(void)
 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
 index b6a2b8f..68e26e2 100644
@@ -342,18 +359,19 @@ index b6a2b8f..68e26e2 100644
  	clear_softint(1 << irq);
 +	scheduler_ipi();
  }
- 
+=20
  /* This is a nop because we capture all other cpus
 diff --git a/arch/tile/kernel/smp.c b/arch/tile/kernel/smp.c
 index 9575b37..91a1ddf 100644
 --- a/arch/tile/kernel/smp.c
 +++ b/arch/tile/kernel/smp.c
-@@ -190,6 +190,7 @@ static irqreturn_t handle_reschedule_ipi(int irq, void *token)
+@@ -190,6 +190,7 @@ static irqreturn_t handle_reschedule_ipi(int irq, void =
+*token)
  	 * profiler count in the meantime.
  	 */
  	__get_cpu_var(irq_stat).irq_resched_count++;
 +	scheduler_ipi();
- 
+=20
  	return IRQ_HANDLED;
  }
 diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c
@@ -362,12 +380,12 @@ index 106bf27..eefb107 100644
 +++ b/arch/um/kernel/smp.c
 @@ -173,7 +173,7 @@ void IPI_handler(int cpu)
  			break;
- 
+=20
  		case 'R':
 -			set_tsk_need_resched(current);
 +			scheduler_ipi();
  			break;
- 
+=20
  		case 'S':
 diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
 index 513deac..e38c2d8 100644
@@ -385,23 +403,26 @@ diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
 index 72a4c79..6196fb1 100644
 --- a/arch/x86/xen/smp.c
 +++ b/arch/x86/xen/smp.c
-@@ -53,6 +53,7 @@ static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id);
+@@ -53,6 +53,7 @@ static irqreturn_t xen_call_function_single_interrupt(int=
+ irq, void *dev_id);
  static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)
  {
  	inc_irq_stat(irq_resched_count);
 +	scheduler_ipi();
- 
+=20
  	return IRQ_HANDLED;
  }
 diff --git a/include/linux/sched.h b/include/linux/sched.h
 index 341acbb..aa458dc 100644
 --- a/include/linux/sched.h
 +++ b/include/linux/sched.h
-@@ -2183,6 +2183,7 @@ extern void set_task_comm(struct task_struct *tsk, char *from);
+@@ -2183,6 +2183,7 @@ extern void set_task_comm(struct task_struct *tsk, ch=
+ar *from);
  extern char *get_task_comm(char *to, struct task_struct *tsk);
- 
+=20
  #ifdef CONFIG_SMP
 +static inline void scheduler_ipi(void) { }
- extern unsigned long wait_task_inactive(struct task_struct *, long match_state);
+ extern unsigned long wait_task_inactive(struct task_struct *, long match_s=
+tate);
  #else
  static inline unsigned long wait_task_inactive(struct task_struct *p,
diff --git a/a/content_digest b/N1/content_digest
index a442436..ad4366f 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -104,25 +104,28 @@
  " \t\t\t   is done by the interrupt return path.  */\n"
  "+\t\t\tscheduler_ipi();\n"
  " \t\t\tbreak;\n"
- " \n"
+ "=20\n"
  " \t\tcase IPI_CALL_FUNC:\n"
  "diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c\n"
  "index 9066473..ffde790 100644\n"
  "--- a/arch/arm/kernel/smp.c\n"
  "+++ b/arch/arm/kernel/smp.c\n"
- "@@ -579,6 +579,7 @@ asmlinkage void __exception do_IPI(struct pt_regs *regs)\n"
+ "@@ -579,6 +579,7 @@ asmlinkage void __exception do_IPI(struct pt_regs *regs=\n"
+ ")\n"
  " \t\t\t\t * nothing more to do - eveything is\n"
  " \t\t\t\t * done on the interrupt return path\n"
  " \t\t\t\t */\n"
  "+\t\t\t\tscheduler_ipi();\n"
  " \t\t\t\tbreak;\n"
- " \n"
+ "=20\n"
  " \t\t\tcase IPI_CALL_FUNC:\n"
- "diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/smp.c\n"
+ "diff --git a/arch/blackfin/mach-common/smp.c b/arch/blackfin/mach-common/sm=\n"
+ "p.c\n"
  "index a17107a..e210f8a 100644\n"
  "--- a/arch/blackfin/mach-common/smp.c\n"
  "+++ b/arch/blackfin/mach-common/smp.c\n"
- "@@ -156,6 +156,7 @@ static irqreturn_t ipi_handler(int irq, void *dev_instance)\n"
+ "@@ -156,6 +156,7 @@ static irqreturn_t ipi_handler(int irq, void *dev_insta=\n"
+ "nce)\n"
  " \t\tcase BFIN_IPI_RESCHEDULE:\n"
  " \t\t\t/* That's the easiest one; leave it to\n"
  " \t\t\t * return_from_int. */\n"
@@ -131,22 +134,24 @@
  " \t\t\tbreak;\n"
  " \t\tcase BFIN_IPI_CALL_FUNC:\n"
  "@@ -301,7 +302,7 @@ void smp_send_reschedule(int cpu)\n"
- " \n"
- " \tmsg = kzalloc(sizeof(*msg), GFP_ATOMIC);\n"
+ "=20\n"
+ " \tmsg =3D kzalloc(sizeof(*msg), GFP_ATOMIC);\n"
  " \tif (!msg)\n"
  "-\t\treturn;\n"
  "+\t\treturn; /* XXX unreliable needs fixing ! */\n"
  " \tINIT_LIST_HEAD(&msg->list);\n"
- " \tmsg->type = BFIN_IPI_RESCHEDULE;\n"
- " \n"
- "diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/smp.c\n"
+ " \tmsg->type =3D BFIN_IPI_RESCHEDULE;\n"
+ "=20\n"
+ "diff --git a/arch/cris/arch-v32/kernel/smp.c b/arch/cris/arch-v32/kernel/sm=\n"
+ "p.c\n"
  "index 84fed3b..86e3c76 100644\n"
  "--- a/arch/cris/arch-v32/kernel/smp.c\n"
  "+++ b/arch/cris/arch-v32/kernel/smp.c\n"
- "@@ -340,15 +340,18 @@ irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_id)\n"
- " \n"
- " \tipi = REG_RD(intr_vect, irq_regs[smp_processor_id()], rw_ipi);\n"
- " \n"
+ "@@ -340,15 +340,18 @@ irqreturn_t crisv32_ipi_interrupt(int irq, void *dev_=\n"
+ "id)\n"
+ "=20\n"
+ " \tipi =3D REG_RD(intr_vect, irq_regs[smp_processor_id()], rw_ipi);\n"
+ "=20\n"
  "+\tif (ipi.vector & IPI_SCHEDULE) {\n"
  "+\t\tscheduler_ipi();\n"
  "+\t}\n"
@@ -155,18 +160,18 @@
  "+\t\tfunc(info);\n"
  " \t}\n"
  " \tif (ipi.vector & IPI_FLUSH_TLB) {\n"
- "-\t\t     if (flush_mm == FLUSH_ALL)\n"
+ "-\t\t     if (flush_mm =3D=3D FLUSH_ALL)\n"
  "-\t\t\t __flush_tlb_all();\n"
- "-\t\t     else if (flush_vma == FLUSH_ALL)\n"
- "+\t\tif (flush_mm == FLUSH_ALL)\n"
+ "-\t\t     else if (flush_vma =3D=3D FLUSH_ALL)\n"
+ "+\t\tif (flush_mm =3D=3D FLUSH_ALL)\n"
  "+\t\t\t__flush_tlb_all();\n"
- "+\t\telse if (flush_vma == FLUSH_ALL)\n"
+ "+\t\telse if (flush_vma =3D=3D FLUSH_ALL)\n"
  " \t\t\t__flush_tlb_mm(flush_mm);\n"
  "-\t\t     else\n"
  "+\t\telse\n"
  " \t\t\t__flush_tlb_page(flush_vma, flush_addr);\n"
  " \t}\n"
- " \n"
+ "=20\n"
  "diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c\n"
  "index 9a26015..a580230 100644\n"
  "--- a/arch/ia64/kernel/irq_ia64.c\n"
@@ -176,10 +181,11 @@
  " #include <linux/ratelimit.h>\n"
  " #include <linux/acpi.h>\n"
  "+#include <linux/sched.h>\n"
- " \n"
+ "=20\n"
  " #include <asm/delay.h>\n"
  " #include <asm/intrinsics.h>\n"
- "@@ -496,6 +497,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *regs)\n"
+ "@@ -496,6 +497,7 @@ ia64_handle_irq (ia64_vector vector, struct pt_regs *re=\n"
+ "gs)\n"
  " \t\t\tsmp_local_flush_tlb();\n"
  " \t\t\tkstat_incr_irqs_this_cpu(irq, desc);\n"
  " \t\t} else if (unlikely(IS_RESCHEDULE(vector))) {\n"
@@ -193,7 +199,7 @@
  "+++ b/arch/ia64/xen/irq_xen.c\n"
  "@@ -92,6 +92,8 @@ static unsigned short saved_irq_cnt;\n"
  " static int xen_slab_ready;\n"
- " \n"
+ "=20\n"
  " #ifdef CONFIG_SMP\n"
  "+#include <linux/sched.h>\n"
  "+\n"
@@ -206,49 +212,57 @@
  " {\n"
  "+\treturn IRQ_HANDLED;\n"
  "+}\n"
- " \n"
+ "=20\n"
  "+static irqreturn_t\n"
  "+xen_resched_handler(int irq, void *dev_id)\n"
  "+{\n"
  "+\tscheduler_ipi();\n"
  " \treturn IRQ_HANDLED;\n"
  " }\n"
- " \n"
- "@@ -110,7 +118,7 @@ static struct irqaction xen_ipi_irqaction = {\n"
+ "=20\n"
+ "@@ -110,7 +118,7 @@ static struct irqaction xen_ipi_irqaction =3D {\n"
  " };\n"
- " \n"
- " static struct irqaction xen_resched_irqaction = {\n"
- "-\t.handler =\txen_dummy_handler,\n"
- "+\t.handler =\txen_resched_handler,\n"
- " \t.flags =\tIRQF_DISABLED,\n"
- " \t.name =\t\t\"resched\"\n"
+ "=20\n"
+ " static struct irqaction xen_resched_irqaction =3D {\n"
+ "-\t.handler =3D\txen_dummy_handler,\n"
+ "+\t.handler =3D\txen_resched_handler,\n"
+ " \t.flags =3D\tIRQF_DISABLED,\n"
+ " \t.name =3D\t\t\"resched\"\n"
  " };\n"
  "diff --git a/arch/m32r/kernel/smp.c b/arch/m32r/kernel/smp.c\n"
  "index 31cef20..f0ecc3f 100644\n"
  "--- a/arch/m32r/kernel/smp.c\n"
  "+++ b/arch/m32r/kernel/smp.c\n"
  "@@ -138,7 +138,7 @@ void smp_send_reschedule(int cpu_id)\n"
- "  *==========================================================================*/\n"
+ "  *=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n"
+ "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n"
+ "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n"
+ "*/\n"
  " void smp_reschedule_interrupt(void)\n"
  " {\n"
  "-\t/* nothing to do */\n"
  "+\tscheduler_ipi();\n"
  " }\n"
- " \n"
- " /*==========================================================================*\n"
+ "=20\n"
+ " /*=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n"
+ "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n"
+ "=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=\n"
+ "*\n"
  "diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c\n"
  "index 39c0825..0443e91 100644\n"
  "--- a/arch/mips/kernel/smtc.c\n"
  "+++ b/arch/mips/kernel/smtc.c\n"
- "@@ -931,6 +931,7 @@ static void post_direct_ipi(int cpu, struct smtc_ipi *pipi)\n"
+ "@@ -931,6 +931,7 @@ static void post_direct_ipi(int cpu, struct smtc_ipi *p=\n"
+ "ipi)\n"
  " static void ipi_resched_interrupt(void)\n"
  " {\n"
  " \t/* Return from interrupt should be enough to cause scheduler check */\n"
  "+\tscheduler_ipi();\n"
  " }\n"
- " \n"
+ "=20\n"
  " static void ipi_call_interrupt(void)\n"
- "diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.c\n"
+ "diff --git a/arch/mips/sibyte/bcm1480/smp.c b/arch/mips/sibyte/bcm1480/smp.=\n"
+ "c\n"
  "index 47b347c..513a301 100644\n"
  "--- a/arch/mips/sibyte/bcm1480/smp.c\n"
  "+++ b/arch/mips/sibyte/bcm1480/smp.c\n"
@@ -257,20 +271,20 @@
  " #include <linux/smp.h>\n"
  " #include <linux/kernel_stat.h>\n"
  "+#include <linux/sched.h>\n"
- " \n"
+ "=20\n"
  " #include <asm/mmu_context.h>\n"
  " #include <asm/io.h>\n"
  "@@ -189,10 +190,8 @@ void bcm1480_mailbox_interrupt(void)\n"
  " \t/* Clear the mailbox to clear the interrupt */\n"
  " \t__raw_writeq(((u64)action)<<48, mailbox_0_clear_regs[cpu]);\n"
- " \n"
+ "=20\n"
  "-\t/*\n"
  "-\t * Nothing to do for SMP_RESCHEDULE_YOURSELF; returning from the\n"
  "-\t * interrupt will do the reschedule for us\n"
  "-\t */\n"
  "+\tif (actione & SMP_RESCHEDULE_YOURSELF)\n"
  "+\t\tscheduler_ipi();\n"
- " \n"
+ "=20\n"
  " \tif (action & SMP_CALL_FUNCTION)\n"
  " \t\tsmp_call_function_interrupt();\n"
  "diff --git a/arch/mips/sibyte/sb1250/smp.c b/arch/mips/sibyte/sb1250/smp.c\n"
@@ -282,20 +296,20 @@
  " #include <linux/smp.h>\n"
  " #include <linux/kernel_stat.h>\n"
  "+#include <linux/sched.h>\n"
- " \n"
+ "=20\n"
  " #include <asm/mmu_context.h>\n"
  " #include <asm/io.h>\n"
  "@@ -177,10 +178,8 @@ void sb1250_mailbox_interrupt(void)\n"
  " \t/* Clear the mailbox to clear the interrupt */\n"
  " \t____raw_writeq(((u64)action) << 48, mailbox_clear_regs[cpu]);\n"
- " \n"
+ "=20\n"
  "-\t/*\n"
  "-\t * Nothing to do for SMP_RESCHEDULE_YOURSELF; returning from the\n"
  "-\t * interrupt will do the reschedule for us\n"
  "-\t */\n"
  "+\tif (action & SMP_RESCHEDULE_YOURSELF)\n"
  "+\t\tscheduler_ipi();\n"
- " \n"
+ "=20\n"
  " \tif (action & SMP_CALL_FUNCTION)\n"
  " \t\tsmp_call_function_interrupt();\n"
  "diff --git a/arch/mn10300/kernel/smp.c b/arch/mn10300/kernel/smp.c\n"
@@ -310,13 +324,13 @@
  "+\tscheduler_ipi();\n"
  " \treturn IRQ_HANDLED;\n"
  " }\n"
- " \n"
+ "=20\n"
  "diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c\n"
  "index 69d63d3..f8f7970 100644\n"
  "--- a/arch/parisc/kernel/smp.c\n"
  "+++ b/arch/parisc/kernel/smp.c\n"
  "@@ -155,6 +155,7 @@ ipi_interrupt(int irq, void *dev_id)\n"
- " \t\t\t\t\n"
+ " \t\t\t=09\n"
  " \t\t\tcase IPI_RESCHEDULE:\n"
  " \t\t\t\tsmp_debug(100, KERN_DEBUG \"CPU%d IPI_RESCHEDULE\\n\", this_cpu);\n"
  "+\t\t\t\tscheduler_ipi();\n"
@@ -327,34 +341,36 @@
  "index 68034bb..7ee0fc3 100644\n"
  "--- a/arch/powerpc/kernel/smp.c\n"
  "+++ b/arch/powerpc/kernel/smp.c\n"
- "@@ -128,6 +128,7 @@ static irqreturn_t call_function_action(int irq, void *data)\n"
+ "@@ -128,6 +128,7 @@ static irqreturn_t call_function_action(int irq, void *=\n"
+ "data)\n"
  " static irqreturn_t reschedule_action(int irq, void *data)\n"
  " {\n"
  " \t/* we just need the return path side effect of checking need_resched */\n"
  "+\tscheduler_ipi();\n"
  " \treturn IRQ_HANDLED;\n"
  " }\n"
- " \n"
+ "=20\n"
  "diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c\n"
  "index 94cf510..61789e8 100644\n"
  "--- a/arch/s390/kernel/smp.c\n"
  "+++ b/arch/s390/kernel/smp.c\n"
- "@@ -163,12 +163,12 @@ static void do_ext_call_interrupt(unsigned int ext_int_code,\n"
- " \n"
+ "@@ -163,12 +163,12 @@ static void do_ext_call_interrupt(unsigned int ext_in=\n"
+ "t_code,\n"
+ "=20\n"
  " \t/*\n"
  " \t * handle bit signal external calls\n"
  "-\t *\n"
  "-\t * For the ec_schedule signal we have to do nothing. All the work\n"
  "-\t * is done automatically when we return from the interrupt.\n"
  " \t */\n"
- " \tbits = xchg(&S390_lowcore.ext_call_fast, 0);\n"
- " \n"
+ " \tbits =3D xchg(&S390_lowcore.ext_call_fast, 0);\n"
+ "=20\n"
  "+\tif (test_bit(ec_schedule, &bits))\n"
  "+\t\tscheduler_ipi();\n"
  "+\n"
  " \tif (test_bit(ec_call_function, &bits))\n"
  " \t\tgeneric_smp_call_function_interrupt();\n"
- " \n"
+ "=20\n"
  "diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c\n"
  "index 509b36b..6207561 100644\n"
  "--- a/arch/sh/kernel/smp.c\n"
@@ -379,14 +395,15 @@
  "index 91c10fb..042d8c9 100644\n"
  "--- a/arch/sparc/kernel/smp_32.c\n"
  "+++ b/arch/sparc/kernel/smp_32.c\n"
- "@@ -125,7 +125,7 @@ struct linux_prom_registers smp_penguin_ctable __cpuinitdata = { 0 };\n"
- " \n"
+ "@@ -125,7 +125,7 @@ struct linux_prom_registers smp_penguin_ctable __cpuini=\n"
+ "tdata =3D { 0 };\n"
+ "=20\n"
  " void smp_send_reschedule(int cpu)\n"
  " {\n"
  "-\t/* See sparc64 */\n"
  "+\tscheduler_ipi();\n"
  " }\n"
- " \n"
+ "=20\n"
  " void smp_send_stop(void)\n"
  "diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c\n"
  "index b6a2b8f..68e26e2 100644\n"
@@ -398,18 +415,19 @@
  " \tclear_softint(1 << irq);\n"
  "+\tscheduler_ipi();\n"
  " }\n"
- " \n"
+ "=20\n"
  " /* This is a nop because we capture all other cpus\n"
  "diff --git a/arch/tile/kernel/smp.c b/arch/tile/kernel/smp.c\n"
  "index 9575b37..91a1ddf 100644\n"
  "--- a/arch/tile/kernel/smp.c\n"
  "+++ b/arch/tile/kernel/smp.c\n"
- "@@ -190,6 +190,7 @@ static irqreturn_t handle_reschedule_ipi(int irq, void *token)\n"
+ "@@ -190,6 +190,7 @@ static irqreturn_t handle_reschedule_ipi(int irq, void =\n"
+ "*token)\n"
  " \t * profiler count in the meantime.\n"
  " \t */\n"
  " \t__get_cpu_var(irq_stat).irq_resched_count++;\n"
  "+\tscheduler_ipi();\n"
- " \n"
+ "=20\n"
  " \treturn IRQ_HANDLED;\n"
  " }\n"
  "diff --git a/arch/um/kernel/smp.c b/arch/um/kernel/smp.c\n"
@@ -418,12 +436,12 @@
  "+++ b/arch/um/kernel/smp.c\n"
  "@@ -173,7 +173,7 @@ void IPI_handler(int cpu)\n"
  " \t\t\tbreak;\n"
- " \n"
+ "=20\n"
  " \t\tcase 'R':\n"
  "-\t\t\tset_tsk_need_resched(current);\n"
  "+\t\t\tscheduler_ipi();\n"
  " \t\t\tbreak;\n"
- " \n"
+ "=20\n"
  " \t\tcase 'S':\n"
  "diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c\n"
  "index 513deac..e38c2d8 100644\n"
@@ -441,25 +459,28 @@
  "index 72a4c79..6196fb1 100644\n"
  "--- a/arch/x86/xen/smp.c\n"
  "+++ b/arch/x86/xen/smp.c\n"
- "@@ -53,6 +53,7 @@ static irqreturn_t xen_call_function_single_interrupt(int irq, void *dev_id);\n"
+ "@@ -53,6 +53,7 @@ static irqreturn_t xen_call_function_single_interrupt(int=\n"
+ " irq, void *dev_id);\n"
  " static irqreturn_t xen_reschedule_interrupt(int irq, void *dev_id)\n"
  " {\n"
  " \tinc_irq_stat(irq_resched_count);\n"
  "+\tscheduler_ipi();\n"
- " \n"
+ "=20\n"
  " \treturn IRQ_HANDLED;\n"
  " }\n"
  "diff --git a/include/linux/sched.h b/include/linux/sched.h\n"
  "index 341acbb..aa458dc 100644\n"
  "--- a/include/linux/sched.h\n"
  "+++ b/include/linux/sched.h\n"
- "@@ -2183,6 +2183,7 @@ extern void set_task_comm(struct task_struct *tsk, char *from);\n"
+ "@@ -2183,6 +2183,7 @@ extern void set_task_comm(struct task_struct *tsk, ch=\n"
+ "ar *from);\n"
  " extern char *get_task_comm(char *to, struct task_struct *tsk);\n"
- " \n"
+ "=20\n"
  " #ifdef CONFIG_SMP\n"
  "+static inline void scheduler_ipi(void) { }\n"
- " extern unsigned long wait_task_inactive(struct task_struct *, long match_state);\n"
+ " extern unsigned long wait_task_inactive(struct task_struct *, long match_s=\n"
+ "tate);\n"
  " #else\n"
   static inline unsigned long wait_task_inactive(struct task_struct *p,
 
-f712cdf56760ab5c09ad8e87cf634196c6728205625acba3e7afcec35f7127f7
+115cf9e9dff5bbedb918f3055def81f2d9f431ca5d8a569021dae136a658cf85

diff --git a/a/content_digest b/N2/content_digest
index a442436..91c0664 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -1,57 +1,7 @@
- "From\0Peter Zijlstra <peterz@infradead.org>\0"
+ "From\0peterz@infradead.org (Peter Zijlstra)\0"
  "Subject\0[PATCH] sched: provide scheduler_ipi() callback in response to smp_send_reschedule()\0"
  "Date\0Mon, 17 Jan 2011 12:07:13 +0100\0"
- "To\0Richard Henderson <rth@twiddle.net>"
-  Ivan Kokshaysky <ink@jurassic.park.msu.ru>
-  Matt Turner <mattst88@gmail.com>
-  Russell King <linux@arm.linux.org.uk>
-  Mike Frysinger <vapier@gentoo.org>
-  Mikael Starvik <starvik@axis.com>
-  Jesper Nilsson <jesper.nilsson@axis.com>
-  Tony Luck <tony.luck@intel.com>
-  Fenghua Yu <fenghua.yu@intel.com>
-  Hirokazu Takata <takata@linux-m32r.org>
-  Ralf Baechle <ralf@linux-mips.org>
-  David Howells <dhowells@redhat.com>
-  Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
-  Kyle McMartin <kyle@mcmartin.ca>
-  Helge Deller <deller@gmx.de>
-  James E.J. Bottomley <jejb@parisc-linux.org>
-  Benjamin Herrenschmidt <benh@kernel.crashing.org>
-  Paul Mackerras <paulus@samba.org>
-  Martin Schwidefsky <schwidefsky@de.ibm.com>
-  Heiko Carstens <heiko.carstens@de.ibm.com>
-  linux390@de.ibm.com
-  Paul Mundt <lethal@linux-sh.org>
-  David S. Miller <davem@davemloft.net>
-  Chris Metcalf <cmetcalf@tilera.com>
-  Jeff Dike <jdike@addtoit.com>
-  Thomas Gleixner <tglx@linutronix.de>
-  Ingo Molnar <mingo@redhat.com>
-  H. Peter Anvin <hpa@zytor.com>
-  x86@kernel.org
-  Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
-  Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-  linux-alpha@vger.kernel.org
-  linux-kernel@vger.kernel.org
-  linux-arm-kernel@lists.infradead.org
-  uclinux-dist-devel@blackfin.uclinux.org
-  linux-cris-kernel@axis.com
-  linux-ia64@vger.kernel.org
-  linux-m32r@ml.linux-m32r.org
-  linux-m32r-ja@ml.linux-m32r.org
-  linux-mips@linux-mips.org
-  linux-am33-list@redhat.com
-  linux-parisc@vger.kernel.org
-  linuxppc-dev@lists.ozlabs.org
-  linux-s390@vger.kernel.org
-  linux-sh@vger.kernel.org
-  sparclinux@vger.kernel.org
-  user-mode-linux-devel@lists.sourceforge.net
-  user-mode-linux-user@lists.sourceforge.net
-  xen-devel@lists.xensource.com
-  virtualization@lists.osdl.org
- " Linux-Arch <linux-arch@vger.kernel.org>\0"
+ "To\0linux-arm-kernel@lists.infradead.org\0"
  "\00:1\0"
  "b\0"
  "For future rework of try_to_wake_up() we'd like to push part of that\n"
@@ -462,4 +412,4 @@
  " #else\n"
   static inline unsigned long wait_task_inactive(struct task_struct *p,
 
-f712cdf56760ab5c09ad8e87cf634196c6728205625acba3e7afcec35f7127f7
+659a40f94b512152384da6e5abab1b45751448582204238470bfc7d3c7aafef2

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.