aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLakshmi Yadlapati <lakshmiy@us.ibm.com>2023-12-13 18:07:44 -0600
committerJoel Stanley <joel@jms.id.au>2023-12-14 19:44:11 +1030
commitc5eeb63edac9497f9a0d46d3b75cf8b293771ecf (patch)
tree38b4718c639811284227a8c032022dc95a0ed5a6
parentf7236a0c919eca31c5def62bf52aa8aabcc6effb (diff)
downloadfsi-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.c11
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,