tick/broadcast: Prevent NULL pointer dereference
Dan reported that the recent changes to the broadcast code introduced
a potential NULL dereference.
Add the proper check.
Fixes: e045431190
"tick/broadcast: Sanity check the shutdown of the local clock_event"
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
1f6823faa8
commit
c4d029f2d4
|
@ -409,14 +409,16 @@ void tick_broadcast_control(enum tick_broadcast_mode mode)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cpumask_empty(tick_broadcast_mask)) {
|
if (bc) {
|
||||||
if (!bc_stopped)
|
if (cpumask_empty(tick_broadcast_mask)) {
|
||||||
clockevents_shutdown(bc);
|
if (!bc_stopped)
|
||||||
} else if (bc_stopped) {
|
clockevents_shutdown(bc);
|
||||||
if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC)
|
} else if (bc_stopped) {
|
||||||
tick_broadcast_start_periodic(bc);
|
if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC)
|
||||||
else
|
tick_broadcast_start_periodic(bc);
|
||||||
tick_broadcast_setup_oneshot(bc);
|
else
|
||||||
|
tick_broadcast_setup_oneshot(bc);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
raw_spin_unlock(&tick_broadcast_lock);
|
raw_spin_unlock(&tick_broadcast_lock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue