aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_gsn_edf.c
diff options
context:
space:
mode:
Diffstat (limited to 'litmus/sched_gsn_edf.c')
-rw-r--r--litmus/sched_gsn_edf.c5
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. */