aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ucs2_string.c
diff options
context:
space:
mode:
authorSylvain Chouleur <[email protected]>2016-07-15 19:36:30 +0000
committerMatt Fleming <[email protected]>2016-09-09 15:08:42 +0000
commit21b3ddd39feecd2f4d6c52bcd30f0a4fa14f125a (patch)
tree40773635e6415ce23293c67eda0327dddec90ae7 /lib/ucs2_string.c
parentefi: Use a file local lock for efivars (diff)
downloadkernel-21b3ddd39feecd2f4d6c52bcd30f0a4fa14f125a.tar.gz
kernel-21b3ddd39feecd2f4d6c52bcd30f0a4fa14f125a.zip
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 <[email protected]> Signed-off-by: Ard Biesheuvel <[email protected]> Cc: Leif Lindholm <[email protected]> Cc: Mark Rutland <[email protected]> Cc: Sylvain Chouleur <[email protected]> Signed-off-by: Matt Fleming <[email protected]>
Diffstat (limited to 'lib/ucs2_string.c')
0 files changed, 0 insertions, 0 deletions