Root/
Source at commit cdde9cf73945d547acd3e96f9508c79e84ad0bf1 created 12 years 9 months ago. By Maarten ter Huurne, MMC: JZ4740: Added support for CPU frequency changing | |
---|---|
1 | /* |
2 | * Mutexes: blocking mutual exclusion locks |
3 | * |
4 | * started by Ingo Molnar: |
5 | * |
6 | * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> |
7 | * |
8 | * This file contains mutex debugging related internal declarations, |
9 | * prototypes and inline functions, for the CONFIG_DEBUG_MUTEXES case. |
10 | * More details are in kernel/mutex-debug.c. |
11 | */ |
12 | |
13 | /* |
14 | * This must be called with lock->wait_lock held. |
15 | */ |
16 | extern void debug_mutex_lock_common(struct mutex *lock, |
17 | struct mutex_waiter *waiter); |
18 | extern void debug_mutex_wake_waiter(struct mutex *lock, |
19 | struct mutex_waiter *waiter); |
20 | extern void debug_mutex_free_waiter(struct mutex_waiter *waiter); |
21 | extern void debug_mutex_add_waiter(struct mutex *lock, |
22 | struct mutex_waiter *waiter, |
23 | struct thread_info *ti); |
24 | extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter, |
25 | struct thread_info *ti); |
26 | extern void debug_mutex_unlock(struct mutex *lock); |
27 | extern void debug_mutex_init(struct mutex *lock, const char *name, |
28 | struct lock_class_key *key); |
29 | |
30 | static inline void mutex_set_owner(struct mutex *lock) |
31 | { |
32 | lock->owner = current; |
33 | } |
34 | |
35 | static inline void mutex_clear_owner(struct mutex *lock) |
36 | { |
37 | lock->owner = NULL; |
38 | } |
39 | |
40 | #define spin_lock_mutex(lock, flags) \ |
41 | do { \ |
42 | struct mutex *l = container_of(lock, struct mutex, wait_lock); \ |
43 | \ |
44 | DEBUG_LOCKS_WARN_ON(in_interrupt()); \ |
45 | local_irq_save(flags); \ |
46 | arch_spin_lock(&(lock)->rlock.raw_lock);\ |
47 | DEBUG_LOCKS_WARN_ON(l->magic != l); \ |
48 | } while (0) |
49 | |
50 | #define spin_unlock_mutex(lock, flags) \ |
51 | do { \ |
52 | arch_spin_unlock(&(lock)->rlock.raw_lock); \ |
53 | local_irq_restore(flags); \ |
54 | preempt_check_resched(); \ |
55 | } while (0) |
56 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9