diff --git a/drivers/block/tegra_virt_storage/tegra_hv_vblk.c b/drivers/block/tegra_virt_storage/tegra_hv_vblk.c index 6e3fd16f..13908b7b 100644 --- a/drivers/block/tegra_virt_storage/tegra_hv_vblk.c +++ b/drivers/block/tegra_virt_storage/tegra_hv_vblk.c @@ -701,9 +701,13 @@ static int vblk_request_worker(void *data) { struct vblk_dev *vblkdev = (struct vblk_dev *)data; bool req_submitted, req_completed; + int ret; while (true) { - wait_for_completion(&vblkdev->complete); + ret = wait_for_completion_interruptible(&vblkdev->complete); + if (ret < 0) { + continue; + } /* Taking ivc lock before performing IVC read/write */ mutex_lock(&vblkdev->ivc_lock);