Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error

2014-08-11 Thread Guenter Roeck

On 08/10/2014 05:20 PM, Stephen Rothwell wrote:

Hi Guenter,

On Fri,  8 Aug 2014 22:22:12 -0700 Guenter Roeck  wrote:


Once again, we see

arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
arch/powerpc/kernel/exceptions-64s.S:865: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:866: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:890: Error: attempt to move .org backwards

when compiling ppc:allmodconfig.

This time the problem has been caused by to commit 0869b6fd209bda
("powerpc/book3s: Add basic infrastructure to handle HMI in Linux"),
which adds functions hmi_exception_early and hmi_exception_after_realmode
into a critical (size-limited) code area, even though that does not appear
to be necessary.

Move those functions to a non-critical area of the file.

Cc: Mahesh Salgaonkar 
Signed-off-by: Guenter Roeck 
---
Compile tested with all ppc configurations.
The reported checkpatch error appears to be a false positive.


Thanks.

I have added that to my fixes tree for today.


Thanks!

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error

2014-08-10 Thread Stephen Rothwell
Hi Guenter,

On Fri,  8 Aug 2014 22:22:12 -0700 Guenter Roeck  wrote:
>
> Once again, we see
> 
> arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
> arch/powerpc/kernel/exceptions-64s.S:865: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:866: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:890: Error: attempt to move .org 
> backwards
> 
> when compiling ppc:allmodconfig.
> 
> This time the problem has been caused by to commit 0869b6fd209bda
> ("powerpc/book3s: Add basic infrastructure to handle HMI in Linux"),
> which adds functions hmi_exception_early and hmi_exception_after_realmode
> into a critical (size-limited) code area, even though that does not appear
> to be necessary.
> 
> Move those functions to a non-critical area of the file.
> 
> Cc: Mahesh Salgaonkar 
> Signed-off-by: Guenter Roeck 
> ---
> Compile tested with all ppc configurations.
> The reported checkpatch error appears to be a false positive.

Thanks.

I have added that to my fixes tree for today.
-- 
Cheers,
Stephen Rothwells...@canb.auug.org.au


signature.asc
Description: PGP signature


[PATCH] powerpc: Fix "attempt to move .org backwards" error

2014-08-08 Thread Guenter Roeck
Once again, we see

arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
arch/powerpc/kernel/exceptions-64s.S:865: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:866: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:890: Error: attempt to move .org backwards

when compiling ppc:allmodconfig.

This time the problem has been caused by to commit 0869b6fd209bda
("powerpc/book3s: Add basic infrastructure to handle HMI in Linux"),
which adds functions hmi_exception_early and hmi_exception_after_realmode
into a critical (size-limited) code area, even though that does not appear
to be necessary.

Move those functions to a non-critical area of the file.

Cc: Mahesh Salgaonkar 
Signed-off-by: Guenter Roeck 
---
Compile tested with all ppc configurations.
The reported checkpatch error appears to be a false positive.

 arch/powerpc/kernel/exceptions-64s.S | 110 +--
 1 file changed, 55 insertions(+), 55 deletions(-)

diff --git a/arch/powerpc/kernel/exceptions-64s.S 
b/arch/powerpc/kernel/exceptions-64s.S
index 6144d5a..050f79a 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -592,61 +592,6 @@ END_FTR_SECTION_IFSET(CPU_FTR_CFAR)
MASKABLE_EXCEPTION_HV_OOL(0xe62, hmi_exception)
KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe62)
 
