Re: [PATCH V4 04/12] misc: xilinx_sdfec: Add open, close and ioctl
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2019-06-06 13:28:47
Also in:
linux-devicetree, lkml
On Sat, May 25, 2019 at 12:37:17PM +0100, Dragan Cvetic wrote:
+static int xsdfec_dev_open(struct inode *iptr, struct file *fptr)
+{
+ return 0;
+}
+
+static int xsdfec_dev_release(struct inode *iptr, struct file *fptr)
+{
+ return 0;
+}empty open/close functions are never needed, just drop them.
+
+static long xsdfec_dev_ioctl(struct file *fptr, unsigned int cmd,
+ unsigned long data)
+{
+ struct xsdfec_dev *xsdfec;
+ void __user *arg = NULL;
+ int rval = -EINVAL;
+
+ xsdfec = container_of(fptr->private_data, struct xsdfec_dev, miscdev);
+ if (!xsdfec)
+ return rval;It is impossible for container_of() to return NULL, unless something very magical and rare just happened. It's just doing pointer math, you can never check the return value of it.
+ + if (_IOC_TYPE(cmd) != XSDFEC_MAGIC) + return -ENOTTY;
How can this happen?
+
+ /* check if ioctl argument is present and valid */
+ if (_IOC_DIR(cmd) != _IOC_NONE) {
+ arg = (void __user *)data;
+ if (!arg)
+ return rval;
+ }
+
+ switch (cmd) {
+ default:
+ /* Should not get here */
+ dev_warn(xsdfec->dev, "Undefined SDFEC IOCTL");Nice that userspace has a way to fill up the kernel log :( Just return the correct error here, don't log it. thanks, greg k-h _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel