diff options
author | Sylvain Chouleur <sylvain.chouleur@intel.com> | 2016-07-15 22:36:30 +0300 |
---|---|---|
committer | Matt Fleming <matt@codeblueprint.co.uk> | 2016-09-09 18:08:42 +0300 |
commit | 21b3ddd39feecd2f4d6c52bcd30f0a4fa14f125a (patch) | |
tree | 40773635e6415ce23293c67eda0327dddec90ae7 /drivers/firmware/efi/runtime-wrappers.c | |
parent | 217b27d4671a0a3f34147f1b341683d36b7457db (diff) | |
download | linux-21b3ddd39feecd2f4d6c52bcd30f0a4fa14f125a.tar.xz |
efi: Don't use spinlocks for efi vars
All efivars operations are protected by a spinlock which prevents
interruptions and preemption. This is too restricted, we just need a
lock preventing concurrency.
The idea is to use a semaphore of count 1 and to have two ways of
locking, depending on the context:
- In interrupt context, we call down_trylock(), if it fails we return
an error
- In normal context, we call down_interruptible()
We don't use a mutex here because the mutex_trylock() function must not
be called from interrupt context, whereas the down_trylock() can.
Signed-off-by: Sylvain Chouleur <sylvain.chouleur@intel.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Sylvain Chouleur <sylvain.chouleur@gmail.com>
Signed-off-by: Matt Fleming <matt@codeblueprint.co.uk>
Diffstat (limited to 'drivers/firmware/efi/runtime-wrappers.c')
0 files changed, 0 insertions, 0 deletions