Hi, On 4/2/2020 10:10 AM, Manu Gautam wrote: > On 4/2/2020 10:02 AM, Sriharsha Allenki wrote: >> From: Udipto Goswami <ugoswami@xxxxxxxxxxxxxx> >> >> For userspace functions using OS Descriptors, if a function also supplies >> Extended Property descriptors currently the counts and lengths stored in >> the ms_os_descs_ext_prop_{count,name_len,data_len} variables are not >> getting reset to 0 during an unbind or when the epfiles are closed. If >> the same function is re-bound and the descriptors are re-written, this >> results in those count/length variables to monotonically increase >> causing the VLA allocation in _ffs_func_bind() to grow larger and larger >> at each bind/unbind cycle and eventually fail to allocate. >> >> Fix this by clearing the ms_os_descs_ext_prop count & lengths to 0 in >> ffs_data_reset(). >> >> Change-Id: I3b292fe5386ab54b53df2b9f15f07430dc3df24a > Please remove this. Thanks Manu, sent v2 after removing it. >> Fixes: f0175ab51993 ("usb: gadget: f_fs: OS descriptors support") >> Cc: stable@xxxxxxxxxxxxxxx >> Signed-off-by: Udipto Goswami <ugoswami@xxxxxxxxxxxxxx> >> Signed-off-by: Sriharsha Allenki <sallenki@xxxxxxxxxxxxxx> >> --- >> drivers/usb/gadget/function/f_fs.c | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c >> index c81023b195c3..10f01f974f67 100644 >> --- a/drivers/usb/gadget/function/f_fs.c >> +++ b/drivers/usb/gadget/function/f_fs.c >> @@ -1813,6 +1813,10 @@ static void ffs_data_reset(struct ffs_data *ffs) >> ffs->state = FFS_READ_DESCRIPTORS; >> ffs->setup_state = FFS_NO_SETUP; >> ffs->flags = 0; >> + >> + ffs->ms_os_descs_ext_prop_count = 0; >> + ffs->ms_os_descs_ext_prop_name_len = 0; >> + ffs->ms_os_descs_ext_prop_data_len = 0; >> } >> >> > Reviewed-by: Manu Gautam <mgautam@xxxxxxxxxxxxxx> Thanks, Sriharsha