[<prev] [next>] [day] [month] [year] [list]
Message-Id: <20190523115208.24674-1-houweitaoo@gmail.com>
Date: Thu, 23 May 2019 19:52:08 +0800
From: Weitao Hou <houweitaoo@...il.com>
To: gregkh@...uxfoundation.org, oneukum@...e.com,
stern@...land.harvard.edu, chunfeng.yun@...iatek.com,
ebiederm@...ssion.com, bigeasy@...utronix.de, iamkeyur96@...il.com,
keescook@...omium.org, houweitaoo@...il.com
Cc: linux-usb@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] usb: avoid redundant allocation and free of memory
If usb is not attached, it's unnessary to allocate, copy
and free memory
Signed-off-by: Weitao Hou <houweitaoo@...il.com>
---
drivers/usb/core/devio.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index fa783531ee88..aa17dab6c4ea 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -2130,6 +2130,9 @@ static int proc_ioctl(struct usb_dev_state *ps, struct usbdevfs_ioctl *ctl)
if (ps->privileges_dropped)
return -EACCES;
+ if (!connected(ps))
+ return -ENODEV;
+
/* alloc buffer */
size = _IOC_SIZE(ctl->ioctl_code);
if (size > 0) {
@@ -2146,11 +2149,6 @@ static int proc_ioctl(struct usb_dev_state *ps, struct usbdevfs_ioctl *ctl)
}
}
- if (!connected(ps)) {
- kfree(buf);
- return -ENODEV;
- }
-
if (ps->dev->state != USB_STATE_CONFIGURED)
retval = -EHOSTUNREACH;
else if (!(intf = usb_ifnum_to_if(ps->dev, ctl->ifno)))
--
2.18.0
Powered by blists - more mailing lists