diff options
Diffstat (limited to 'litmus/sched_gsn_edf.c')
-rw-r--r-- | litmus/sched_gsn_edf.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/litmus/sched_gsn_edf.c b/litmus/sched_gsn_edf.c index 7aad7f0ad8f2..6ed504f4750e 100644 --- a/litmus/sched_gsn_edf.c +++ b/litmus/sched_gsn_edf.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <litmus/sched_plugin.h> | 18 | #include <litmus/sched_plugin.h> |
19 | #include <litmus/edf_common.h> | 19 | #include <litmus/edf_common.h> |
20 | #include <litmus/sched_trace.h> | 20 | #include <litmus/sched_trace.h> |
21 | #include <litmus/trace.h> | ||
21 | 22 | ||
22 | #include <litmus/preempt.h> | 23 | #include <litmus/preempt.h> |
23 | 24 | ||
@@ -799,6 +800,8 @@ int gsnedf_fmlp_lock(struct litmus_lock* l) | |||
799 | set_priority_inheritance(sem->owner, sem->hp_waiter); | 800 | set_priority_inheritance(sem->owner, sem->hp_waiter); |
800 | } | 801 | } |
801 | 802 | ||
803 | TS_LOCK_SUSPEND; | ||
804 | |||
802 | /* release lock before sleeping */ | 805 | /* release lock before sleeping */ |
803 | spin_unlock_irqrestore(&sem->wait.lock, flags); | 806 | spin_unlock_irqrestore(&sem->wait.lock, flags); |
804 | 807 | ||
@@ -809,6 +812,8 @@ int gsnedf_fmlp_lock(struct litmus_lock* l) | |||
809 | 812 | ||
810 | schedule(); | 813 | schedule(); |
811 | 814 | ||
815 | TS_LOCK_RESUME; | ||
816 | |||
812 | /* Since we hold the lock, no other task will change | 817 | /* Since we hold the lock, no other task will change |
813 | * ->owner. We can thus check it without acquiring the spin | 818 | * ->owner. We can thus check it without acquiring the spin |
814 | * lock. */ | 819 | * lock. */ |