diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-07-31 18:43:41 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-31 18:43:41 +0200 |
commit | 85e9ca333d03fbd56b9e123c8456f0d98e20faad (patch) | |
tree | 7bb15ada5f536950efa23ad60ea9eea60380ca1c /drivers/char/nvram.c | |
parent | documentation: move hpet.txt to timers/ subdirectory (diff) | |
parent | Linux 2.6.27-rc1 (diff) | |
download | linux-85e9ca333d03fbd56b9e123c8456f0d98e20faad.tar.xz linux-85e9ca333d03fbd56b9e123c8456f0d98e20faad.zip |
Merge branch 'linus' into timers/hpet
Diffstat (limited to 'drivers/char/nvram.c')
-rw-r--r-- | drivers/char/nvram.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c index 98dec380af49..39f6357e3b5d 100644 --- a/drivers/char/nvram.c +++ b/drivers/char/nvram.c @@ -333,12 +333,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 +351,7 @@ nvram_open(struct inode *inode, struct file *file) nvram_open_cnt++; spin_unlock(&nvram_state_lock); + unlock_kernel(); return 0; } @@ -440,7 +443,7 @@ nvram_init(void) /* First test whether the driver should init at all */ if (!CHECK_DRIVER_INIT()) - return -ENXIO; + return -ENODEV; ret = misc_register(&nvram_dev); if (ret) { |