usb: gadget: Fix minor issues in usb function drivers
1. Free port if create thread fails
2. Check req->buf before accessing it
3. Change count variable type to match smd_write return type
CRs-Fixed: 342316
Change-Id: I55a268d105eb2066d67fc704d31905eaf29a26a4
Signed-off-by: Vamsi Krishna <vskrishn@codeaurora.org>
diff --git a/drivers/usb/gadget/u_data_hsic.c b/drivers/usb/gadget/u_data_hsic.c
index abf147a..534aa7b 100644
--- a/drivers/usb/gadget/u_data_hsic.c
+++ b/drivers/usb/gadget/u_data_hsic.c
@@ -666,6 +666,7 @@
if (!port->wq) {
pr_err("%s: Unable to create workqueue:%s\n",
__func__, data_bridge_names[port_num]);
+ kfree(port);
return -ENOMEM;
}
port->port_num = port_num;
diff --git a/drivers/usb/gadget/u_sdio.c b/drivers/usb/gadget/u_sdio.c
index 14dc73a..8c4b4c7 100644
--- a/drivers/usb/gadget/u_sdio.c
+++ b/drivers/usb/gadget/u_sdio.c
@@ -231,7 +231,7 @@
int gsdio_write(struct gsdio_port *port, struct usb_request *req)
{
unsigned avail;
- char *packet = req->buf;
+ char *packet;
unsigned size = req->actual;
unsigned n;
int ret = 0;
diff --git a/drivers/usb/gadget/u_smd.c b/drivers/usb/gadget/u_smd.c
index 0e9ad48..e74b2e1 100644
--- a/drivers/usb/gadget/u_smd.c
+++ b/drivers/usb/gadget/u_smd.c
@@ -245,7 +245,7 @@
char *packet = req->buf;
unsigned size = req->actual;
unsigned n;
- unsigned count;
+ int count;
n = port->n_read;
if (n) {