Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 930ab4e5 authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Jonathan Corbet
Browse files

nvram: BKL pushdown



Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent fd3e05b6
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <linux/spinlock.h>
#include <linux/smp_lock.h>

#include <asm/io.h>
#include <asm/uaccess.h>
@@ -333,12 +334,14 @@ nvram_ioctl(struct inode *inode, struct file *file,
static int
nvram_open(struct inode *inode, struct file *file)
{
	lock_kernel();
	spin_lock(&nvram_state_lock);

	if ((nvram_open_cnt && (file->f_flags & O_EXCL)) ||
	    (nvram_open_mode & NVRAM_EXCL) ||
	    ((file->f_mode & 2) && (nvram_open_mode & NVRAM_WRITE))) {
		spin_unlock(&nvram_state_lock);
		unlock_kernel();
		return -EBUSY;
	}

@@ -349,6 +352,7 @@ nvram_open(struct inode *inode, struct file *file)
	nvram_open_cnt++;

	spin_unlock(&nvram_state_lock);
	unlock_kernel();

	return 0;
}