-   .globl hmi_exception_early
-hmi_exception_early:
-   EXCEPTION_PROLOG_1(PACA_EXGEN, NOTEST, 0xe60)
-   mr  r10,r1  /* Save r1  */
-   ld  r1,PACAEMERGSP(r13) /* Use emergency stack  */
-   subir1,r1,INT_FRAME_SIZE/* alloc stack frame*/
-   std r9,_CCR(r1) /* save CR in stackframe*/
-   mfspr   r11,SPRN_HSRR0  /* Save HSRR0 */
-   std r11,_NIP(r1)/* save HSRR0 in stackframe */
-   mfspr   r12,SPRN_HSRR1  /* Save SRR1 */
-   std r12,_MSR(r1)/* save SRR1 in stackframe  */
-   std r10,0(r1)   /* make stack chain pointer */
-   std r0,GPR0(r1) /* save r0 in stackframe*/
-   std r10,GPR1(r1)/* save r1 in stackframe*/
-   EXCEPTION_PROLOG_COMMON_2(PACA_EXGEN)
-   EXCEPTION_PROLOG_COMMON_3(0xe60)
-   addir3,r1,STACK_FRAME_OVERHEAD
-   bl  hmi_exception_realmode
-   /* Windup the stack. */
-   /* Clear MSR_RI before setting SRR0 and SRR1. */
-   li  r0,MSR_RI
-   mfmsr   r9  /* get MSR value */
-   andcr9,r9,r0
-   mtmsrd  r9,1/* Clear MSR_RI */
-   /* Move original HSRR0 and HSRR1 into the respective regs */
-   ld  r9,_MSR(r1)
-   mtspr   SPRN_HSRR1,r9
-   ld  r3,_NIP(r1)
-   mtspr   SPRN_HSRR0,r3
-   ld  r9,_CTR(r1)
-   mtctr   r9
-   ld  r9,_XER(r1)
-   mtxer   r9
-   ld  r9,_LINK(r1)
-   mtlrr9
-   REST_GPR(0, r1)
-   REST_8GPRS(2, r1)
-   REST_GPR(10, r1)
-   ld  r11,_CCR(r1)
-   mtcrr11
-   REST_GPR(11, r1)
-   REST_2GPRS(12, r1)
-   /* restore original r1. */
-   ld  r1,GPR1(r1)
-
-   /*
-* Go to virtual mode and pull the HMI event information from
-* firmware.
-*/
-   .globl hmi_exception_after_realmode
-hmi_exception_after_realmode:
-   SET_SCRATCH0(r13)
-   EXCEPTION_PROLOG_0(PACA_EXGEN)
-   b   hmi_exception_hv
-
MASKABLE_EXCEPTION_HV_OOL(0xe82, h_doorbell)
KVM_HANDLER(PACA_EXGEN, EXC_HV, 0xe82)
 
@@ -1306,6 +1251,61 @@ fwnmi_data_area:
. = 0x8000
 #endif /* defined(CONFIG_PPC_PSERIES) || defined(CONFIG_PPC_POWERNV) */
 
+   .globl hmi_exception_early
+hmi_exception_early:
+   EXCEPTION_PROLOG_1(PACA_EXGEN, NOTEST, 0xe60)
+   mr  r10,r1  /* Save r1  */
+   ld  r1,PACAEMERGSP(r13) /* Use emergency stack  */
+   subir1,r1,INT_FRAME_SIZE/* alloc stack frame*/
+   std r9,_CCR(r1) /* save CR in stackframe*/
+   mfspr   r11,SPRN_HSRR0  /* Save HSRR0 */
+   std r11,_NIP(r1)/* save HSRR0 in stackframe */
+   mfspr   r12,SPRN_HSRR1  /* Save SRR1 */
+   std r12,_MSR(r1)/* save SRR1 in stackframe  */
+   std r10,0(r1)   /* make stack chain pointer */
+   std r0,GPR0(r1) /* save r0 in stackframe*/
+   std r10,GPR1(r1)/* save r1 in stackframe*/
+   EXCEPTION_PROLOG_COMMON_2(PACA_EXGEN)
+   EXCEPTION_PROLOG_COMMON_3(0xe60)
+   addir3,r1,STACK_FRAME_OVERHEAD
+   bl  hmi_exception_realmode
+   /* Windup the stack. */
+   /* Clear MSR_RI before setting SRR0 and SRR1. */
+   li  r0,MSR_RI
+   mfmsr   r9 

Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-12 Thread Benjamin Herrenschmidt
On Mon, 2014-05-12 at 08:53 -0700, Guenter Roeck wrote:
> On Mon, May 12, 2014 at 03:48:44PM +1000, Benjamin Herrenschmidt wrote:
> > On Sun, 2014-05-11 at 21:52 -0700, Guenter Roeck wrote:
> > > Oh well, it was worth a try. Can you give me an example for a failing
> > > configuration ?
> > 
> > My g5 config which is close to g5_defconfig with PR KVM enabled.
> > 
> > In any case, see my other messages. I'm waiting for all my test builders
> > to come back and if it's clear I'll post a new patch.
> > 
> I'll be more than happy to wait. Let me know if I can test something.

