From nobody Tue Apr 23 07:16:13 2024 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=1659548315; cv=none; d=zohomail.com; s=zohoarc; b=H58t4QXto2YJuxgXwobLU54i+VWuyYLOXNONUzc3YWYkGLAXwIThU1yXi6vUgtn05Bd0K7+FUWIO4yF5hEBtRXk9/gtR/3rEPC5e7jrJh9RdOsdS/N8UtsC8JaU/4bR03PzSMxLyHVnRcV96CcHhH4JMvrZ0KK6tHO9pRBM7gtc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659548315; h=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=bq04tONNl/ykWgpL1Uyrw51luSKdbIbA68o5zFH45Gg=; b=dIiTn3p+P4hOuezpvSqjuAgqQlL0IJFGpuR49QzDWhdG+KQPXlPsMOvN40Y+l31j8dc/mkZ5XSYauQRwHOV5UlIUEmHTzX41b7vLacohmIBTeyxl2VUShLg8Kn4QDY1kcrR5ama6hMOo7tKNwfwN4MN8mV+86smS2m/qw+tdED4= 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 1659548315464404.3837648364538; Wed, 3 Aug 2022 10:38:35 -0700 (PDT) Received: from localhost ([::1]:60690 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oJIKI-00058i-ET for importer@patchew.org; Wed, 03 Aug 2022 13:38:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58294) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJII8-0001tX-R8 for qemu-devel@nongnu.org; Wed, 03 Aug 2022 13:36:20 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:26439) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJII4-0000Fd-4q for qemu-devel@nongnu.org; Wed, 03 Aug 2022 13:36:20 -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-511-TW_oDHkTP4KittC_JcuiIg-1; Wed, 03 Aug 2022 13:36:11 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0D25C811766; Wed, 3 Aug 2022 17:36:11 +0000 (UTC) Received: from localhost (unknown [10.39.193.188]) by smtp.corp.redhat.com (Postfix) with ESMTP id 66D08403164; Wed, 3 Aug 2022 17:36:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659548175; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bq04tONNl/ykWgpL1Uyrw51luSKdbIbA68o5zFH45Gg=; b=SQTJ/8qVYxH2wFQvmRtnAjWtMS4WIsKXbTYvEIjaMCS6774i/phS2aUQAWaJE/1gQizHrj WJGhc/9HSRjKHJgXyvs+FsqiXKpoxhgcScyTdHYhZC1P90p1w88DiuZ49zKk+Cku5QSDvl Lag/5vu9WB/CYbKFwTusy9CaVpBXPrw= X-MC-Unique: TW_oDHkTP4KittC_JcuiIg-1 From: Stefan Hajnoczi To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, Kevin Wolf , Fam Zheng , Amit Shah , Laurent Vivier , Hanna Reitz , "Michael S . Tsirkin" , Stefan Hajnoczi , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Jason Wang , Paolo Bonzini , David Hildenbrand , Cornelia Huck Subject: [PATCH v2 1/2] virtio: document vdc->get_features() callback Date: Wed, 3 Aug 2022 13:36:05 -0400 Message-Id: <20220803173606.965926-2-stefanha@redhat.com> In-Reply-To: <20220803173606.965926-1-stefanha@redhat.com> References: <20220803173606.965926-1-stefanha@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 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=stefanha@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -28 X-Spam_score: -2.9 X-Spam_bar: -- X-Spam_report: (-2.9 / 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_LOW=-0.7, SPF_HELO_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01, T_SPF_TEMPERROR=0.01 autolearn=unavailable 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: 1659548316183100001 Content-Type: text/plain; charset="utf-8" Suggested-by: Cornelia Huck Signed-off-by: Stefan Hajnoczi --- include/hw/virtio/virtio.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index db1c0ddf6b..8d27fe1824 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -120,9 +120,29 @@ struct VirtioDeviceClass { /* This is what a VirtioDevice must implement */ DeviceRealize realize; DeviceUnrealize unrealize; + + /** + * get_features: + * @vdev: the VirtIODevice + * @requested_features: existing device feature bits from + * vdev->host_features + * @errp: pointer to error object + * + * Get the device feature bits. + * + * The ->get_features() function typically sets always-on device featu= re + * bits as well as conditional feature bits that require some logic to + * compute. + * + * Device feature bits can also be set in vdev->host_features before t= his + * function is called using DEFINE_PROP_BIT64() qdev properties. + * + * Returns: the final device feature bits to store in vdev->host_featu= res. + */ uint64_t (*get_features)(VirtIODevice *vdev, uint64_t requested_features, Error **errp); + uint64_t (*bad_features)(VirtIODevice *vdev); void (*set_features)(VirtIODevice *vdev, uint64_t val); int (*validate_features)(VirtIODevice *vdev); --=20 2.37.1 From nobody Tue Apr 23 07:16:13 2024 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=1659548626; cv=none; d=zohomail.com; s=zohoarc; b=kkbwgUUkv1sVNm1oZYb5Z5pWIAjcaGZ2Dp8krrVm1ENszmwh0oxmpUnyjALy4R3I6JDAKf2Po3srJWLpZHLd9PXdHlfyqJai5P0+W7Zhp52bka8Ii8M2/Lm6cp2YS9awp2U5YbxmlcVhXukSlns9n4zKLz4KXk5Lz8IaMEeF06g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1659548626; h=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=fmAuQVeTJipfLwNrimjnWs4amQCSR1ELmwPJMslh6jA=; b=AkRN4WpmLRht323Brn1eVX8Y3Gviuq5FR47N/eXiL7X38ZQh4mx+F6aTFqHf5/teSTuIkVY+9da4RycUcy63+1tN2xUBdl6IXWU9ZuHi0RCp5YDmxvJ+AL82ppW6dvcX2xBcSBDAuYfyXbVk0hYRd1O8pxgTBiQe6bFUFvPy3wU= 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 165954862676380.71667579696395; Wed, 3 Aug 2022 10:43:46 -0700 (PDT) Received: from localhost ([::1]:38408 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oJIPJ-00015e-3T for importer@patchew.org; Wed, 03 Aug 2022 13:43:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58274) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJII7-0001nS-Bu for qemu-devel@nongnu.org; Wed, 03 Aug 2022 13:36:19 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:39863) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oJII5-0000Fp-GD for qemu-devel@nongnu.org; Wed, 03 Aug 2022 13:36: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-626-uHLE4unRMpGLL5-AhexbZQ-1; Wed, 03 Aug 2022 13:36:13 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 964DC100BADC; Wed, 3 Aug 2022 17:36:13 +0000 (UTC) Received: from localhost (unknown [10.39.193.188]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0BB6290A11; Wed, 3 Aug 2022 17:36:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1659548176; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=fmAuQVeTJipfLwNrimjnWs4amQCSR1ELmwPJMslh6jA=; b=irMKQheXzXJJED21yajkV8zNNJwUkeffCjJZoUjWrRNYpKg7ybe/VOQturcgGkOcfEHL9Y KaaeBngBtRzfEAxEISOmTE0tuGiNypjgX1H/jlnhuo5EX/Zwlyb/8Kg/xGUNAKzad194bJ pkXtlWuSw1pNnVws9xm1/alcrB74Uqo= X-MC-Unique: uHLE4unRMpGLL5-AhexbZQ-1 From: Stefan Hajnoczi To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, Kevin Wolf , Fam Zheng , Amit Shah , Laurent Vivier , Hanna Reitz , "Michael S . Tsirkin" , Stefan Hajnoczi , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Jason Wang , Paolo Bonzini , David Hildenbrand , Cornelia Huck Subject: [PATCH v2 2/2] virtio: remove unnecessary host_features in ->get_features() Date: Wed, 3 Aug 2022 13:36:06 -0400 Message-Id: <20220803173606.965926-3-stefanha@redhat.com> In-Reply-To: <20220803173606.965926-1-stefanha@redhat.com> References: <20220803173606.965926-1-stefanha@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 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=stefanha@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: 1659548628627100001 Content-Type: text/plain; charset="utf-8" Since at least commit 6b8f1020540c27246277377aa2c3331ad2bfb160 ("virtio: move host_features") the ->get_features() function has been called with host_features as an argument. Some devices manually add host_features in ->get_features() although the features argument already contains host_features. Make all devices consistent by dropping the unnecessary code. Cc: Cornelia Huck Signed-off-by: Stefan Hajnoczi Reviewed-by: Cornelia Huck --- hw/block/virtio-blk.c | 3 --- hw/char/virtio-serial-bus.c | 1 - hw/net/virtio-net.c | 3 --- hw/scsi/vhost-scsi-common.c | 3 --- hw/scsi/virtio-scsi.c | 4 ---- hw/virtio/virtio-balloon.c | 2 -- 6 files changed, 16 deletions(-) diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index e9ba752f6b..429aedcf2b 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -996,9 +996,6 @@ static uint64_t virtio_blk_get_features(VirtIODevice *v= dev, uint64_t features, { VirtIOBlock *s =3D VIRTIO_BLK(vdev); =20 - /* Firstly sync all virtio-blk possible supported features */ - features |=3D s->host_features; - virtio_add_feature(&features, VIRTIO_BLK_F_SEG_MAX); virtio_add_feature(&features, VIRTIO_BLK_F_GEOMETRY); virtio_add_feature(&features, VIRTIO_BLK_F_TOPOLOGY); diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c index 7d4601cb5d..1414fb85ae 100644 --- a/hw/char/virtio-serial-bus.c +++ b/hw/char/virtio-serial-bus.c @@ -557,7 +557,6 @@ static uint64_t get_features(VirtIODevice *vdev, uint64= _t features, =20 vser =3D VIRTIO_SERIAL(vdev); =20 - features |=3D vser->host_features; if (vser->bus.max_nr_ports > 1) { virtio_add_feature(&features, VIRTIO_CONSOLE_F_MULTIPORT); } diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index dd0d056fde..8ecdc1cd83 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -715,9 +715,6 @@ static uint64_t virtio_net_get_features(VirtIODevice *v= dev, uint64_t features, VirtIONet *n =3D VIRTIO_NET(vdev); NetClientState *nc =3D qemu_get_queue(n->nic); =20 - /* Firstly sync all virtio-net possible supported features */ - features |=3D n->host_features; - virtio_add_feature(&features, VIRTIO_NET_F_MAC); =20 if (!peer_has_vnet_hdr(n)) { diff --git a/hw/scsi/vhost-scsi-common.c b/hw/scsi/vhost-scsi-common.c index 767f827e55..8b26f90aa1 100644 --- a/hw/scsi/vhost-scsi-common.c +++ b/hw/scsi/vhost-scsi-common.c @@ -124,9 +124,6 @@ uint64_t vhost_scsi_common_get_features(VirtIODevice *v= dev, uint64_t features, { VHostSCSICommon *vsc =3D VHOST_SCSI_COMMON(vdev); =20 - /* Turn on predefined features supported by this device */ - features |=3D vsc->host_features; - return vhost_get_features(&vsc->dev, vsc->feature_bits, features); } =20 diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index 4141dddd51..f754611dfe 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -816,10 +816,6 @@ static uint64_t virtio_scsi_get_features(VirtIODevice = *vdev, uint64_t requested_features, Error **errp) { - VirtIOSCSI *s =3D VIRTIO_SCSI(vdev); - - /* Firstly sync all virtio-scsi possible supported features */ - requested_features |=3D s->host_features; return requested_features; } =20 diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c index 73ac5eb675..0e9ca71b15 100644 --- a/hw/virtio/virtio-balloon.c +++ b/hw/virtio/virtio-balloon.c @@ -796,8 +796,6 @@ static void virtio_balloon_set_config(VirtIODevice *vde= v, static uint64_t virtio_balloon_get_features(VirtIODevice *vdev, uint64_t f, Error **errp) { - VirtIOBalloon *dev =3D VIRTIO_BALLOON(vdev); - f |=3D dev->host_features; virtio_add_feature(&f, VIRTIO_BALLOON_F_STATS_VQ); =20 return f; --=20 2.37.1