From nobody Mon Feb 9 23:00:07 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1659547352; cv=none; d=zohomail.com; s=zohoarc; b=Pjojnl/o7GFlAkqcwOxdib9zhgRZRIC2vKeeHTZrSZUlOshHGn218UTR2sWYuOSna/AH9GQRwH845i4XS/P0n6VgOCNb2d++hA49J49Z2f+JbzUoufRYlz9cHVYlO5g4vrINLWLuunV9irFaBYXDk7lN2XGOOqDW9OYjiSzmIeA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659547352; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=teEvkmaXnJDu+MYlIAEDQQW7Rkz2f8TRd1LEgOhTJIY=; b=Teezv3462DrVERX73OMaelPPjcUqw7vaV1MczWa6wBOBOfao3jMDzYypVU/G0ALWtpe0px0l4JX0ZbZNFqjsXkH9FvNFJCqDtixEA7CpLyzAYc/BbOggAv/BQodmW8Z5PN6nYZ2uUZ7fiB/rDayRfFXFRIVC+R/XtLBdElgVGOE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1659547352171726.3972618595159; Wed, 3 Aug 2022 10:22:32 -0700 (PDT) Received: from localhost ([::1]:56614 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oJI4l-0007Yr-1s for importer@patchew.org; Wed, 03 Aug 2022 13:22:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54042) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJI1j-0004kt-Px for qemu-devel@nongnu.org; Wed, 03 Aug 2022 13:19:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:47416) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJI1Y-00046H-GH for qemu-devel@nongnu.org; Wed, 03 Aug 2022 13:19:23 -0400 Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-399-ufOuDDrjNF-e8XedZcot8g-1; Wed, 03 Aug 2022 13:18:59 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8AAFD3C10248; Wed, 3 Aug 2022 17:18:44 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.192.202]) by smtp.corp.redhat.com (Postfix) with ESMTP id B91261121314; Wed, 3 Aug 2022 17:18:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659547147; 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=teEvkmaXnJDu+MYlIAEDQQW7Rkz2f8TRd1LEgOhTJIY=; b=iBeE5/87KuICb3EovclmSSi5T4pGZ/8yMPb1eizIYfaIKG6CD1e588ffHQpRxQEFNnnPm1 AxA78/AnLp8xjio5s+689XWmq9gTIM0KIC5LJdktet6lAdNSorJONWiaYX7d5OYbqP3iQs Vgtn3fQFELnQNuMDRKqIL7CJMqvZVog= X-MC-Unique: ufOuDDrjNF-e8XedZcot8g-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Jason Wang , Stefan Hajnoczi , Gautam Dawar , Cornelia Huck , Eli Cohen , Stefano Garzarella , Harpreet Singh Anand , Zhu Lingshan , Laurent Vivier , "Michael S. Tsirkin" , kvm@vger.kernel.org, Paolo Bonzini , Liuxiangdong , Parav Pandit , Cindy Lu , "Gonglei (Arei)" Subject: [PATCH v3 6/7] vhost_net: Add NetClientInfo prepare callback Date: Wed, 3 Aug 2022 19:18:20 +0200 Message-Id: <20220803171821.481336-7-eperezma@redhat.com> In-Reply-To: <20220803171821.481336-1-eperezma@redhat.com> References: <20220803171821.481336-1-eperezma@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.129.124; envelope-from=eperezma@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -21 X-Spam_score: -2.2 X-Spam_bar: -- X-Spam_report: (-2.2 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.082, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1659547354206100001 This is used by the backend to perform actions before the device is started. In particular, vdpa will use it to isolate CVQ in its own ASID if possible, and start SVQ unconditionally only in CVQ. Signed-off-by: Eugenio P=C3=A9rez --- include/net/net.h | 2 ++ hw/net/vhost_net.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/include/net/net.h b/include/net/net.h index a8d47309cd..efa6448886 100644 --- a/include/net/net.h +++ b/include/net/net.h @@ -44,6 +44,7 @@ typedef struct NICConf { =20 typedef void (NetPoll)(NetClientState *, bool enable); typedef bool (NetCanReceive)(NetClientState *); +typedef void (NetPrepare)(NetClientState *); typedef int (NetLoad)(NetClientState *); typedef ssize_t (NetReceive)(NetClientState *, const uint8_t *, size_t); typedef ssize_t (NetReceiveIOV)(NetClientState *, const struct iovec *, in= t); @@ -72,6 +73,7 @@ typedef struct NetClientInfo { NetReceive *receive_raw; NetReceiveIOV *receive_iov; NetCanReceive *can_receive; + NetPrepare *prepare; NetLoad *load; NetCleanup *cleanup; LinkStatusChanged *link_status_changed; diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index a9bf72dcda..bbbb6d759b 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -244,6 +244,10 @@ static int vhost_net_start_one(struct vhost_net *net, struct vhost_vring_file file =3D { }; int r; =20 + if (net->nc->info->prepare) { + net->nc->info->prepare(net->nc); + } + r =3D vhost_dev_enable_notifiers(&net->dev, dev); if (r < 0) { goto fail_notifiers; --=20 2.31.1