Message ID | 20231214000744.1281464-1-lakshmiy@us.ibm.com |
---|---|
State | New |
Headers | show |
Series | [v1] fsi: Fix panic on scom file read | expand |
Hi Lakshmi, On 12/13/23 18:07, Lakshmi Yadlapati wrote: > Reading the scom file without the custom open method (i2cr_scom_open) > causes a kernel panic. This change replaces simple_open with i2cr_scom_open > to properly initialize the private_data field in the file structure, > preventing the panic during scom file operations. > > Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com> > --- > drivers/fsi/i2cr-scom.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/drivers/fsi/i2cr-scom.c b/drivers/fsi/i2cr-scom.c > index cb7e02213032..8d65c562b488 100644 > --- a/drivers/fsi/i2cr-scom.c > +++ b/drivers/fsi/i2cr-scom.c > @@ -73,9 +73,18 @@ static ssize_t i2cr_scom_write(struct file *filep, const char __user *buf, size_ > return len; > } > > +static int i2cr_scom_open(struct inode *inode, struct file *file) > +{ > + struct i2cr_scom *scom = container_of(inode->i_cdev, struct i2cr_scom, cdev); > + > + file->private_data = scom; > + > + return 0; > +} > + > static const struct file_operations i2cr_scom_fops = { > .owner = THIS_MODULE, > - .open = simple_open, > + .open = i2cr_scom_open, > .llseek = i2cr_scom_llseek, > .read = i2cr_scom_read, > .write = i2cr_scom_write, Looks good. Reviewed-by: Ninad Palsule <ninad@linux.ibm.com>
diff --git a/drivers/fsi/i2cr-scom.c b/drivers/fsi/i2cr-scom.c index cb7e02213032..8d65c562b488 100644 --- a/drivers/fsi/i2cr-scom.c +++ b/drivers/fsi/i2cr-scom.c @@ -73,9 +73,18 @@ static ssize_t i2cr_scom_write(struct file *filep, const char __user *buf, size_ return len; } +static int i2cr_scom_open(struct inode *inode, struct file *file) +{ + struct i2cr_scom *scom = container_of(inode->i_cdev, struct i2cr_scom, cdev); + + file->private_data = scom; + + return 0; +} + static const struct file_operations i2cr_scom_fops = { .owner = THIS_MODULE, - .open = simple_open, + .open = i2cr_scom_open, .llseek = i2cr_scom_llseek, .read = i2cr_scom_read, .write = i2cr_scom_write,
Reading the scom file without the custom open method (i2cr_scom_open) causes a kernel panic. This change replaces simple_open with i2cr_scom_open to properly initialize the private_data field in the file structure, preventing the panic during scom file operations. Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com> --- drivers/fsi/i2cr-scom.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)