diff options
Diffstat (limited to 'drivers/s390/char/vmlogrdr.c')
-rw-r--r-- | drivers/s390/char/vmlogrdr.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c index d1a142fa3eb4..e40a1b892866 100644 --- a/drivers/s390/char/vmlogrdr.c +++ b/drivers/s390/char/vmlogrdr.c | |||
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/slab.h> | ||
19 | #include <linux/errno.h> | 20 | #include <linux/errno.h> |
20 | #include <linux/types.h> | 21 | #include <linux/types.h> |
21 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
@@ -312,11 +313,9 @@ static int vmlogrdr_open (struct inode *inode, struct file *filp) | |||
312 | return -ENOSYS; | 313 | return -ENOSYS; |
313 | 314 | ||
314 | /* Besure this device hasn't already been opened */ | 315 | /* Besure this device hasn't already been opened */ |
315 | lock_kernel(); | ||
316 | spin_lock_bh(&logptr->priv_lock); | 316 | spin_lock_bh(&logptr->priv_lock); |
317 | if (logptr->dev_in_use) { | 317 | if (logptr->dev_in_use) { |
318 | spin_unlock_bh(&logptr->priv_lock); | 318 | spin_unlock_bh(&logptr->priv_lock); |
319 | unlock_kernel(); | ||
320 | return -EBUSY; | 319 | return -EBUSY; |
321 | } | 320 | } |
322 | logptr->dev_in_use = 1; | 321 | logptr->dev_in_use = 1; |
@@ -360,9 +359,8 @@ static int vmlogrdr_open (struct inode *inode, struct file *filp) | |||
360 | || (logptr->iucv_path_severed)); | 359 | || (logptr->iucv_path_severed)); |
361 | if (logptr->iucv_path_severed) | 360 | if (logptr->iucv_path_severed) |
362 | goto out_record; | 361 | goto out_record; |
363 | ret = nonseekable_open(inode, filp); | 362 | nonseekable_open(inode, filp); |
364 | unlock_kernel(); | 363 | return 0; |
365 | return ret; | ||
366 | 364 | ||
367 | out_record: | 365 | out_record: |
368 | if (logptr->autorecording) | 366 | if (logptr->autorecording) |
@@ -372,7 +370,6 @@ out_path: | |||
372 | logptr->path = NULL; | 370 | logptr->path = NULL; |
373 | out_dev: | 371 | out_dev: |
374 | logptr->dev_in_use = 0; | 372 | logptr->dev_in_use = 0; |
375 | unlock_kernel(); | ||
376 | return -EIO; | 373 | return -EIO; |
377 | } | 374 | } |
378 | 375 | ||
@@ -679,7 +676,7 @@ static int vmlogrdr_pm_prepare(struct device *dev) | |||
679 | } | 676 | } |
680 | 677 | ||
681 | 678 | ||
682 | static struct dev_pm_ops vmlogrdr_pm_ops = { | 679 | static const struct dev_pm_ops vmlogrdr_pm_ops = { |
683 | .prepare = vmlogrdr_pm_prepare, | 680 | .prepare = vmlogrdr_pm_prepare, |
684 | }; | 681 | }; |
685 | 682 | ||