Messages in this thread Patch in this message | | | Date | Wed, 3 Sep 2008 17:15:40 +0200 (CEST) | From | Thomas Gleixner <> | Subject | Re: 2.6.27-rc5 doesn't boot on a Pavilion laptop |
| |
On Wed, 3 Sep 2008, Thomas Gleixner wrote: > Dont think so. Your dmesg outputs do not show any sign of that > disease. > > Can you try the patch below please ?
I found another instance of possible double init/shutdown. Please add the patch below on top of the other 2 as well.
Thanks,
tglx --- kernel/time/tick-broadcast.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
Index: linux-2.6/kernel/time/tick-broadcast.c =================================================================== --- linux-2.6.orig/kernel/time/tick-broadcast.c +++ linux-2.6/kernel/time/tick-broadcast.c @@ -210,7 +210,7 @@ static void tick_do_broadcast_on_off(voi struct clock_event_device *bc, *dev; struct tick_device *td; unsigned long flags, *reason = why; - int cpu; + int cpu, bc_stopped; spin_lock_irqsave(&tick_broadcast_lock, flags); @@ -228,6 +228,8 @@ static void tick_do_broadcast_on_off(voi if (!tick_device_is_functional(dev)) goto out; + bc_stoppped = cpus_empty(tick_broadcast_mask); + switch (*reason) { case CLOCK_EVT_NOTIFY_BROADCAST_ON: case CLOCK_EVT_NOTIFY_BROADCAST_FORCE: @@ -250,9 +252,10 @@ static void tick_do_broadcast_on_off(voi break; } - if (cpus_empty(tick_broadcast_mask)) - clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN); - else { + if (cpus_empty(tick_broadcast_mask)) { + if (!bc_stopped) + clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN); + } else if (bc_stopped) { if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC) tick_broadcast_start_periodic(bc); else
| |