diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c index 1a0b75cc4cef..8b166bf5ae77 100644 --- a/drivers/vhost/scsi.c +++ b/drivers/vhost/scsi.c @@ -944,7 +944,12 @@ vhost_scsi_copy_iov_to_sgl(struct vhost_scsi_cmd *cmd, struct iov_iter *iter, } for_each_sgtable_sg(sg_table, sg, i) { - page = alloc_page(GFP_KERNEL); + /* + * Completion copies the full bounce buffer, including bytes the + * target did not write. This is already the slow fallback for + * misaligned I/O, so zeroing is acceptable here. + */ + page = alloc_page(GFP_KERNEL | __GFP_ZERO); if (!page) { ret = -ENOMEM; goto err;