[patch] "big IRQ lock" removal, 2.5.27-A1

Ingo Molnar
2002-07-21T18:48:37Z

this is the next iteration of the big-IRQ-lock removal patch, against
2.5.27 + sched-fixes + ldt-fixes:

http://redhat.com/~mingo/remove-irqlock-patches/remove-irqlock-2.5.27-A1

one clarification wrt. disable_irq(): while it does not synchronize with
all IRQ sources globally anymore, it does synchronize with that particular
irq source (globally) - so drivers can use it safely to ensure that no
pending IRQ handler is running on another CPU after disable_irq() has
returned.

Changes:

- Oleg Nesterov noticed a do_IRQ() bug which can cause a reschedule in
do_IRQ().

- George Anzinger noticed that local_bh_enable() did not re-run softirqs.

- Linus suggested to still define cli(), sti(), save_flags(),
restore_flags() on UP kernels, to ease the transition.

the patch compiles, boots & works just fine on UP - on SMP it boots just
fine using the following limited .config:

http://redhat.com/~mingo/remove-irqlock-patches/config

(the serial subsystem is disabled for example.)

Ingo