| From 7d6ee2a5666597613d5a266790a2076c2f2bcd69 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 6 Feb 2020 02:40:58 -0500 |
| Subject: virtio_balloon: prevent pfn array overflow |
| |
| From: Michael S. Tsirkin <mst@redhat.com> |
| |
| [ Upstream commit 6e9826e77249355c09db6ba41cd3f84e89f4b614 ] |
| |
| Make sure, at build time, that pfn array is big enough to hold a single |
| page. It happens to be true since the PAGE_SHIFT value at the moment is |
| 20, which is 1M - exactly 256 4K balloon pages. |
| |
| Signed-off-by: Michael S. Tsirkin <mst@redhat.com> |
| Reviewed-by: David Hildenbrand <david@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/virtio/virtio_balloon.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c |
| index 14ac36ca8fbd3..1afcbef397ab7 100644 |
| --- a/drivers/virtio/virtio_balloon.c |
| +++ b/drivers/virtio/virtio_balloon.c |
| @@ -126,6 +126,8 @@ static void set_page_pfns(struct virtio_balloon *vb, |
| { |
| unsigned int i; |
| |
| + BUILD_BUG_ON(VIRTIO_BALLOON_PAGES_PER_PAGE > VIRTIO_BALLOON_ARRAY_PFNS_MAX); |
| + |
| /* |
| * Set balloon pfns pointing at this page. |
| * Note that the first pfn points at start of the page. |
| -- |
| 2.20.1 |
| |