Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d61117a authored by Linyu Yuan's avatar Linyu Yuan
Browse files

f_fs: fix scheduling while atomic issue of ffs_epfile_io()



move wait_for_completion() outside of spinlock.

Change-Id: Ib4cb7058aa96a55be40e757434ac64327264f104
Signed-off-by: default avatarLinyu Yuan <linyyuan@codeaurora.org>
parent 8543fd31
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -1185,11 +1185,13 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data)
			interrupted = true;
			if (ep->ep) {
				usb_ep_dequeue(ep->ep, req);
				spin_unlock_irq(&epfile->ffs->eps_lock);
				wait_for_completion(&done);
				interrupted = ep->status < 0;
			}
			} else {
				spin_unlock_irq(&epfile->ffs->eps_lock);
			}
		}

		ffs_log("%s:ep status %d for req %pK", epfile->name, ep->status,
				req);