On Wed, 13 Jan, at 05:32:41PM, Sylvain Chouleur wrote: > From: Sylvain Chouleur <sylvain.chouleur@xxxxxxxxx> > > All efivars operations are protected by a spinlock which prevents > interruptions and preemption. This is too restricted, we just need a > lock preventing concurency. > 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@xxxxxxxxx> > --- > drivers/firmware/efi/efi-pstore.c | 36 +++++++--- > drivers/firmware/efi/efivars.c | 22 ++++-- > drivers/firmware/efi/vars.c | 145 +++++++++++++++++++++++--------------- > fs/efivarfs/inode.c | 5 +- > fs/efivarfs/super.c | 9 ++- > include/linux/efi.h | 6 +- > 6 files changed, 149 insertions(+), 74 deletions(-) Looks fine to me. -- To unsubscribe from this list: send the line "unsubscribe linux-efi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html