On Tue, Jan 19, 2010 at 21:57, Li Yi wrote:
> On Tue, 2010-01-19 at 05:29 -0500, Mike Frysinger wrote:
>> On Tue, Jan 19, 2010 at 05:13,  <[email protected]> wrote:
>> > Modified: trunk/arch/blackfin/mach-common/interrupt.S (8189 => 8190)
>> >
>> > @@ -88,7 +88,13 @@
>> >  #else
>> >     cli r1;
>> >  #endif
>> > -   TRACE_IRQS_OFF
>> > +#ifdef CONFIG_TRACE_IRQFLAGS
>> > +   [--sp] = r0;
>> > +   sp += -12;
>> > +   call _trace_hardirqs_off;
>> > +   sp += 12;
>> > +   r0 = [sp++];
>> > +#endif
>>
>> i dont think you need to save r0 here.  if you look below, you'll see
>> places where r0 gets clobbered and then finally restored.  no one uses
>> it.
>
> I think "r0" contains the irq number, do_irq() will use it:
>
> ffa00fd0 <_do_irq>:
> ffa00fd0:       67 01           [--SP] = RETS;
> ffa00fd2:       30 e3 f3 28     CALL 0x61b8 <__mcount>;
> ffa00fd6:       27 01           RETS = [SP++];
> ffa00fd8:       32 60           R2 = 0x6 (X);           /*
> R2=0x6(  6) */
> ffa00fda:       10 08           CC = R0 == R2;

yeah, you're right.  nm me.

    R0 = (N);                                                           \
    jump __common_int_entry;
...
./mach-common/ints-priority.c:void do_irq(int vec, struct pt_regs *fp)
...
-mike
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to