On Mon, Jan 11, 2010 at 22:20,  <[email protected]> wrote:
> Revision 8142 Author bhsong Date 2010-01-11 22:20:37 -0500 (Mon, 11 Jan
> 2010)
>
> Log Message
>
> task [#4437], use long call for kernel XIP
>
> Modified Paths
>
> trunk/arch/blackfin/kernel/entry.S
> trunk/arch/blackfin/mach-common/entry.S
> trunk/arch/blackfin/mach-common/interrupt.S
>
> Diff
>
> Modified: trunk/arch/blackfin/kernel/entry.S (8141 => 8142)
>
> --- trunk/arch/blackfin/kernel/entry.S        2010-01-11 12:35:31 UTC (rev 
> 8141)
> +++ trunk/arch/blackfin/kernel/entry.S        2010-01-12 03:20:37 UTC (rev 
> 8142)
> @@ -44,7 +44,13 @@
>       sti r4;
>  #endif /* CONFIG_IPIPE */
>       SP += -12;
> +#if defined(CONFIG_ROMKERNEL)
> +        p5.l = _schedule_tail;
> +        p5.h = _schedule_tail;
> +        call ( p5 );
> +#else
>       call _schedule_tail;
> +#endif

this is exactly the kind of thing i didnt want to happen.  ignoring
the broken whitespace in most of these commits, this should all be
unified somewhere in an assembly macro.  ive fixed these issues in a
commit now.

> @@ -90,7 +102,13 @@
>       r0 += 24;
>       [--sp] = rets;
>       SP += -12;
> +#if defined(CONFIG_ROMKERNEL)
> +        p5.l = _bfin_clone;
> +        p5.h = _bfin_clone;
> +        call ( p5 );
> +#else
>       call _bfin_clone;
> +#endif
>       SP += 12;
>       rets = [sp++];
>       rts;
> @@ -101,7 +119,13 @@
>       r0 += 24;
>       [--sp] = rets;
>       SP += -12;
> +#if defined(CONFIG_ROMKERNEL)
> +        p5.l = _do_rt_sigreturn;
> +        p5.h = _do_rt_sigreturn;
> +        call ( p5 );
> +#else
>       call _do_rt_sigreturn;
> +#endif
>       SP += 12;
>       rets = [sp++];
>       rts;

are you sure using p4/p5 in these short function calls is safe ?
those arent scratch registers based on our ABI, they're call preserved
which means if they are modified in a func, that func must
save/restore them.
-mike
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to