mirror of https://gitee.com/openkylin/linux.git
21b3ddd39f
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> |
||
---|---|---|
.. | ||
broadcom | ||
efi | ||
Kconfig | ||
Makefile | ||
arm_scpi.c | ||
dcdbas.c | ||
dcdbas.h | ||
dell_rbu.c | ||
dmi-id.c | ||
dmi-sysfs.c | ||
dmi_scan.c | ||
edd.c | ||
iscsi_ibft.c | ||
iscsi_ibft_find.c | ||
memmap.c | ||
pcdp.c | ||
pcdp.h | ||
psci.c | ||
qcom_scm-32.c | ||
qcom_scm-64.c | ||
qcom_scm.c | ||
qcom_scm.h | ||
qemu_fw_cfg.c | ||
raspberrypi.c | ||
scpi_pm_domain.c |