http://patchwork.ozlabs.org/patch/347892/

Cheers,
Ben.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-12 Thread Guenter Roeck
On Mon, May 12, 2014 at 03:48:44PM +1000, Benjamin Herrenschmidt wrote:
> On Sun, 2014-05-11 at 21:52 -0700, Guenter Roeck wrote:
> > Oh well, it was worth a try. Can you give me an example for a failing
> > configuration ?
> 
> My g5 config which is close to g5_defconfig with PR KVM enabled.
> 
> In any case, see my other messages. I'm waiting for all my test builders
> to come back and if it's clear I'll post a new patch.
> 
I'll be more than happy to wait. Let me know if I can test something.

Thanks,
Guenter
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-11 Thread Benjamin Herrenschmidt
On Sun, 2014-05-11 at 21:52 -0700, Guenter Roeck wrote:
> Oh well, it was worth a try. Can you give me an example for a failing
> configuration ?

My g5 config which is close to g5_defconfig with PR KVM enabled.

In any case, see my other messages. I'm waiting for all my test builders
to come back and if it's clear I'll post a new patch.

Cheers,
Ben.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-11 Thread Guenter Roeck

On 05/11/2014 10:37 PM, Benjamin Herrenschmidt wrote:

On Mon, 2014-05-12 at 14:12 +1000, Benjamin Herrenschmidt wrote:

On Fri, 2014-05-09 at 17:07 -0700, Guenter Roeck wrote:

Commit 4e243b7 (powerpc: Fix "attempt to move .org backwards" error) fixes the
allyesconfig build by moving machine_check_common to a different location.
While this fixes most of the errors, both allmodconfig and allyesconfig still
fail as follows.

arch/powerpc/kernel/exceptions-64s.S:1315: Error: attempt to move .org backwards

Fix by moving machine_check_common after the offending address.


This suffers from the same problem as previous attempts, on some of my
test configs I get:

arch/powerpc/kernel/head_64.o:(__ftr_alt_97+0xb0): relocation truncated to fit: 
R_PPC64_REL14 against `.text'+1c90
make[1]: *** [vmlinux] Error 1
make: *** [sub-make] Error 2

IE, it breaks currently working configs.

So we need to move more things around and I haven't had a chance to
sort it out.


Ok, I think I sorted it out for now. It's a mess and likely to break
again until we do something more drastic like moving everything that's
after 0x8000 to a separate file but for now that will do. Patch on its
way, I'll also shoot it to Linus today along with a few other things.



Great, thanks a lot!

Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-11 Thread Benjamin Herrenschmidt
On Mon, 2014-05-12 at 14:12 +1000, Benjamin Herrenschmidt wrote:
> On Fri, 2014-05-09 at 17:07 -0700, Guenter Roeck wrote:
> > Commit 4e243b7 (powerpc: Fix "attempt to move .org backwards" error) fixes 
> > the
> > allyesconfig build by moving machine_check_common to a different location.
> > While this fixes most of the errors, both allmodconfig and allyesconfig 
> > still
> > fail as follows.
> > 
> > arch/powerpc/kernel/exceptions-64s.S:1315: Error: attempt to move .org 
> > backwards
> > 
> > Fix by moving machine_check_common after the offending address.
> 
> This suffers from the same problem as previous attempts, on some of my
> test configs I get:
> 
> arch/powerpc/kernel/head_64.o:(__ftr_alt_97+0xb0): relocation truncated to 
> fit: R_PPC64_REL14 against `.text'+1c90
> make[1]: *** [vmlinux] Error 1
> make: *** [sub-make] Error 2
> 
> IE, it breaks currently working configs.
> 
> So we need to move more things around and I haven't had a chance to
> sort it out.

Ok, I think I sorted it out for now. It's a mess and likely to break
again until we do something more drastic like moving everything that's
after 0x8000 to a separate file but for now that will do. Patch on its
way, I'll also shoot it to Linus today along with a few other things.

Cheers,
Ben.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-11 Thread Guenter Roeck

On 05/11/2014 09:12 PM, Benjamin Herrenschmidt wrote:

On Fri, 2014-05-09 at 17:07 -0700, Guenter Roeck wrote:

Commit 4e243b7 (powerpc: Fix "attempt to move .org backwards" error) fixes the
allyesconfig build by moving machine_check_common to a different location.
While this fixes most of the errors, both allmodconfig and allyesconfig still
fail as follows.

