On 2016/11/03 06:09PM, Nicholas Piggin wrote: > On Thu, 3 Nov 2016 12:23:17 +0530 > "Naveen N. Rao" <naveen.n....@linux.vnet.ibm.com> wrote: > > diff --git a/arch/powerpc/include/asm/exception-64s.h > > b/arch/powerpc/include/asm/exception-64s.h > > index 2e4e7d8..9b7b302 100644 > > --- a/arch/powerpc/include/asm/exception-64s.h > > +++ b/arch/powerpc/include/asm/exception-64s.h > > @@ -91,7 +91,7 @@ > > */ > > #define LOAD_HANDLER(reg, label) \ > > ld reg,PACAKBASE(r13); /* get high part of &label */ \ > > - ori reg,reg,(FIXED_SYMBOL_ABS_ADDR(label))@l; > > + ori reg,reg,((FIXED_SYMBOL_ABS_ADDR(label)) & 0xffff); > > > > /* Exception register prefixes */ > > #define EXC_HV H > > Thanks for taking a look. Does this patch fix it, or just hide the build > error? This would presumably hide real bugs too, so it will be good if we > can make it conditional on older assemblers, or otherwise do a test for > out of bounds value (you could try asm directives like .if/.error)
It does seem to fix it for me - the built kernel booted fine ;) My assembly skills are a bit lacking, but is there a specific reason you think that AND'ing with 0xffff is different from using @l? Thanks, Naveen