summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lwis_device_slc.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/lwis_device_slc.c b/lwis_device_slc.c
index dd570c1..5b0dd53 100644
--- a/lwis_device_slc.c
+++ b/lwis_device_slc.c
@@ -216,7 +216,14 @@ int lwis_slc_buffer_free(struct lwis_device *lwis_dev, int fd)
if (fp == NULL) {
return -EBADF;
}
- slc_pt = fp->private_data;
+
+ if (fp->f_op != &pt_file_ops) {
+ dev_err(lwis_dev->dev, "SLC file ops is not equal to pt_file_ops\n");
+ fput(fp);
+ return -EINVAL;
+ }
+
+ slc_pt = (struct slc_partition *)fp->private_data;
if (slc_pt->fd != fd) {
dev_warn(lwis_dev->dev, "Stale SLC buffer free for fd %d with ptid %d\n", fd,