From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=none (p=none dis=none) header.from=gibson.dropbear.id.au Authentication-Results: passt.top; dkim=pass (2048-bit key; secure) header.d=gibson.dropbear.id.au header.i=@gibson.dropbear.id.au header.a=rsa-sha256 header.s=202412 header.b=Lr6qs3AX; dkim-atps=neutral Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id 24C815A026F for ; Tue, 17 Dec 2024 00:45:37 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202412; t=1734392727; bh=QYMpJ1PmSc8r8EFmcrLoW5cx+djwTp/PME79skVnlhE=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=Lr6qs3AXh7gB7/0KuO+sxeo6XpYVdN49ZyQRRbJ5BP24ks0qoVDijKfTjk6ziztI5 kUftayNOUJUt/g2OYhss6hPUJcCpQ9oXGUbsQLa97CWAyadns274c/L1JPwaet9crA 7fpYu/Y/fjvnCpJheSoYIaddg3gSt9wTW/9u8KQRlvjoWaPleuIQ3lu6ZDMmRN1+dH w+T+5FvgBJxIRaYcCHHi/Hc0iDUG5y45MJSpppAcVYa9LSPOy9MtR0p8NIwEo6jvYQ f/H4tp2+dzt/iU6RcEmWHeaoDCx+S/G/jENsQjgpOwk7qr5b5LptR6b23kgya8BzbN m6Kflt9Tvy1oQ== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4YBxQH63Vzz4wcw; Tue, 17 Dec 2024 10:45:27 +1100 (AEDT) Date: Tue, 17 Dec 2024 10:45:25 +1100 From: David Gibson To: Laurent Vivier Subject: Re: [PATCH] virtio: Use const pointer for vu_dev Message-ID: References: <20241216104141.1324139-1-lvivier@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="L/Bl70iArkh76VO6" Content-Disposition: inline In-Reply-To: <20241216104141.1324139-1-lvivier@redhat.com> Message-ID-Hash: O6YUIWIFCHEIF2XCT63XDAC4P7JTOYLX X-Message-ID-Hash: O6YUIWIFCHEIF2XCT63XDAC4P7JTOYLX X-MailFrom: dgibson@gandalf.ozlabs.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: passt-dev@passt.top X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: --L/Bl70iArkh76VO6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 16, 2024 at 11:41:41AM +0100, Laurent Vivier wrote: > We don't modify the structure in some virtio functions. >=20 > Signed-off-by: Laurent Vivier Reviewed-by: David Gibson I'm surprised we weren't already failing some of our static checks because of this. > --- > virtio.c | 14 +++++++++----- > virtio.h | 2 +- > vu_common.c | 2 +- > vu_common.h | 2 +- > 4 files changed, 12 insertions(+), 8 deletions(-) >=20 > diff --git a/virtio.c b/virtio.c > index a76de5e00222..625bac385f0c 100644 > --- a/virtio.c > +++ b/virtio.c > @@ -92,7 +92,8 @@ > * > * Return: virtual address in our address space of the guest physical ad= dress > */ > -static void *vu_gpa_to_va(struct vu_dev *dev, uint64_t *plen, uint64_t g= uest_addr) > +static void *vu_gpa_to_va(const struct vu_dev *dev, uint64_t *plen, > + uint64_t guest_addr) > { > unsigned int i; > =20 > @@ -210,7 +211,8 @@ static void virtqueue_get_head(const struct vu_virtq = *vq, > * > * Return: -1 if there is an error, 0 otherwise > */ > -static int virtqueue_read_indirect_desc(struct vu_dev *dev, struct vring= _desc *desc, > +static int virtqueue_read_indirect_desc(const struct vu_dev *dev, > + struct vring_desc *desc, > uint64_t addr, size_t len) > { > uint64_t read_len; > @@ -390,7 +392,7 @@ static inline void vring_set_avail_event(const struct= vu_virtq *vq, > * > * Return: false on error, true otherwise > */ > -static bool virtqueue_map_desc(struct vu_dev *dev, > +static bool virtqueue_map_desc(const struct vu_dev *dev, > unsigned int *p_num_sg, struct iovec *iov, > unsigned int max_num_sg, > uint64_t pa, size_t sz) > @@ -426,7 +428,8 @@ static bool virtqueue_map_desc(struct vu_dev *dev, > * > * Return: -1 if there is an error, 0 otherwise > */ > -static int vu_queue_map_desc(struct vu_dev *dev, struct vu_virtq *vq, un= signed int idx, > +static int vu_queue_map_desc(const struct vu_dev *dev, > + struct vu_virtq *vq, unsigned int idx, > struct vu_virtq_element *elem) > { > const struct vring_desc *desc =3D vq->vring.desc; > @@ -504,7 +507,8 @@ static int vu_queue_map_desc(struct vu_dev *dev, stru= ct vu_virtq *vq, unsigned i > * > * Return: -1 if there is an error, 0 otherwise > */ > -int vu_queue_pop(struct vu_dev *dev, struct vu_virtq *vq, struct vu_virt= q_element *elem) > +int vu_queue_pop(const struct vu_dev *dev, struct vu_virtq *vq, > + struct vu_virtq_element *elem) > { > unsigned int head; > int ret; > diff --git a/virtio.h b/virtio.h > index 6410d60f9b3f..0af259df7dac 100644 > --- a/virtio.h > +++ b/virtio.h > @@ -170,7 +170,7 @@ static inline bool vu_has_protocol_feature(const stru= ct vu_dev *vdev, > =20 > bool vu_queue_empty(struct vu_virtq *vq); > void vu_queue_notify(const struct vu_dev *dev, struct vu_virtq *vq); > -int vu_queue_pop(struct vu_dev *dev, struct vu_virtq *vq, > +int vu_queue_pop(const struct vu_dev *dev, struct vu_virtq *vq, > struct vu_virtq_element *elem); > void vu_queue_detach_element(struct vu_virtq *vq); > void vu_queue_unpop(struct vu_virtq *vq); > diff --git a/vu_common.c b/vu_common.c > index 299b5a32e244..6d365bea5fe2 100644 > --- a/vu_common.c > +++ b/vu_common.c > @@ -73,7 +73,7 @@ void vu_init_elem(struct vu_virtq_element *elem, struct= iovec *iov, int elem_cnt > * > * Return: number of elements used to contain the frame > */ > -int vu_collect(struct vu_dev *vdev, struct vu_virtq *vq, > +int vu_collect(const struct vu_dev *vdev, struct vu_virtq *vq, > struct vu_virtq_element *elem, int max_elem, > size_t size, size_t *frame_size) > { > diff --git a/vu_common.h b/vu_common.h > index 901d97216c67..bd70faf3e226 100644 > --- a/vu_common.h > +++ b/vu_common.h > @@ -46,7 +46,7 @@ static inline void vu_set_element(struct vu_virtq_eleme= nt *elem, > =20 > void vu_init_elem(struct vu_virtq_element *elem, struct iovec *iov, > int elem_cnt); > -int vu_collect(struct vu_dev *vdev, struct vu_virtq *vq, > +int vu_collect(const struct vu_dev *vdev, struct vu_virtq *vq, > struct vu_virtq_element *elem, int max_elem, size_t size, > size_t *frame_size); > void vu_set_vnethdr(const struct vu_dev *vdev, --=20 David Gibson (he or they) | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you, not the other way | around. http://www.ozlabs.org/~dgibson --L/Bl70iArkh76VO6 Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEO+dNsU4E3yXUXRK2zQJF27ox2GcFAmdgu4UACgkQzQJF27ox 2Gcbtg//ec6qHQK62TlDM/vgs5GZ2/TuUxAtpoqfyvCOKa8OLZ4pdVhtm+18LWX+ wBxRZPgIFmhS120tCTgnstKz/tczulWqLGddcvwcK7YZmdaEZ3NN0XITN0wunBVU +don2HdAKCtePPyLiXrPtrft1cwZa4z6c1i5O6WRV10eyQXiJ/vqma0XalOMatDl By/CQ7b/x43NcYFZArdbn4eL0VEKxg2sHGsj9LMjuLWey0b1gwhdkSy+DQdTZRvw uBDrimfMR/qYne7rCSA/YDSPlDPYWYcSRu/xiJmJbhr6JMViSHYqRryt0yN0ZTbf 2fAkHvmkWOqREqDFvRkt6m3CWmMJYitf6wLOxi+Sa417kUXyIf8IO7EWIFt2NayT tRhSE00h98bbuv+0yJXhgcjlRTPOC4Y6iFrKknUyTry87i6hipidY1HwUDzLPbUk HFKEG1ZgdoYNllC1p+HWCiey3CVzKomJpgmiWFQKwcD6RQmxlQSL8jqPX+T11V6m x15SADeVtH/6aNOyBUNM02j4qbwG71vjNAxnk9C67o/CkfLM+9jUDFkMbhDwL2+Q evdYhCQj7iekUC26r0y+JVYEdTU//7bevQhUf1/9Pg2RJY2NRYJkxYhhuxmedfiS 8L7swMd/Zf2rLoCixgMsASgjh/2vIQd7VmNkCe8uhBIzeKRGmn8= =CcCo -----END PGP SIGNATURE----- --L/Bl70iArkh76VO6--