Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: gadget: f_fs: do not set cancel function on synchronous {read,write}

do not try to set cancel function in synchronous operations in
ffs_epfile_{read,write}_iter.

Cc: <stable@vger.kernel.org> # v4.0+
Acked-by: Al Viro <viro@ZenIV.linux.org.uk>
Signed-off-by: Rui Miguel Silva <rui.silva@linaro.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>

authored by

Rui Miguel Silva and committed by
Felipe Balbi
4088acf1 8515bac0

+4 -2
+4 -2
drivers/usb/gadget/function/f_fs.c
··· 924 924 925 925 kiocb->private = p; 926 926 927 - kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); 927 + if (p->aio) 928 + kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); 928 929 929 930 res = ffs_epfile_io(kiocb->ki_filp, p); 930 931 if (res == -EIOCBQUEUED) ··· 969 968 970 969 kiocb->private = p; 971 970 972 - kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); 971 + if (p->aio) 972 + kiocb_set_cancel_fn(kiocb, ffs_aio_cancel); 973 973 974 974 res = ffs_epfile_io(kiocb->ki_filp, p); 975 975 if (res == -EIOCBQUEUED)