Commit ecc38983 authored by Jonathan Corbet's avatar Jonathan Corbet

ipmi: cdev lock_kernel() pushdown

Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent fbc8a81d
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/device.h> #include <linux/device.h>
#include <linux/compat.h> #include <linux/compat.h>
#include <linux/smp_lock.h>
struct ipmi_file_private struct ipmi_file_private
{ {
...@@ -121,6 +122,7 @@ static int ipmi_open(struct inode *inode, struct file *file) ...@@ -121,6 +122,7 @@ static int ipmi_open(struct inode *inode, struct file *file)
if (!priv) if (!priv)
return -ENOMEM; return -ENOMEM;
lock_kernel();
priv->file = file; priv->file = file;
rv = ipmi_create_user(if_num, rv = ipmi_create_user(if_num,
...@@ -129,7 +131,7 @@ static int ipmi_open(struct inode *inode, struct file *file) ...@@ -129,7 +131,7 @@ static int ipmi_open(struct inode *inode, struct file *file)
&(priv->user)); &(priv->user));
if (rv) { if (rv) {
kfree(priv); kfree(priv);
return rv; goto out;
} }
file->private_data = priv; file->private_data = priv;
...@@ -144,7 +146,9 @@ static int ipmi_open(struct inode *inode, struct file *file) ...@@ -144,7 +146,9 @@ static int ipmi_open(struct inode *inode, struct file *file)
priv->default_retries = -1; priv->default_retries = -1;
priv->default_retry_time_ms = 0; priv->default_retry_time_ms = 0;
return 0; out:
unlock_kernel();
return rv;
} }
static int ipmi_release(struct inode *inode, struct file *file) static int ipmi_release(struct inode *inode, struct file *file)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment