# Re: \[PATCH RFC 1/2\] virtio\_balloon: convert to virtio 1.0 endian-ness

- From: Cornelia Huck \<hidden\>
- Date: 2014-12-02 18:39:42 
- List: linux-api
- Page: https://ratatoskr.run/linux-api/2014/12/4387033
- Thread: https://ratatoskr.run/linux-api/2014/12/4386730/t.md

```text
On Tue, 2 Dec 2014 13:44:06 +0200
"Michael S. Tsirkin" [ref] wrote:

> balloon device is not part of virtio 1.0 spec.  Still, it's easy enough
> to make it handle endian-ness exactly as other virtio 1.0 devices: what
> we gain from this, is that there's no need to special-case it in virtio
> core.

Well, the balloon is weird in a number of ways, including its always
little-endian config space.

But I'm not quite sure the spec covers this?

> 
> Signed-off-by: Michael S. Tsirkin <redacted>
> ---
>  include/uapi/linux/virtio_balloon.h | 5 +++--
>  drivers/virtio/virtio_balloon.c     | 4 ++--
>  2 files changed, 5 insertions(+), 4 deletions(-)
> 

>  struct virtio_balloon_stat {
> -	__u16 tag;
> -	__u64 val;
> +	__virtio16 tag;
> +	__virtio64 val;
>  } __attribute__((packed));

Would the respective fields in the spec need updating? While it is
actually talking about legacy requirements, the fields are not
specified as __virtio{16,64}.

Also, is changing the stat fields enough? I've not looked into balloon
operation, but does the payload need some endianess conversion as well?
```
