usb: gadget: ffs: Make sparse happier
[GitHub/MotorolaMobilityLLC/kernel-slsi.git] / drivers / usb / gadget / function / f_fs.c
index d1a052614c39a5173e43f141825f121164bcb8d1..cb25232d0ce86f080719ca48abf6388a4bb2ff0d 100644 (file)
@@ -270,6 +270,7 @@ static void ffs_ep0_complete(struct usb_ep *ep, struct usb_request *req)
 }
 
 static int __ffs_ep0_queue_wait(struct ffs_data *ffs, char *data, size_t len)
+       __releases(&ffs->ev.waitq.lock)
 {
        struct usb_request *req = ffs->ep0req;
        int ret;
@@ -462,6 +463,7 @@ done_spin:
 /* Called with ffs->ev.waitq.lock and ffs->mutex held, both released on exit. */
 static ssize_t __ffs_ep0_read_events(struct ffs_data *ffs, char __user *buf,
                                     size_t n)
+       __releases(&ffs->ev.waitq.lock)
 {
        /*
         * n cannot be bigger than ffs->ev.count, which cannot be bigger than
@@ -547,6 +549,7 @@ static ssize_t ffs_ep0_read(struct file *file, char __user *buf,
                        break;
                }
 
+               /* unlocks spinlock */
                return __ffs_ep0_read_events(ffs, buf,
                                             min(n, (size_t)ffs->ev.count));
 
@@ -1282,7 +1285,7 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code,
                desc = epfile->ep->descs[desc_idx];
 
                spin_unlock_irq(&epfile->ffs->eps_lock);
-               ret = copy_to_user((void *)value, desc, desc->bLength);
+               ret = copy_to_user((void __user *)value, desc, desc->bLength);
                if (ret)
                        ret = -EFAULT;
                return ret;
@@ -2339,7 +2342,7 @@ static int __ffs_data_do_os_desc(enum ffs_os_desc_type type,
                                  length, pnl, type);
                        return -EINVAL;
                }
-               pdl = le32_to_cpu(*(u32 *)((u8 *)data + 10 + pnl));
+               pdl = le32_to_cpu(*(__le32 *)((u8 *)data + 10 + pnl));
                if (length != 14 + pnl + pdl) {
                        pr_vdebug("invalid os descriptor length: %d pnl:%d pdl:%d (descriptor %d)\n",
                                  length, pnl, pdl, type);
@@ -2893,7 +2896,7 @@ static int __ffs_func_bind_do_os_desc(enum ffs_os_desc_type type,
 
                ext_prop->type = le32_to_cpu(desc->dwPropertyDataType);
                ext_prop->name_len = le16_to_cpu(desc->wPropertyNameLength);
-               ext_prop->data_len = le32_to_cpu(*(u32 *)
+               ext_prop->data_len = le32_to_cpu(*(__le32 *)
                        usb_ext_prop_data_len_ptr(data, ext_prop->name_len));
                length = ext_prop->name_len + ext_prop->data_len + 14;