arch/powerpc/kernel/exceptions-64s.S:1315: Error: attempt to move .org backwards

Fix by moving machine_check_common after the offending address.


This suffers from the same problem as previous attempts, on some of my
test configs I get:

arch/powerpc/kernel/head_64.o:(__ftr_alt_97+0xb0): relocation truncated to fit: 
R_PPC64_REL14 against `.text'+1c90
make[1]: *** [vmlinux] Error 1
make: *** [sub-make] Error 2

IE, it breaks currently working configs.


Oh well, it was worth a try. Can you give me an example for a failing 
configuration ?

Thanks,
Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-11 Thread Benjamin Herrenschmidt
On Fri, 2014-05-09 at 17:07 -0700, Guenter Roeck wrote:
> Commit 4e243b7 (powerpc: Fix "attempt to move .org backwards" error) fixes the
> allyesconfig build by moving machine_check_common to a different location.
> While this fixes most of the errors, both allmodconfig and allyesconfig still
> fail as follows.
> 
> arch/powerpc/kernel/exceptions-64s.S:1315: Error: attempt to move .org 
> backwards
> 
> Fix by moving machine_check_common after the offending address.

This suffers from the same problem as previous attempts, on some of my
test configs I get:

arch/powerpc/kernel/head_64.o:(__ftr_alt_97+0xb0): relocation truncated to fit: 
R_PPC64_REL14 against `.text'+1c90
make[1]: *** [vmlinux] Error 1
make: *** [sub-make] Error 2

IE, it breaks currently working configs.

So we need to move more things around and I haven't had a chance to
sort it out.

Cheers,
Ben.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] powerpc: Fix "attempt to move .org backwards" error (again)

2014-05-09 Thread Guenter Roeck
Commit 4e243b7 (powerpc: Fix "attempt to move .org backwards" error) fixes the
allyesconfig build by moving machine_check_common to a different location.
While this fixes most of the errors, both allmodconfig and allyesconfig still
fail as follows.

arch/powerpc/kernel/exceptions-64s.S:1315: Error: attempt to move .org backwards

Fix by moving machine_check_common after the offending address.

Signed-off-by: Guenter Roeck 
---
This fixes the build error, but unfortunately I don't have a system to test
the resulting image.

 arch/powerpc/kernel/exceptions-64s.S | 49 ++--
 1 file changed, 24 insertions(+), 25 deletions(-)

diff --git a/arch/powerpc/kernel/exceptions-64s.S 
b/arch/powerpc/kernel/exceptions-64s.S
index 3afd391..25398be 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -1138,31 +1138,6 @@ unrecov_user_slb:
 
 #endif /* __DISABLED__ */
 
-
-   /*
-* Machine check is different because we use a different
-* save area: PACA_EXMC instead of PACA_EXGEN.
-*/
-   .align  7
-   .globl machine_check_common
-machine_check_common:
-
-   mfspr   r10,SPRN_DAR
-   std r10,PACA_EXGEN+EX_DAR(r13)
-   mfspr   r10,SPRN_DSISR
-   stw r10,PACA_EXGEN+EX_DSISR(r13)
-   EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC)
-   FINISH_NAP
-   DISABLE_INTS
-   ld  r3,PACA_EXGEN+EX_DAR(r13)
-   lwz r4,PACA_EXGEN+EX_DSISR(r13)
-   std r3,_DAR(r1)
-   std r4,_DSISR(r1)
-   bl  .save_nvgprs
-   addir3,r1,STACK_FRAME_OVERHEAD
-   bl  .machine_check_exception
-   b   .ret_from_except
-
.align  7
.globl alignment_common
 alignment_common:
@@ -1328,6 +1303,30 @@ fwnmi_data_area:
 initial_stab:
.space  4096
 
