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=202510 header.b=MnCILNb8; dkim-atps=neutral Received: from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3]) by passt.top (Postfix) with ESMTPS id 0A50B5A061B for ; Fri, 05 Dec 2025 04:09:45 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gibson.dropbear.id.au; s=202510; t=1764904182; bh=IMKAeawLtaX/lT3f2UgHXfWnUXpHL4elxWJreSyRrdg=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=MnCILNb83By4d3/XxhX2GAB3oIRe5+ARLJQuwz7ut6OFeRDdDGzJ6b5ShJcPRqFg1 BEkSNbELI+BkftuPZb7Cx/XX4l3yiEKtvrXmbPTIkD8NkqtFIlcihlsAnUK8kbxbWb 6+X8/6DrE5weMavGAfvX8Q/DYgoX/s6IOszqqHSU/I+XjfRCKtJ7CDzwsoXXRjRqDU mXotHaBC8RGx/Q8c6wY9z90pqphGTYW24k0Svq8ViAATrznW9UVoPzcH/jXPZ12Oxx khhcUPc41SaH3NWfYJvwgM1TDZLa7EZ0MD1Wko2KvqRA8HxnJAucFO8wVHVh0+rsc3 YL/9o7nVWkPmA== Received: by gandalf.ozlabs.org (Postfix, from userid 1007) id 4dMxF1748tz4wHX; Fri, 05 Dec 2025 14:09:41 +1100 (AEDT) Date: Fri, 5 Dec 2025 13:55:49 +1100 From: David Gibson To: Stefano Brivio Subject: Re: [PATCH] vu_common: Clarify prototype of vu_collect() Message-ID: References: <20251205005105.2577221-1-sbrivio@redhat.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="NZcTvIYnxGvbFCbI" Content-Disposition: inline In-Reply-To: <20251205005105.2577221-1-sbrivio@redhat.com> Message-ID-Hash: DBPP4XXV55ZUWERW4C57GT57FT6RVREO X-Message-ID-Hash: DBPP4XXV55ZUWERW4C57GT57FT6RVREO 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, Laurent Vivier 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: --NZcTvIYnxGvbFCbI Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Dec 05, 2025 at 01:51:05AM +0100, Stefano Brivio wrote: > The last argument of vu_collect() can't exceed @size, but this isn't > documented and it wasn't obvious to me, to the point that I actually > proposed a change to "fix" callers so that they wouldn't overrun input > buffers. >=20 > Rename @frame_size to @collected, and clarify that it can only be up > to @size bytes. >=20 > Signed-off-by: Stefano Brivio Reviewed-by: David Gibson > --- > vu_common.c | 8 ++++---- > vu_common.h | 2 +- > 2 files changed, 5 insertions(+), 5 deletions(-) >=20 > diff --git a/vu_common.c b/vu_common.c > index b13b7c3..ce61fa6 100644 > --- a/vu_common.c > +++ b/vu_common.c > @@ -76,13 +76,13 @@ void vu_init_elem(struct vu_virtq_element *elem, stru= ct iovec *iov, int elem_cnt > * in the in_sg array. > * @max_elem: Number of virtqueue elements in the array > * @size: Maximum size of the data in the frame > - * @frame_size: The total size of the buffers (output) > + * @collected: Collected buffer length, up to @size, set on return > * > * Return: number of elements used to contain the frame > */ > 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) > + size_t size, size_t *collected) > { > size_t current_size =3D 0; > int elem_cnt =3D 0; > @@ -113,8 +113,8 @@ int vu_collect(const struct vu_dev *vdev, struct vu_v= irtq *vq, > break; > } > =20 > - if (frame_size) > - *frame_size =3D current_size; > + if (collected) > + *collected =3D current_size; > =20 > return elem_cnt; > } > diff --git a/vu_common.h b/vu_common.h > index f538f23..c0883b2 100644 > --- a/vu_common.h > +++ b/vu_common.h > @@ -48,7 +48,7 @@ void vu_init_elem(struct vu_virtq_element *elem, struct= iovec *iov, > int elem_cnt); > 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); > + size_t *collected); > void vu_set_vnethdr(const struct vu_dev *vdev, > struct virtio_net_hdr_mrg_rxbuf *vnethdr, > int num_buffers); > --=20 > 2.43.0 >=20 --=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 --NZcTvIYnxGvbFCbI Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEO+dNsU4E3yXUXRK2zQJF27ox2GcFAmkySbQACgkQzQJF27ox 2GfPOg/+JHrtDYJOqRTaIvSlF0iKODSLVglr2v94CpP3D2CqgpVnoHhc0iVqH4as DzW38xJDLbdTd4ZnMsRlGB9BG2thk+vInbf1e7nBxQyq3Nied8vq1cgR78Be5WPk fnhtlhDiyFVI80OPhaFt/HXq0Lc35Kpn4861yY4hIrxpkiQ8pE5Hsyh7HOuCLeSt gkDPTZD36UgAKxc67KRBAXWj9wixYh3/7M1sLKqWIg0UHxN22vDSCHH31s8uAXTz xc4417l3ottk6jSyf2DGCgyXHyhDQUnJzJwtuV1CGfW+3xLJMz3ObhGDomR3z1ec M2nzuT5VA0WnBu2PW8zs7od7I4bK4wTDJFQQ17D5NtKCpB0PV/0xYQlm/I59RHKM ygyuzSU82dVjnKWen76ml0SmyXIR2ZZv5OUkjz5Uqd6IL15h0wfQRO/6b7A5SbA0 Isz8nh99hfcA+iZp5dhQW+xxRlS7bfW2u58wANJfSd3Tz9KuQZM12ITTfItZRrfV 8CjuQpZYrMeGRZcFwOAinDNmXBAMQ7/A+6ca8GTOxBOGcqkJBOeICIPHEgbj/4GH /luoHRu+DUGZVWAUZ1dNi6vw8z20x9pgw7JShLjxFiFJSjvtxlLbYoh3pw72+jxJ EBmkJ7KPUnPkrHUeyHIXS1Q3jBy6QPldurabi6z5GKWai49TzGE= =m6Ru -----END PGP SIGNATURE----- --NZcTvIYnxGvbFCbI--