Re: [Qemu-devel] [PATCH v10 2/7] virtio-pmem: Add virtio pmem driver

From: Pankaj Gupta
Date: Tue May 21 2019 - 12:27:15 EST



> > diff --git a/include/uapi/linux/virtio_pmem.h
> > b/include/uapi/linux/virtio_pmem.h
> > new file mode 100644
> > index 000000000000..7a3e2fe52415
> > --- /dev/null
> > +++ b/include/uapi/linux/virtio_pmem.h
> > @@ -0,0 +1,35 @@
> > +/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
> > +/*
> > + * Definitions for virtio-pmem devices.
> > + *
> > + * Copyright (C) 2019 Red Hat, Inc.
> > + *
> > + * Author(s): Pankaj Gupta <pagupta@xxxxxxxxxx>
> > + */
> > +
> > +#ifndef _UAPI_LINUX_VIRTIO_PMEM_H
> > +#define _UAPI_LINUX_VIRTIO_PMEM_H
> > +
> > +#include <linux/types.h>
> > +#include <linux/virtio_types.h>
> > +#include <linux/virtio_ids.h>
> > +#include <linux/virtio_config.h>
> > +
> > +struct virtio_pmem_config {
> > + __le64 start;
> > + __le64 size;
> > +};
> > +
>
> config generally should be __u64.
> Are you sure sparse does not complain?

I used this because VIRTIO 1.1 spec says:
"The device configuration space uses the little-endian format for multi-byte fields. "

and __le64 looks ok to me. Also, its used in other driver config as welle.g virtio-vsock

>
>
> > +#define VIRTIO_PMEM_REQ_TYPE_FLUSH 0
> > +
> > +struct virtio_pmem_resp {
> > + /* Host return status corresponding to flush request */
> > + __virtio32 ret;
> > +};
> > +
> > +struct virtio_pmem_req {
> > + /* command type */
> > + __virtio32 type;
> > +};
> > +
> > +#endif
> > --
> > 2.20.1
>
> Sorry why are these __virtio32 not __le32?

I used __virtio32 for data fields for guest and host supporting different endianess.

Thanks,
Pankaj
>
> --
> MST
>
>