Skip to content

Commit

Permalink
Merge tag 'optee-rcu-sched-trace-for-v5.11' of git://git.linaro.org/p…
Browse files Browse the repository at this point in the history
…eople/jens.wiklander/linux-tee into arm/fixes

Fix rcu_sched trace from OP-TEE invoke

Replaces might_sleep() with a conditional call to cond_resched()
in order to avoid the rcu_sched trace in some corner cases.

* tag 'optee-rcu-sched-trace-for-v5.11' of git://git.linaro.org/people/jens.wiklander/linux-tee:
  tee: optee: replace might_sleep with cond_resched

Link: https://lore.kernel.org/r/20210122074234.GA1074747@jade
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
  • Loading branch information
Arnd Bergmann committed Jan 22, 2021
2 parents 8a996b2 + dcb3b06 commit 156d029
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion drivers/tee/optee/call.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <linux/err.h>
#include <linux/errno.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/tee_drv.h>
#include <linux/types.h>
Expand Down Expand Up @@ -148,7 +149,8 @@ u32 optee_do_call_with_arg(struct tee_context *ctx, phys_addr_t parg)
*/
optee_cq_wait_for_completion(&optee->call_queue, &w);
} else if (OPTEE_SMC_RETURN_IS_RPC(res.a0)) {
might_sleep();
if (need_resched())
cond_resched();
param.a0 = res.a0;
param.a1 = res.a1;
param.a2 = res.a2;
Expand Down

0 comments on commit 156d029

Please sign in to comment.