diff options
| author | Ingo Molnar <mingo@elte.hu> | 2002-07-23 20:04:01 -0700 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2002-07-23 20:04:01 -0700 |
| commit | a6efb709806ceffb0331c22328267d7f327c6518 (patch) | |
| tree | d7b8229a573e88b8b7eefa4bcb10f057917f2b31 /fs/buffer.c | |
| parent | 1da3174ffe3d0f29d21209a74e510723c9655031 (diff) | |
[PATCH] irqlock patch 2.5.27-H6
- init thread needs to have preempt_count of 1 until sched_init().
(William Lee Irwin III)
- clean up the irq-mask macros. (Linus)
- add barrier() to irq_enter() and irq_exit(). (based on Oleg Nesterov's
comment.)
- move the irqs-off check into preempt_schedule() and remove
CONFIG_DEBUG_IRQ_SCHEDULE.
- remove spin_unlock_no_resched() and comment the affected places more
agressively.
- slab.c needs to spin_unlock_no_resched(), instead of spin_unlock(). (It
also has to check for preemption in the right spot.) This should fix
the memory corruption.
- irq_exit() needs to run softirqs if interrupts not active - in the
previous patch it ran them when preempt_count() was 0, which is
incorrect.
- spinlock macros are updated to enable preemption after enabling
interrupts. Besides avoiding false positive warnings, this also
- fork.c has to call scheduler_tick() with preemption disabled -
otherwise scheduler_tick()'s spin_unlock can preempt!
- irqs_disabled() macro introduced.
- [ all other local_irq_enable() or sti instances conditional on
CONFIG_DEBUG_IRQ_SCHEDULE are to fix false positive warnings. ]
- fix buggy in_softirq(). Fortunately the bug made the test broader,
which didnt result in algorithmical breakage, just suboptimal
performance.
- move do_softirq() processing into irq_exit() => this also fixes the
softirq processing bugs present in apic.c IRQ handlers that did not
test for softirqs after irq_exit().
- simplify local_bh_enable().
Diffstat (limited to 'fs/buffer.c')
| -rw-r--r-- | fs/buffer.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/buffer.c b/fs/buffer.c index 107d4409a926..cde52fee66a4 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -62,10 +62,7 @@ void __buffer_error(char *file, int line) printk("buffer layer error at %s:%d\n", file, line); #ifdef CONFIG_X86 printk("Pass this trace through ksymoops for reporting\n"); - { - extern void show_stack(long *esp); - show_stack(0); - } + show_stack(0); #endif } EXPORT_SYMBOL(__buffer_error); |