+   /*
+* Machine check is different because we use a different
+* save area: PACA_EXMC instead of PACA_EXGEN.
+*/
+   .align  7
+   .globl machine_check_common
+machine_check_common:
+
+   mfspr   r10,SPRN_DAR
+   std r10,PACA_EXGEN+EX_DAR(r13)
+   mfspr   r10,SPRN_DSISR
+   stw r10,PACA_EXGEN+EX_DSISR(r13)
+   EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC)
+   FINISH_NAP
+   DISABLE_INTS
+   ld  r3,PACA_EXGEN+EX_DAR(r13)
+   lwz r4,PACA_EXGEN+EX_DSISR(r13)
+   std r3,_DAR(r1)
+   std r4,_DSISR(r1)
+   bl  .save_nvgprs
+   addir3,r1,STACK_FRAME_OVERHEAD
+   bl  .machine_check_exception
+   b   .ret_from_except
+
 #ifdef CONFIG_PPC_POWERNV
 _GLOBAL(opal_mc_secondary_handler)
HMT_MEDIUM_PPR_DISCARD
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error

2014-02-15 Thread Guenter Roeck

On 02/11/2014 09:22 PM, Stephen Rothwell wrote:

Hi all,

On Tue, 10 Dec 2013 10:26:10 +1100 Benjamin Herrenschmidt 
 wrote:


On Tue, 2013-12-10 at 10:10 +1100, Stephen Rothwell wrote:

Reported-by: Stephen Rothwell 
Tested-by: Stephen Rothwell 

Works for me.  Thanks.  I will add this to linux-next today if Ben
doesn't add it to his tree.


I will but probably not soon enough for your cut today


As noted elsewhere, this did not completely fix the problem and I have
been still getting this error from my allyesconfig builds for some time:



+allmodconfig in latest mainline.


arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
arch/powerpc/kernel/exceptions-64s.S:1312: Error: attempt to move .org backwards

Could someone please fix this?



Guenter

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error

2014-02-11 Thread Stephen Rothwell
Hi all,

On Tue, 10 Dec 2013 10:26:10 +1100 Benjamin Herrenschmidt 
 wrote:
>
> On Tue, 2013-12-10 at 10:10 +1100, Stephen Rothwell wrote:
> > Reported-by: Stephen Rothwell 
> > Tested-by: Stephen Rothwell 
> > 
> > Works for me.  Thanks.  I will add this to linux-next today if Ben
> > doesn't add it to his tree.
> 
> I will but probably not soon enough for your cut today

As noted elsewhere, this did not completely fix the problem and I have
been still getting this error from my allyesconfig builds for some time:

arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
arch/powerpc/kernel/exceptions-64s.S:1312: Error: attempt to move .org backwards

Could someone please fix this?
-- 
Cheers,
Stephen Rothwells...@canb.auug.org.au


pgpIv81uc7qZk.pgp
Description: PGP signature


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error

2013-12-09 Thread Benjamin Herrenschmidt
On Tue, 2013-12-10 at 10:10 +1100, Stephen Rothwell wrote:
> Reported-by: Stephen Rothwell 
> Tested-by: Stephen Rothwell 
> 
> Works for me.  Thanks.  I will add this to linux-next today if Ben
> doesn't add it to his tree.

I will but probably not soon enough for your cut today

Cheers,
Ben.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] powerpc: Fix "attempt to move .org backwards" error

2013-12-09 Thread Stephen Rothwell
Hi,

On Tue, 10 Dec 2013 00:40:15 +0530 Mahesh J Salgaonkar 
 wrote:
>
> From: Mahesh Salgaonkar 
> 
> With recent machine check patch series changes, The exception vectors
> starting from 0x4300 are now overflowing with allyesconfig. Fix that by
> moving machine_check_common and machine_check_handle_early code out of
> that region to make enough room for exception vector area.
> 
> Fixes this build error reportes by Stephen:
> 
> arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
> arch/powerpc/kernel/exceptions-64s.S:958: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:959: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:983: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:984: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:1003: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:1013: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:1014: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:1015: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:1016: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:1017: Error: attempt to move .org 
> backwards
> arch/powerpc/kernel/exceptions-64s.S:1018: Error: attempt to move .org 
> backwards
> 
> Signed-off-by: Mahesh Salgaonkar 

Reported-by: Stephen Rothwell 
Tested-by: Stephen Rothwell 

Works for me.  Thanks.  I will add this to linux-next today if Ben
doesn't add it to his tree.
-- 
Cheers,
Stephen Rothwells...@canb.auug.org.au


pgpcoVil8VkWC.pgp
Description: PGP signature


[PATCH] powerpc: Fix "attempt to move .org backwards" error

2013-12-09 Thread Mahesh J Salgaonkar
From: Mahesh Salgaonkar 

