diff options
Diffstat (limited to 'include/litmus/locking.h')
-rw-r--r-- | include/litmus/locking.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/include/litmus/locking.h b/include/litmus/locking.h index a01890153fa1..57d2abfe2a12 100644 --- a/include/litmus/locking.h +++ b/include/litmus/locking.h | |||
@@ -13,13 +13,19 @@ struct litmus_lock { | |||
13 | int type; | 13 | int type; |
14 | 14 | ||
15 | #ifdef CONFIG_LITMUS_NESTED_LOCKING | 15 | #ifdef CONFIG_LITMUS_NESTED_LOCKING |
16 | struct list_head lock_chain; | 16 | struct task_struct *hp_waiter_eff_prio; |
17 | #endif | 17 | struct task_struct **hp_waiter_ptr; |
18 | }; | 18 | struct binheap_node hp_binheap_node; |
19 | |||
20 | int ident; | ||
21 | |||
22 | //#ifdef CONFIG_DEBUG_SPINLOCK | ||
23 | char cheat_lockdep[2]; | ||
24 | struct lock_class_key key; | ||
25 | //#endif | ||
19 | 26 | ||
20 | #ifdef CONFIG_LITMUS_NESTED_LOCKING | ||
21 | void nest_lock(struct litmus_lock *l, struct task_struct *t); | ||
22 | #endif | 27 | #endif |
28 | }; | ||
23 | 29 | ||
24 | struct litmus_lock_ops { | 30 | struct litmus_lock_ops { |
25 | /* Current task tries to obtain / drop a reference to a lock. | 31 | /* Current task tries to obtain / drop a reference to a lock. |
@@ -35,8 +41,8 @@ struct litmus_lock_ops { | |||
35 | void (*deallocate)(struct litmus_lock*); | 41 | void (*deallocate)(struct litmus_lock*); |
36 | 42 | ||
37 | #ifdef CONFIG_LITMUS_NESTED_LOCKING | 43 | #ifdef CONFIG_LITMUS_NESTED_LOCKING |
38 | void (*propagate_increase_inheritance)(struct litmus_lock* l, struct task_struct* t); | 44 | void (*propagate_increase_inheritance)(struct litmus_lock* l, struct task_struct* t, raw_spinlock_t* to_unlock, unsigned long irqflags); |
39 | void (*propagate_decrease_inheritance)(struct litmus_lock* l, struct task_struct* t); | 45 | void (*propagate_decrease_inheritance)(struct litmus_lock* l, struct task_struct* t, raw_spinlock_t* to_unlock, unsigned long irqflags); |
40 | #endif | 46 | #endif |
41 | }; | 47 | }; |
42 | 48 | ||