[PATCH 0/2] hwspinlock: add the 'in_atomic' API

From: Fabien Dessenne
Date: Thu Mar 07 2019 - 10:58:45 EST

In its current implementation, the hwspinlock framework relies on jiffies
to handle the timeout of the hwspin_lock_timeout_xxx() API.
In an atomic context (or more precisely when irq are disabled) jiffies does not
increase, which prevents the timeout to reach its target value (infinite loop).

Note that there is already an hwspinlock user that runs in atomic context
(drivers/irqchip/irq-stm32-exti.c) and that has to handle by itself the

The first patch of the series completes the Documentation (the 'raw' API
is not documented), and the second patch provides with the 'in_atomic' API.

Fabien Dessenne (2):
hwspinlock: document the hwspinlock 'raw' API
hwspinlock: add the 'in_atomic' API

Documentation/hwspinlock.txt | 81 ++++++++++++++++++++++++++++++++++++
drivers/hwspinlock/hwspinlock_core.c | 43 +++++++++++++------
include/linux/hwspinlock.h | 61 +++++++++++++++++++++++++--
3 files changed, 169 insertions(+), 16 deletions(-)