diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-07 14:00:46 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-12-07 14:00:46 -0500 |
| commit | fa2dd441df28b9fdfc68f84ae66f1b507cfff0e4 (patch) | |
| tree | ebef1a5e5834c9569b4f913e5c61a91e8ce093a0 /kernel | |
| parent | e17587b5b90da78f56c7a948e54dbac3dc791f31 (diff) | |
| parent | 8ced5f69e4bc09adcc6442e090e2e64c197246cf (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched
* 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
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/lockdep.c | 13 | ||||
| -rw-r--r-- | kernel/sched.c | 7 |
2 files changed, 15 insertions, 5 deletions
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 0f389621bb..723bd9f925 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 67d9d1799d..c6e551de79 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 | ||
