From nobody Tue Feb 10 00:57:57 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1614798736; cv=none; d=zohomail.com; s=zohoarc; b=lIpk2O2bcNt0Rmb+WeTylsItqfmdNItjSO9etmWaBYi7jNcNtidqmppIzFW8DUChx4JOw1SVR906sejoIUBxVpjXhpe5ScGwQA92gOYUC/bBJvQ3ee6rOUgY7iO47aJnXPRcUEuIFwEVl9i1Mgpq86/rtLTH27NmlQ7qj50ZBDI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614798736; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=MCpf1H4OXD9yrNlExURtQRGgfyEZrfNaghb6RD0f6bw=; b=PL6sTuN9hMli19lOOC/59XA0a0+C64w+oAHyqqqnMimOesmdObWHTeL+QqbvMQGDPdRcVM8IhNdikkx2VqwLfVXqHLqkmza1Sii5TfZDEKTgxlBSB0HwO8uFUTvlXLik2R8RlyTd1WMZmVTwYelGolL1Bk9MheAnbBglux1au48= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1614798736381540.5823446076415; Wed, 3 Mar 2021 11:12:16 -0800 (PST) Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-589-H4S5MS1oNXyPXj_1BHnuFA-1; Wed, 03 Mar 2021 14:12:13 -0500 Received: by mail-wr1-f70.google.com with SMTP id x9so9333497wro.9 for ; Wed, 03 Mar 2021 11:12:13 -0800 (PST) Return-Path: Return-Path: Received: from x1w.redhat.com (68.red-83-57-175.dynamicip.rima-tde.net. [83.57.175.68]) by smtp.gmail.com with ESMTPSA id h20sm6859508wmb.1.2021.03.03.11.12.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Mar 2021 11:12:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614798735; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MCpf1H4OXD9yrNlExURtQRGgfyEZrfNaghb6RD0f6bw=; b=DmGUCLgVxY4aCBNyFdfI8yuJV+SoUK8+2qOiQkkKppHTiQ9uFGgneiOXIy4Z1ldawTX01o Ic0WPsg0EECH8FSJ3krKL9eKyeEMuNjghAUgVfnOe8hkKJ00Gotwx6/bgooVmmd4onW+7X kOYELwyLxc/JrjIXqA3n3eTQmQonzC8= X-MC-Unique: H4S5MS1oNXyPXj_1BHnuFA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MCpf1H4OXD9yrNlExURtQRGgfyEZrfNaghb6RD0f6bw=; b=OnC1SIIHcYHSncJiHDGNGTWfp1D9apX2O9hzHbq7Q98T2HgNdQWs/+KVPlI1ajFBdJ Lr+9rrM36fJ+ryFVAQH7peem34iaqucSdV4ekA6AH/CkI7qC9/+AHOSYvzIFF7DG1cnR C052VEUcUsnVFyhqxkybjIC2OrQbp+KLtGPdOafGEaoakQjVoHVnHC+q7KGSv5N4dYY7 MMJU3ytGstyXzXXc2q8QGnigq29wLfvYRMuIFK0YE0Tnx6lCE8O/OkxmTKWHYUsqhqna f0TzghWtMGuEWkDj5dJGORuk+h+c63MuEpZXxgvoX38rv/Qh5xlJ5+TbI0cQGwck/RK5 oXnA== X-Gm-Message-State: AOAM533RvQr3uF6qzEGDo69SaKcsyZQ7Ux61IpSG7v50kmJqG/0/4yxn L9xktzLF7znxKMI0DtqXs2G+eOPOf25KmnYbpxN95jR1Sk5FFcrMmjpdNwNxbwv+xULYXVvu8wT cY44fc78173Y9vg== X-Received: by 2002:adf:8341:: with SMTP id 59mr213902wrd.130.1614798732658; Wed, 03 Mar 2021 11:12:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJzdOBrnV985ExD4APTwSwarDv2aq51sOhfto7G+StqDdiOrCyv1U376c2/iT2arhc9NF13VKA== X-Received: by 2002:adf:8341:: with SMTP id 59mr213883wrd.130.1614798732550; Wed, 03 Mar 2021 11:12:12 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Jason Wang , Bin Meng , Dmitry Fleytman , Peter Maydell , Richard Henderson , Bin Meng , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH v3 01/10] net: Use 'struct iovec' in qemu_send_packet_async_with_flags() Date: Wed, 3 Mar 2021 20:11:56 +0100 Message-Id: <20210303191205.1656980-2-philmd@redhat.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210303191205.1656980-1-philmd@redhat.com> References: <20210303191205.1656980-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Directly use iovec structure in qemu_send_packet_async_with_flags() by inlining filter_receive() and using qemu_net_queue_send_iov() instead of qemu_net_queue_send(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- net/net.c | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/net/net.c b/net/net.c index fb7b7dcc252..159e4d0ec25 100644 --- a/net/net.c +++ b/net/net.c @@ -581,22 +581,6 @@ static ssize_t filter_receive_iov(NetClientState *nc, return ret; } =20 -static ssize_t filter_receive(NetClientState *nc, - NetFilterDirection direction, - NetClientState *sender, - unsigned flags, - const uint8_t *data, - size_t size, - NetPacketSent *sent_cb) -{ - struct iovec iov =3D { - .iov_base =3D (void *)data, - .iov_len =3D size - }; - - return filter_receive_iov(nc, direction, sender, flags, &iov, 1, sent_= cb); -} - void qemu_purge_queued_packets(NetClientState *nc) { if (!nc->peer) { @@ -638,6 +622,13 @@ static ssize_t qemu_send_packet_async_with_flags(NetCl= ientState *sender, { NetQueue *queue; int ret; + int iovcnt =3D 1; + struct iovec iov[] =3D { + [0] =3D { + .iov_base =3D (void *)buf, + .iov_len =3D size, + }, + }; =20 #ifdef DEBUG_NET printf("qemu_send_packet_async:\n"); @@ -649,21 +640,21 @@ static ssize_t qemu_send_packet_async_with_flags(NetC= lientState *sender, } =20 /* Let filters handle the packet first */ - ret =3D filter_receive(sender, NET_FILTER_DIRECTION_TX, - sender, flags, buf, size, sent_cb); + ret =3D filter_receive_iov(sender, NET_FILTER_DIRECTION_TX, + sender, flags, iov, iovcnt, sent_cb); if (ret) { return ret; } =20 - ret =3D filter_receive(sender->peer, NET_FILTER_DIRECTION_RX, - sender, flags, buf, size, sent_cb); + ret =3D filter_receive_iov(sender->peer, NET_FILTER_DIRECTION_RX, + sender, flags, iov, iovcnt, sent_cb); if (ret) { return ret; } =20 queue =3D sender->peer->incoming_queue; =20 - return qemu_net_queue_send(queue, sender, flags, buf, size, sent_cb); + return qemu_net_queue_send_iov(queue, sender, flags, iov, iovcnt, sent= _cb); } =20 ssize_t qemu_send_packet_async(NetClientState *sender, --=20 2.26.2