summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun Yan <juyan@nvidia.com>2013-07-24 16:57:30 -0700
committerVarun Colbert <vcolbert@nvidia.com>2013-07-24 17:10:13 -0700
commit8067f19868040be42e53bb05778138502c899632 (patch)
treefc1e8016c215ee99e59b81a057170cdc427bbe43
parent25efc183d9f57431c379fecce0e2cc541b0fbc93 (diff)
Revert "security: tf_driver: update with latest TL drop"
This reverts commit ac475a8eef3acc44297d4853fde82b87c31dda2b. Change-Id: I07d9672f3eadbdeebd85829480597661ce5259f5 Signed-off-by: Jun Yan <juyan@nvidia.com> Reviewed-on: http://git-master/r/253114 Reviewed-by: Anshul Jain (SW) <anshulj@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User
-rw-r--r--security/tf_driver/tf_comm.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/security/tf_driver/tf_comm.c b/security/tf_driver/tf_comm.c
index c1f4f654632c..01538249264f 100644
--- a/security/tf_driver/tf_comm.c
+++ b/security/tf_driver/tf_comm.c
@@ -1226,10 +1226,17 @@ static int tf_send_recv(struct tf_comm *comm,
bool wait_prepared = false;
enum TF_COMMAND_STATE command_status = TF_COMMAND_STATE_PENDING;
DEFINE_WAIT(wait);
-
+#ifdef CONFIG_FREEZER
+ unsigned long saved_flags;
+#endif
dprintk(KERN_INFO "[pid=%d] tf_send_recv(%p)\n",
current->pid, command);
+#ifdef CONFIG_FREEZER
+ saved_flags = current->flags;
+ current->flags |= PF_KTHREAD;
+#endif
+
/*
* Read all answers from the answer queue
*/
@@ -1244,8 +1251,15 @@ copy_answers:
wake_up(&(comm->wait_queue));
#ifdef CONFIG_FREEZER
- if (try_to_freeze())
+ if (unlikely(freezing(current))) {
+
+ dprintk(KERN_INFO
+ "Entering refrigerator.\n");
+ try_to_freeze();
+ dprintk(KERN_INFO
+ "Left refrigerator.\n");
goto copy_answers;
+ }
#endif
#ifndef CONFIG_PREEMPT
@@ -1391,6 +1405,11 @@ exit:
wait_prepared = false;
}
+#ifdef CONFIG_FREEZER
+ current->flags &= ~(PF_KTHREAD);
+ current->flags |= (saved_flags & PF_KTHREAD);
+#endif
+
return result;
}