> > Why are interrupts being disabled for vesafb scrolling anyway ?
>
> Console writes happen under spin_lock_irq(console_lock).
>
> The only reason for this which I can see: the kernel
> can call printk() from interrupt context.
We certainly need to be able to call printk from interrupt context so that
bit is in itself reasonable, but not the cost.
Suppose vesafb did something like this, dropping the printk lock
if(test_and_set_bit(0, &vesafb_lock))
{
if(in_interrupt())
{
// remember which bit of the dmesg ring to queue
queued_writes=1;
return;
}
}
/* for the re-entry case this will block */
down(&vesafb_mutex);
again:
do the usual stuff
if(queued_writes)
{
dequeue_write_buffer();
goto again;
}
up(&vesafb_mutex);
clear_bit(0, &vesafb_lock);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/
- Re: [OT] Major Clock Drift Andrew Morton
- Re: [OT] Major Clock Drift Pavel Machek
- Re: [OT] Major Clock Drift Andrew Morton
- Re: [OT] Major Clock Drift Peter Horton
- Re: [OT] Major Clock Drift Michael B. Trausch
- Re: Major Clock Drift george anzinger
- Re: Major Clock Drift Josh Myer
- Re: [OT] Major Clock Drift Pavel Machek
- Re: [OT] Major Clock Drift Alan Cox
- Re: [OT] Major Clock Drift Andrew Morton
- Re: [OT] Major Clock Drift Alan Cox
- Re: [OT] Major Clock Drift Andi Kleen
- Re: [OT] Major Clock Drift Alan Cox
- Re: [OT] Major Clock Drift James Sutherland
- Re: [OT] Major Clock Drift Pavel Machek
- Re: [OT] Major Clock Drift Alan Cox
- Re: [OT] Major Clock Drift Andrew Morton
- Re: [OT] Major Clock Drift Abramo Bagnara
- Re: [OT] Major Clock Drift Pavel Machek

