On Mon, Jul 13, 2020 at 01:35:39PM -0700, Alexander Duyck wrote:
> From: Alexander Duyck <[email protected]>
> 
> The poison_val field in the virtio_balloon_config is treated as a
> little-endian field by the host. Since we are currently only having to deal
> with a single byte poison value this isn't a problem, however if the value
> should ever expand it would cause byte ordering issues. Document that in
> the code so that we know that if the value should ever expand we need to
> byte swap the value on big-endian architectures.
> 
> Signed-off-by: Alexander Duyck <[email protected]>

Queued, thanks!

> ---
>  drivers/virtio/virtio_balloon.c |    5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
> index 1f157d2f4952..d0fd8f8dc6ed 100644
> --- a/drivers/virtio/virtio_balloon.c
> +++ b/drivers/virtio/virtio_balloon.c
> @@ -974,6 +974,11 @@ static int virtballoon_probe(struct virtio_device *vdev)
>               /*
>                * Let the hypervisor know that we are expecting a
>                * specific value to be written back in balloon pages.
> +              *
> +              * If the PAGE_POISON value was larger than a byte we would
> +              * need to byte swap poison_val here to guarantee it is
> +              * little-endian. However for now it is a single byte so we
> +              * can pass it as-is.
>                */
>               if (!want_init_on_free())
>                       memset(&poison_val, PAGE_POISON, sizeof(poison_val));

Reply via email to