X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=drivers%2Fusb%2Fgadget%2Ff_fs.c;h=9623556a8f1cc0e1cc1dcb981889f5b03877b4bb;hp=6b1c20b6c9b2e71817f9d62d89d0714d7b3e0655;hb=c1bc107624d20a2f8e91ab1a323047a224eb3884;hpb=dede6faac448db4251f8996d7dec6afb5a43726a diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c index 6b1c20b6c9b2..9623556a8f1c 100644 --- a/drivers/usb/gadget/f_fs.c +++ b/drivers/usb/gadget/f_fs.c @@ -20,6 +20,7 @@ #include #include +#include #include #include @@ -711,7 +712,7 @@ static long ffs_ep0_ioctl(struct file *file, unsigned code, unsigned long value) if (code == FUNCTIONFS_INTERFACE_REVMAP) { struct ffs_function *func = ffs->func; ret = func ? ffs_func_revmap_intf(func, value) : -ENODEV; - } else if (gadget->ops->ioctl) { + } else if (gadget && gadget->ops->ioctl) { ret = gadget->ops->ioctl(gadget, code, value); } else { ret = -ENOTTY; @@ -1375,11 +1376,13 @@ static int functionfs_bind(struct ffs_data *ffs, struct usb_composite_dev *cdev) ffs->ep0req->context = ffs; lang = ffs->stringtabs; - for (lang = ffs->stringtabs; *lang; ++lang) { - struct usb_string *str = (*lang)->strings; - int id = first_id; - for (; str->s; ++id, ++str) - str->id = id; + if (lang) { + for (; *lang; ++lang) { + struct usb_string *str = (*lang)->strings; + int id = first_id; + for (; str->s; ++id, ++str) + str->id = id; + } } ffs->gadget = cdev->gadget; @@ -2162,7 +2165,7 @@ static int ffs_func_bind(struct usb_configuration *c, const int high = gadget_is_dualspeed(func->gadget) && func->ffs->hs_descs_count; - int ret; + int ret, i; /* Make it a single chunk, less management later on */ struct { @@ -2191,8 +2194,8 @@ static int ffs_func_bind(struct usb_configuration *c, memset(data->eps, 0, sizeof data->eps); memcpy(data->raw_descs, ffs->raw_descs + 16, sizeof data->raw_descs); memset(data->inums, 0xff, sizeof data->inums); - for (ret = ffs->eps_count; ret; --ret) - data->eps[ret].num = -1; + for (i = 0; i < ffs->eps_count; i++) + data->eps[i].num = -1; /* Save pointers */ func->eps = data->eps;