diff options
author | Lakshmi Yadlapati <lakshmiy@us.ibm.com> | 2023-12-13 18:07:44 -0600 |
---|---|---|
committer | Joel Stanley <joel@jms.id.au> | 2023-12-14 19:44:11 +1030 |
commit | c5eeb63edac9497f9a0d46d3b75cf8b293771ecf (patch) | |
tree | 38b4718c639811284227a8c032022dc95a0ed5a6 | |
parent | f7236a0c919eca31c5def62bf52aa8aabcc6effb (diff) | |
download | fsi-next.tar.gz |
fsi: Fix panic on scom file readnext
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.
Fixes: c0b34bed0bbf ("fsi: Add I2C Responder SCOM driver")
Signed-off-by: Lakshmi Yadlapati <lakshmiy@us.ibm.com>
Reviewed-by: Ninad Palsule <ninad@linux.ibm.com>
Link: https://lore.kernel.org/r/20231214000744.1281464-1-lakshmiy@us.ibm.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
-rw-r--r-- | drivers/fsi/i2cr-scom.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/fsi/i2cr-scom.c b/drivers/fsi/i2cr-scom.c index cb7e02213032cc..8d65c562b488f5 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, |