diff options
| -rw-r--r-- | drivers/usb/gadget/function/f_fs.c | 14 | 
1 files changed, 12 insertions, 2 deletions
| diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index af98b096af2f..3ab34a2075df 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c | |||
| @@ -970,6 +970,7 @@ static ssize_t ffs_epfile_aio_write(struct kiocb *kiocb, | |||
| 970 | unsigned long nr_segs, loff_t loff) | 970 | unsigned long nr_segs, loff_t loff) | 
| 971 | { | 971 | { | 
| 972 | struct ffs_io_data *io_data; | 972 | struct ffs_io_data *io_data; | 
| 973 | ssize_t res; | ||
| 973 | 974 | ||
| 974 | ENTER(); | 975 | ENTER(); | 
| 975 | 976 | ||
| @@ -989,7 +990,10 @@ static ssize_t ffs_epfile_aio_write(struct kiocb *kiocb, | |||
| 989 | 990 | ||
| 990 | kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); | 991 | kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); | 
| 991 | 992 | ||
| 992 | return ffs_epfile_io(kiocb->ki_filp, io_data); | 993 | res = ffs_epfile_io(kiocb->ki_filp, io_data); | 
| 994 | if (res != -EIOCBQUEUED) | ||
| 995 | kfree(io_data); | ||
| 996 | return res; | ||
| 993 | } | 997 | } | 
| 994 | 998 | ||
| 995 | static ssize_t ffs_epfile_aio_read(struct kiocb *kiocb, | 999 | static ssize_t ffs_epfile_aio_read(struct kiocb *kiocb, | 
| @@ -998,6 +1002,7 @@ static ssize_t ffs_epfile_aio_read(struct kiocb *kiocb, | |||
| 998 | { | 1002 | { | 
| 999 | struct ffs_io_data *io_data; | 1003 | struct ffs_io_data *io_data; | 
| 1000 | struct iovec *iovec_copy; | 1004 | struct iovec *iovec_copy; | 
| 1005 | ssize_t res; | ||
| 1001 | 1006 | ||
| 1002 | ENTER(); | 1007 | ENTER(); | 
| 1003 | 1008 | ||
| @@ -1025,7 +1030,12 @@ static ssize_t ffs_epfile_aio_read(struct kiocb *kiocb, | |||
| 1025 | 1030 | ||
| 1026 | kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); | 1031 | kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); | 
| 1027 | 1032 | ||
| 1028 | return ffs_epfile_io(kiocb->ki_filp, io_data); | 1033 | res = ffs_epfile_io(kiocb->ki_filp, io_data); | 
| 1034 | if (res != -EIOCBQUEUED) { | ||
| 1035 | kfree(io_data); | ||
| 1036 | kfree(iovec_copy); | ||
| 1037 | } | ||
| 1038 | return res; | ||
| 1029 | } | 1039 | } | 
| 1030 | 1040 | ||
| 1031 | static int | 1041 | static int | 
