diff --git a/drivers/crypto/ccp/psp-dev.c b/drivers/crypto/ccp/psp-dev.c index f2f79767ea17c704b5c506bf28bafd74fe4a10eb..5ea9b328cd45cd858c12c8d40150090bbc7ee415 100644 --- a/drivers/crypto/ccp/psp-dev.c +++ b/drivers/crypto/ccp/psp-dev.c @@ -84,7 +84,7 @@ int psp_mutex_lock_timeout(struct psp_mutex *mutex, uint64_t ms) int ret = 0; unsigned long je, last_je; - last_je = jiffies + msecs_to_jiffies(100); + last_je = jiffies; je = jiffies + msecs_to_jiffies(ms); do { if (psp_mutex_trylock(mutex)) { @@ -93,9 +93,9 @@ int psp_mutex_lock_timeout(struct psp_mutex *mutex, uint64_t ms) } // avoid triggering soft lockup warning - if (time_before(jiffies, last_je)) { + if (time_after(jiffies, last_je + msecs_to_jiffies(100))) { schedule(); - last_je = jiffies + msecs_to_jiffies(100); + last_je = jiffies; } } while ((ms == 0) || time_before(jiffies, je));