aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/lockdep.c13
-rw-r--r--kernel/sched.c7
2 files changed, 15 insertions, 5 deletions
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 0f389621bb6b..723bd9f92556 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -2654,10 +2654,15 @@ static void check_flags(unsigned long flags)
2654 if (!debug_locks) 2654 if (!debug_locks)
2655 return; 2655 return;
2656 2656
2657 if (irqs_disabled_flags(flags)) 2657 if (irqs_disabled_flags(flags)) {
2658 DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled); 2658 if (DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled)) {
2659 else 2659 printk("possible reason: unannotated irqs-off.\n");
2660 DEBUG_LOCKS_WARN_ON(!current->hardirqs_enabled); 2660 }
2661 } else {
2662 if (DEBUG_LOCKS_WARN_ON(!current->hardirqs_enabled)) {
2663 printk("possible reason: unannotated irqs-on.\n");
2664 }
2665 }
2661 2666
2662 /* 2667 /*
2663 * We dont accurately track softirq state in e.g. 2668 * We dont accurately track softirq state in e.g.
diff --git a/kernel/sched.c b/kernel/sched.c
index 67d9d1799d86..c6e551de795b 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -488,7 +488,12 @@ unsigned long long cpu_clock(int cpu)
488 488
489 local_irq_save(flags); 489 local_irq_save(flags);
490 rq = cpu_rq(cpu); 490 rq = cpu_rq(cpu);
491 update_rq_clock(rq); 491 /*
492 * Only call sched_clock() if the scheduler has already been
493 * initialized (some code might call cpu_clock() very early):
494 */
495 if (rq->idle)
496 update_rq_clock(rq);
492 now = rq->clock; 497 now = rq->clock;
493 local_irq_restore(flags); 498 local_irq_restore(flags);
494 499