Re: [syzbot] INFO: task hung in vhost_work_dev_flush

From: Stefano Garzarella
Date: Mon Feb 21 2022 - 11:40:59 EST


On Mon, Feb 21, 2022 at 09:23:04PM +0530, Anirudh Rayabharam wrote:
On Mon, Feb 21, 2022 at 03:12:33PM +0100, Stefano Garzarella wrote:
#syz test: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
f71077a4d84b

Patch sent upstream:
https://lore.kernel.org/virtualization/20220221114916.107045-1-sgarzare@xxxxxxxxxx/T/#u

I don't see how your patch fixes this issue. It looks unrelated. It is
surprising that syzbot is happy with it.

I have sent a patch for this issue here:
https://lore.kernel.org/lkml/20220221072852.31820-1-mail@xxxxxxxxxxxxx/

It is related because the worker thread is accessing the iotlb that is going to be freed, so it could be corrupted/invalid.

Your patch seems right, but simply prevents iotlb from being set for the the specific test case, so it remains NULL and iotlb_access_ok() exits immediately.

Anyway, currently if nregions is 0 vhost_set_memory() sets an iotlb with no regions (the for loop is not executed), so I'm not sure iotlb_access_ok() cycles infinitely.

Stefano