From nobody Mon Feb 9 15:30:20 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=1660930495; cv=none; d=zohomail.com; s=zohoarc; b=NBNcOpsBhCftH9YyoZx9iVe0Wz1JVgFEW2GDiE0a3h/ZPI35wUQs8b1ViVplZBWhRSmUvegeWJwueRxgBw8xQ1t8WUdhYqNZYE6/a8cN4tGgV5QP00HV0Y6AziWCgA0+66hbHYliS/HuvhrMKZz6eVY4WAAYnwazt/2h/MOH+FI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660930495; 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=FRxq8ciCEMSnJTweqk0QLYXUY8mWdYiCDr7lk4zv7tU=; b=adHbk3BU9W94w4SSQ4WuwSpTJ7pPRQRfc9aNsbmoOU8Ni0rV5WgqYg3nbnjBhsb73JsFc61JuS0nblPsSeziHuMXW9KThGljurjkdsY2Sti3TCweHA8hqh8TUBV9U4MLLF/+wvCowc4rS+sQYddW9eTtXUCXcJlb1pSvpvge348= 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 16609304953291006.8363695092961; Fri, 19 Aug 2022 10:34:55 -0700 (PDT) Received: from localhost ([::1]:42596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oP5tW-0007g7-4V for importer@patchew.org; Fri, 19 Aug 2022 13:34:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:54388) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oP5N3-00083G-9b for qemu-devel@nongnu.org; Fri, 19 Aug 2022 13:01:24 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:29977) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oP5Mz-0001uN-AH for qemu-devel@nongnu.org; Fri, 19 Aug 2022 13:01:19 -0400 Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-260-IEiGLLYqPN2_CmEI_tGetw-1; Fri, 19 Aug 2022 13:01:14 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1E575101A589; Fri, 19 Aug 2022 17:01:14 +0000 (UTC) Received: from eperezma.remote.csb (unknown [10.39.194.7]) by smtp.corp.redhat.com (Postfix) with ESMTP id C4E2640D2827; Fri, 19 Aug 2022 17:01:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1660928476; 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=FRxq8ciCEMSnJTweqk0QLYXUY8mWdYiCDr7lk4zv7tU=; b=NUhLhlPM+N5c7hO275IVSq3dHm2w1Bysfz04mdzzA45Nt8B0gVY6m1L+UNAyT9XW2cdmKW 5fZ5t9ToZ8WvCAUSpNF5g8Mhr+kRJ1etCjNbihtkiQNRs0nX9p5zXLuSedivim1MXSJKI5 /Bvbf3sVtkVJicg3gAGbZ7TYER0cQdE= X-MC-Unique: IEiGLLYqPN2_CmEI_tGetw-1 From: =?UTF-8?q?Eugenio=20P=C3=A9rez?= To: qemu-devel@nongnu.org Cc: Harpreet Singh Anand , Laurent Vivier , Cornelia Huck , Jason Wang , "Michael S. Tsirkin" , Markus Armbruster , Gautam Dawar , Stefan Hajnoczi , "Gonglei (Arei)" , Eli Cohen , Zhu Lingshan , Stefano Garzarella , Eric Blake , Liuxiangdong , Cindy Lu , Parav Pandit , Paolo Bonzini Subject: [PATCH v9 05/12] vhost_net: Add NetClientInfo start callback Date: Fri, 19 Aug 2022 19:00:41 +0200 Message-Id: <20220819170048.3593487-6-eperezma@redhat.com> In-Reply-To: <20220819170048.3593487-1-eperezma@redhat.com> References: <20220819170048.3593487-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.84 on 10.11.54.2 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.133.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, RCVD_IN_DNSWL_NONE=-0.0001, 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: 1660930497663100001 This is used by the backend to perform actions before the device is started. In particular, vdpa net use it to map CVQ buffers to the device, so it can send control commands using them. Signed-off-by: Eugenio P=C3=A9rez Acked-by: Jason Wang --- v9: Rename also in patch message v8: Rename NetClientInfo prepare callback to start, so it aligns with future "stop" --- include/net/net.h | 2 ++ hw/net/vhost_net.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/include/net/net.h b/include/net/net.h index 523136c7ac..ad9e80083a 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 int (NetStart)(NetClientState *); typedef ssize_t (NetReceive)(NetClientState *, const uint8_t *, size_t); typedef ssize_t (NetReceiveIOV)(NetClientState *, const struct iovec *, in= t); typedef void (NetCleanup) (NetClientState *); @@ -71,6 +72,7 @@ typedef struct NetClientInfo { NetReceive *receive_raw; NetReceiveIOV *receive_iov; NetCanReceive *can_receive; + NetStart *start; NetCleanup *cleanup; LinkStatusChanged *link_status_changed; QueryRxFilter *query_rx_filter; diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index ccac5b7a64..2e0baeba26 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -244,6 +244,13 @@ static int vhost_net_start_one(struct vhost_net *net, struct vhost_vring_file file =3D { }; int r; =20 + if (net->nc->info->start) { + r =3D net->nc->info->start(net->nc); + if (r < 0) { + return r; + } + } + r =3D vhost_dev_enable_notifiers(&net->dev, dev); if (r < 0) { goto fail_notifiers; --=20 2.31.1