Re: [PATCH -sfr.git] MIPS: zboot: indent the nop instruction in delay slot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, 2009-10-29 at 03:12 +0000, Maciej W. Rozycki wrote:
> On Thu, 29 Oct 2009, Wu Zhangjin wrote:
> 
> > diff --git a/arch/mips/boot/compressed/head.S b/arch/mips/boot/compressed/head.S
> > index e23f25e..29080f4 100644
> > --- a/arch/mips/boot/compressed/head.S
> > +++ b/arch/mips/boot/compressed/head.S
> > @@ -38,7 +38,7 @@ start:
> >  	PTR_LA	ra, 2f
> >  	PTR_LA	k0, decompress_kernel
> >  	jr	k0
> > -	nop
> > +	 nop
> >  2:
> >  	move	a0, s0
> >  	move	a1, s1
> > @@ -46,7 +46,7 @@ start:
> >  	move	a3, s3
> >  	PTR_LI	k0, KERNEL_ENTRY
> >  	jr	k0
> > -	nop
> > +	 nop
> >  3:
> >  	b 3b

need to add one nop here.

> >  	END(start)
> 
>  This piece of code looks unsafe to me.  I'm not sure which tree this is 
> against and certainly I don't have a local copy of the file,

This is against the of mips-for-linux-next branh of Ralf's
http://www.linux-mips.org/git?p=upstream-sfr.git;a=summary

>  but based on 
> the manual delay slot scheduling this is built with .set noreorder in 
> effect

Yes, there is exactly a ".set noreorder" there:

arch/mips/boot/compressed/head.S:
[...]
 17 
 18         .set noreorder
 19         .cprestore
 20         LEAF(start)
 21 start:
 22         /* Save boot rom start args */
 23         move    s0, a0
 24         move    s1, a1
 25         move    s2, a2
 26         move    s3, a3
 27 
 28         /* Clear BSS */
[...]

>  and as such the function lacks a delay slot fill for the trailing 
> branch (which is also ill-formatted).

A new version will be sent out, thanks!

Regards,
	Wu Zhangjin



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux