* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched: sched: enable early use of sched_clock() lockdep: make cli/sti annotation warnings clearer
···2654 if (!debug_locks)2655 return;26562657- if (irqs_disabled_flags(flags))2658- DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled);2659- else2660- DEBUG_LOCKS_WARN_ON(!current->hardirqs_enabled);0000026612662 /*2663 * We dont accurately track softirq state in e.g.
···2654 if (!debug_locks)2655 return;26562657+ if (irqs_disabled_flags(flags)) {2658+ if (DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled)) {2659+ printk("possible reason: unannotated irqs-off.\n");2660+ }2661+ } else {2662+ if (DEBUG_LOCKS_WARN_ON(!current->hardirqs_enabled)) {2663+ printk("possible reason: unannotated irqs-on.\n");2664+ }2665+ }26662667 /*2668 * We dont accurately track softirq state in e.g.
+6-1
kernel/sched.c
···488489 local_irq_save(flags);490 rq = cpu_rq(cpu);491- update_rq_clock(rq);00000492 now = rq->clock;493 local_irq_restore(flags);494
···488489 local_irq_save(flags);490 rq = cpu_rq(cpu);491+ /*492+ * Only call sched_clock() if the scheduler has already been493+ * initialized (some code might call cpu_clock() very early):494+ */495+ if (rq->idle)496+ update_rq_clock(rq);497 now = rq->clock;498 local_irq_restore(flags);499