Michael S. Tsirkin
2020-Feb-06 07:47 UTC
[PATCH] virtio_balloon: prevent pfn array overflow
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 at redhat.com>
---
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 8e400ece9273..2457c54b6185 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -158,6 +158,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.
--
MST
David Hildenbrand
2020-Feb-06 08:29 UTC
[PATCH] virtio_balloon: prevent pfn array overflow
On 06.02.20 08:47, Michael S. Tsirkin wrote:> 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 at redhat.com> > --- > 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 8e400ece9273..2457c54b6185 100644 > --- a/drivers/virtio/virtio_balloon.c > +++ b/drivers/virtio/virtio_balloon.c > @@ -158,6 +158,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. >Reviewed-by: David Hildenbrand <david at redhat.com> -- Thanks, David / dhildenb
On 2020/2/6 ??3:47, Michael S. Tsirkin wrote:> 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 at redhat.com> > --- > 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 8e400ece9273..2457c54b6185 100644 > --- a/drivers/virtio/virtio_balloon.c > +++ b/drivers/virtio/virtio_balloon.c > @@ -158,6 +158,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.Acked-by: Jason Wang <jasowang at redhat.com>
Seemingly Similar Threads
- [PATCH] virtio_balloon: fix PFN format for virtio-1
- [PATCH] virtio_balloon: fix PFN format for virtio-1
- [PATCH AUTOSEL 5.5 538/542] virtio_balloon: prevent pfn array overflow
- [PATCH] virtio_balloon: fix deadlock on OOM
- [PATCH] virtio_balloon: fix deadlock on OOM