Subject: Re: linux-next: Tree for Aug 29

From: Christoph Lameter <[email-masked]>
Date: Mon, 1 Sep 2014 16:15:52 -0500 (CDT)

On Mon, 1 Sep 2014, Guenter Roeck wrote:

> arch/ia64/sn/kernel/setup.c: In function 'sn_cpu_init':
> arch/ia64/sn/kernel/setup.c:632:13: error: lvalue required as left operand of assignment
> make[1]: *** [arch/ia64/sn/kernel/setup.o] Error 1
> make: *** [arch/ia64/sn/kernel/setup.o] Error 2

Subject: ia64: sn_nodepda cannot be assigned to after this_cpu conversion. Use __this_cpu_write.

There must be an explit statement to modify the percpu variable after the conversion of the
sn_nodpda macro to use this_cpu_read.

Signed-off-by: Christoph Lameter <[email-masked]>

Index: linux/arch/ia64/sn/kernel/setup.c
===================================================================
--- linux.orig/arch/ia64/sn/kernel/setup.c
+++ linux/arch/ia64/sn/kernel/setup.c
@@ -629,7 +629,7 @@ void sn_cpu_init(void)

 	cnode = nasid_to_cnodeid(nasid);

-	sn_nodepda = nodepdaindr[cnode];
+	__this_cpu_write(__sn_nodepda, nodepdaindr[cnode]);

 	pda->led_address =
 	    (typeof(pda->led_address)) (LED0 + (slice << LED_CPU_SHIFT));