With recent machine check patch series changes, The exception vectors
starting from 0x4300 are now overflowing with allyesconfig. Fix that by
moving machine_check_common and machine_check_handle_early code out of
that region to make enough room for exception vector area.

Fixes this build error reportes by Stephen:

arch/powerpc/kernel/exceptions-64s.S: Assembler messages:
arch/powerpc/kernel/exceptions-64s.S:958: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:959: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:983: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:984: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:1003: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:1013: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:1014: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:1015: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:1016: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:1017: Error: attempt to move .org backwards
arch/powerpc/kernel/exceptions-64s.S:1018: Error: attempt to move .org backwards

Signed-off-by: Mahesh Salgaonkar 
---
 arch/powerpc/kernel/exceptions-64s.S |  280 +-
 1 file changed, 140 insertions(+), 140 deletions(-)

diff --git a/arch/powerpc/kernel/exceptions-64s.S 
b/arch/powerpc/kernel/exceptions-64s.S
index 862b9dd..b5c3313 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -768,146 +768,6 @@ kvmppc_skip_Hinterrupt:
 
STD_EXCEPTION_COMMON(0x100, system_reset, .system_reset_exception)
 
-   /*
-* Machine check is different because we use a different
-* save area: PACA_EXMC instead of PACA_EXGEN.
-*/
-   .align  7
-   .globl machine_check_common
-machine_check_common:
-
-   mfspr   r10,SPRN_DAR
-   std r10,PACA_EXGEN+EX_DAR(r13)
-   mfspr   r10,SPRN_DSISR
-   stw r10,PACA_EXGEN+EX_DSISR(r13)
-   EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC)
-   FINISH_NAP
-   DISABLE_INTS
-   ld  r3,PACA_EXGEN+EX_DAR(r13)
-   lwz r4,PACA_EXGEN+EX_DSISR(r13)
-   std r3,_DAR(r1)
-   std r4,_DSISR(r1)
-   bl  .save_nvgprs
-   addir3,r1,STACK_FRAME_OVERHEAD
-   bl  .machine_check_exception
-   b   .ret_from_except
-
-#define MACHINE_CHECK_HANDLER_WINDUP   \
-   /* Clear MSR_RI before setting SRR0 and SRR1. */\
-   li  r0,MSR_RI;  \
-   mfmsr   r9; /* get MSR value */ \
-   andcr9,r9,r0;   \
-   mtmsrd  r9,1;   /* Clear MSR_RI */  \
-   /* Move original SRR0 and SRR1 into the respective regs */  \
-   ld  r9,_MSR(r1);\
-   mtspr   SPRN_SRR1,r9;   \
-   ld  r3,_NIP(r1);\
-   mtspr   SPRN_SRR0,r3;   \
-   ld  r9,_CTR(r1);\
-   mtctr   r9; \
-   ld  r9,_XER(r1);\
-   mtxer   r9; \
-   ld  r9,_LINK(r1);   \
-   mtlrr9; \
-   REST_GPR(0, r1);\
-   REST_8GPRS(2, r1);  \
-   REST_GPR(10, r1);   \
-   ld  r11,_CCR(r1);   \
-   mtcrr11;\
-   /* Decrement paca->in_mce. */   \
-   lhz r12,PACA_IN_MCE(r13);   \
-   subir12,r12,1;  \
-   sth r12,PACA_IN_MCE(r13);   \
-   REST_GPR(11, r1);   \
-   REST_2GPRS(12, r1); \
-   /* restore original r1. */  \
-   ld  r1,GPR1(r1)
-
-   /*
-* Handle machine check early in real mode. We come here with
-* ME=1, MMU (IR=0 and DR=0) off and using MC emergency stack.
-*/
-   .align  7
-   .globl machine_check_handle_early
-machine_check_handle_early:
-BEGIN_FTR_SECTION
-   std r0,GPR0(r1) /* Save r0 */
-   EXCEPTION_PROLOG_COMMON_3(0x200)
-   bl  .save_nvgprs
-   addir3,r1,STACK_FRAME_OVERHEAD
-   bl  .machine_check_early
-   ld  r12,_MSR(r1)
-#ifdef CONFIG_PPC_P7_NAP
-   /*
-* Check if thread was in power saving mode. We come here when any
-* of the following is true:
-* a. thread wasn't in power saving mode
-* b. thread was in pow