On Fri, Jun 17, 2011 at 7:45 AM, Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: Hi Geert,
This is the WARN_ONCE(!irqs_disabled()) check. static inline bool arch_irqs_disabled_flags(unsigned long flags) { return (flags & ~ALLOWINT) != 0; } with flags = 0x2300. Due to the "special" value of ALLOWINT on Atari: #if defined(MACH_ATARI_ONLY) /* block out HSYNC on the atari */ #define ALLOWINT (~0x400) #define MAX_NOINT_IPL 3 #else /* portable version */ #define ALLOWINT (~0x700) #define MAX_NOINT_IPL 0 #endif /* machine compilation types */ the test fails. Would it harm to always use the "portable" version? That one is used on multi-platform kernels anyway? Or would it cause too many HBLANK interrupts?
I'd say it would cause too many unnecessary interrupts. At least with the original Falcon hardware that was a problem (haven't ever tried this on the CT60). Not sure I tried multi platform kernels in a long time, either. For these, it would probably required to male ALLOWINT a runtime optiion in order to avoid this problem (I seem to recall we used the corresponding hbl interrrupt handler for this originally since it only was a problem on Falcon, not on TT. Does the TT use IPL 1 and 2, Andreas?). MAX_NOINT_IPL may not needed any longer because all interrupt and signal return is now done from assembler code in entry.S, I guess. Probably best to ignore the two lowest IRQ bits on Atari for the purpose of this test since these are always going to be disabled. Cheers, Michael
BTW, MAX_NOINT_IPL is no longer used. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
-- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html