author | Xiaoliang Wang <xiaoliang.wang@amlogic.com> | 2018-10-18 11:28:18 (GMT) |
---|---|---|
committer | Gerrit Code Review <gituser@droid04> | 2018-10-18 11:28:18 (GMT) |
commit | 8d856ee04e7fcc5719bfaf078d0b3bb788827c90 (patch) | |
tree | 5b6012c3a5ebcfab14326c482f5c70ca7bdc360f | |
parent | fb2d66885130e7af3dafdfa1fd433c7709f07573 (diff) | |
parent | ea36cc268d75799a5e75b9478918d92d17b28f86 (diff) | |
download | common-8d856ee04e7fcc5719bfaf078d0b3bb788827c90.zip common-8d856ee04e7fcc5719bfaf078d0b3bb788827c90.tar.gz common-8d856ee04e7fcc5719bfaf078d0b3bb788827c90.tar.bz2 |
Merge "usb: adb reboot and then adb disconnect[1/1]" into p-amlogic
-rw-r--r-- | drivers/usb/gadget/function/f_fs.c | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 055c03a..cb76db3 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -848,7 +848,9 @@ static void ffs_user_copy_worker(struct work_struct *work) if (io_data->read) kfree(io_data->to_free); +#ifndef CONFIG_AMLOGIC_USB kfree(io_data->buf); +#endif kfree(io_data); } @@ -952,7 +954,6 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data) #ifdef CONFIG_AMLOGIC_USB struct ffs_ep *ep = epfile->ep; struct ffs_data_buffer *buffer = NULL; - int data_flag = -1; #else struct ffs_ep *ep; #endif @@ -1034,15 +1035,6 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data) goto error_mutex; } #else - if (io_data->aio) { - spin_unlock_irq(&epfile->ffs->eps_lock); - data = kmalloc(data_len, GFP_KERNEL); - data_flag = 1; - if (unlikely(!data)) { - ret = -ENOMEM; - goto error_mutex; - } - } else { /* Fire the request */ /* * Avoid kernel panic caused by race condition. For example, @@ -1060,9 +1052,9 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data) * To avoid this, during FunctionFS mount, we allocated the * data buffer for requests. And the memory resources has * been released in kill_sb. + *reboot adb disconnect,so buffer aways used assign_ffs_buffer. */ buffer = assign_ffs_buffer(epfile->ffs); - data_flag = -1; if (unlikely(!buffer)) { ret = -ENOMEM; spin_unlock_irq(&epfile->ffs->eps_lock); @@ -1071,7 +1063,6 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data) data = buffer->data_ep; spin_unlock_irq(&epfile->ffs->eps_lock); - } #endif if (!io_data->read && @@ -1177,13 +1168,8 @@ error_mutex: mutex_unlock(&epfile->mutex); error: #ifdef CONFIG_AMLOGIC_USB - if (data_flag > 0) { - kfree(data); - data = NULL; - } else { - if (buffer) - release_ffs_buffer(epfile->ffs, buffer); - } + if (buffer) + release_ffs_buffer(epfile->ffs, buffer); #else kfree(data); #endif |