History

sched: Introduce preempt_count accessor functions

Replace the single preempt_count() 'function' that's an lvalue with two proper functions: preempt_count() - returns the preempt_count value as rvalue preempt_count_set() - Allows setting the preempt-count value Also provide preempt_count_ptr() as a convenience wrapper to implement all modifying operations.

Peter Zijlstra committed 13 years ago

Commit 4a2b4b21 parent ea811747 files · +30 −18Browse files

Showing the changes to kernel/timer.c (1 of 7 files). Show all

Unified · Split

kernel/timer.c+4−4
@@ -1092,7 +1092,7 @@ static int cascade(struct tvec_base *base, struct tvec *tv, int index) · 1091 unmodified lines
10921092 static void call_timer_fn(struct timer_list *timer, void (*fn)(unsigned long),
10931093 unsigned long data)
10941094 {
1095− int preempt_count = preempt_count();
1095+ int count = preempt_count();
10961096
10971097 #ifdef CONFIG_LOCKDEP
10981098 /*
@@ -1119,16 +1119,16 @@ static void call_timer_fn(struct timer_list *timer, void (*fn)(unsigned long), · 20 unmodified lines
11191119
11201120 lock_map_release(&lockdep_map);
11211121
1122− if (preempt_count != preempt_count()) {
1122+ if (count != preempt_count()) {
11231123 WARN_ONCE(1, "timer: %pF preempt leak: %08x -> %08x\n",
1124− fn, preempt_count, preempt_count());
1124+ fn, count, preempt_count());
11251125 /*
11261126 * Restore the preempt count. That gives us a decent
11271127 * chance to survive and extract information. If the
11281128 * callback kept a lock held, bad luck, but not worse
11291129 * than the BUG() we had.
11301130 */
1131− preempt_count() = preempt_count;
1131+ preempt_count_set(count);
11321132 }
11331133 }
11341134

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t