diff options
| author | Linux Build Service Account <lnxbuild@quicinc.com> | 2017-12-04 06:17:01 -0800 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-12-04 06:17:01 -0800 |
| commit | bcc6bc7c9d2c1a6c84b38e10b94c54f51cf75d1f (patch) | |
| tree | bd4c1ffe728489ba1575b2d9ec451d3ad3a9908a | |
| parent | 541f2b13c3265bdab659bd168271ce20dce4ad71 (diff) | |
| parent | bf6d149282663160452005744960008f39f0fb97 (diff) | |
Merge "usb: gadget: f_fs: Fix kernel panic if use_os_string not set"
| -rw-r--r-- | drivers/usb/gadget/function/f_fs.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 2cbd90a7db43..a1e43d6f7ebb 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -3353,7 +3353,7 @@ static int _ffs_func_bind(struct usb_configuration *c, goto error; func->function.os_desc_table = vla_ptr(vlabuf, d, os_desc_table); - if (c->cdev->use_os_string) + if (c->cdev->use_os_string) { for (i = 0; i < ffs->interfaces_count; ++i) { struct usb_os_desc *desc; @@ -3364,13 +3364,15 @@ static int _ffs_func_bind(struct usb_configuration *c, vla_ptr(vlabuf, d, ext_compat) + i * 16; INIT_LIST_HEAD(&desc->ext_prop); } - ret = ffs_do_os_descs(ffs->ms_os_descs_count, - vla_ptr(vlabuf, d, raw_descs) + - fs_len + hs_len + ss_len, - d_raw_descs__sz - fs_len - hs_len - ss_len, - __ffs_func_bind_do_os_desc, func); - if (unlikely(ret < 0)) - goto error; + ret = ffs_do_os_descs(ffs->ms_os_descs_count, + vla_ptr(vlabuf, d, raw_descs) + + fs_len + hs_len + ss_len, + d_raw_descs__sz - fs_len - hs_len - + ss_len, + __ffs_func_bind_do_os_desc, func); + if (unlikely(ret < 0)) + goto error; + } func->function.os_desc_n = c->cdev->use_os_string ? ffs->interfaces_count : 0; |
