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