Patch "vhost: validate log when IOTLB is enabled" has been added to the 4.9-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
vhost: validate log when IOTLB is enabled
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
vhost-validate-log-when-iotlb-is-enabled.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Wed Apr 11 10:26:56 CEST 2018
From: Jason Wang <[email protected]>
Date: Thu, 29 Mar 2018 16:00:04 +0800
Subject: vhost: validate log when IOTLB is enabled
From: Jason Wang <[email protected]>
[ Upstream commit d65026c6c62e7d9616c8ceb5a53b68bcdc050525 ]
Vq log_base is the userspace address of bitmap which has nothing to do with IOTLB. So it needs to be validated unconditionally otherwise we may try use 0 as log_base which may lead to pin pages that will lead unexpected result (e.g trigger BUG_ON() in set_bit_to_user()).
--- drivers/vhost/vhost.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)
drivers/vhost/vhost.c +6 -8
@@ -1175,14 +1175,12 @@ static int vq_log_access_ok(struct vhost/* Caller should have vq mutex and device mutex */ int vhost_vq_access_ok (struct vhost_virtqueue *vq) { -if (vq->iotlb) { -/* When device IOTLB was used, the access validation -* will be validated during prefetching. -*/ -return 1 ; - } -return vq_access_ok (vq, vq->num, vq->desc, vq->avail, vq->used) && -vq_log_access_ok (vq, vq->log_base); +int ret =vq_log_access_ok (vq, vq->log_base); + +if (ret || vq->iotlb) +return ret; + +return vq_access_ok (vq, vq->num, vq->desc, vq->avail, vq->used); }EXPORT_SYMBOL_GPL (vhost_vq_access_ok);
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/skbuff-return-emsgsize-in-skb_to_sgvec-to-prevent-overflow.patch queue-4.9/virtio_net-check-return-value-of-skb_to_sgvec-always.patch queue-4.9/vhost-validate-log-when-iotlb-is-enabled.patch queue-4.9/vhost_net-add-missing-lock-nesting-notation.patch queue-4.9/vhost-correctly-remove-wait-queue-during-poll-failure.patch queue-4.9/virtio_net-check-return-value-of-skb_to_sgvec-in-one-more-location.patch