diff options
-rw-r--r-- | lwis_device_slc.c | 9 |
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, |