From nobody Tue Apr 8 17:39:38 2025 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=1621011249; cv=none; d=zohomail.com; s=zohoarc; b=NWm89kfSXFLpNuG1fSGGmfRBsov/SILfaJ8gcbpd+tszFnGHo1VdTSqz04MKK3IT/PolKdj5kmy59ns+iw0Ht2INWB0p/Oq8dw3E97LHeir6+rQiCkZmLBAyLFJy8Q4EhJU/F06Qh5ztVS5faNIlmArBT7WZsGQphC0KJmJAlu0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621011249; 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=02lubwKbg7bbNlJ01WPRa9a/4dppcXxCL+uh2kocO0c=; b=eYphJKlbVYCnjYrztvABnARr+AMCwznSQoujXq9OwHnTUCFyz3dlLPntKwNwo4hfsxzbuKVWaT+ulR0VzHv+RjSk//cIbhveq6tMOVVW0MfcqVY1+Am1+U7nm9lB4G2MqkBD53iU7H2750ln74rMU4JY+n7mr/vk5+Ev2KJeu2E= 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) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1621011249740876.9207413620261; Fri, 14 May 2021 09:54:09 -0700 (PDT) Received: from localhost ([::1]:50966 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lhb4i-0004J2-Nc for importer@patchew.org; Fri, 14 May 2021 12:54:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55074) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lhajt-0000cM-Cx for qemu-devel@nongnu.org; Fri, 14 May 2021 12:32:37 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:50452) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lhajd-0001G1-Rg for qemu-devel@nongnu.org; Fri, 14 May 2021 12:32:37 -0400 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-555-zai3CFBBNs-YtBzTjf_cKA-1; Fri, 14 May 2021 12:32:12 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8534280ED8B; Fri, 14 May 2021 16:32:11 +0000 (UTC) Received: from merkur.redhat.com (ovpn-114-116.ams2.redhat.com [10.36.114.116]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9394519D9B; Fri, 14 May 2021 16:32:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1621009935; 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=02lubwKbg7bbNlJ01WPRa9a/4dppcXxCL+uh2kocO0c=; b=Y9JOyKNJr0p9F6UvFzmVWXQhiKbzXlM0W6hFeyZYmKawbQrCF15OqNALYHzrloHhKXVZXd 5sKJ2pZJst24f4/q17RsNBDTg0WLT8qg2ZDbtI84BxzkLIbtLyi4qRjugCvZpO0h5wzWM1 THprwmKGn8aeC6b1qvX+/3nSozL8GIA= X-MC-Unique: zai3CFBBNs-YtBzTjf_cKA-1 From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PULL 13/14] virtio: Fail if iommu_platform is requested, but unsupported Date: Fri, 14 May 2021 18:31:23 +0200 Message-Id: <20210514163124.251741-14-kwolf@redhat.com> In-Reply-To: <20210514163124.251741-1-kwolf@redhat.com> References: <20210514163124.251741-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=kwolf@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable 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=216.205.24.124; envelope-from=kwolf@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.699, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, peter.maydell@linaro.org, qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Commit 2943b53f6 (' virtio: force VIRTIO_F_IOMMU_PLATFORM') made sure that vhost can't just reject VIRTIO_F_IOMMU_PLATFORM when it was requested. However, just adding it back to the negotiated flags isn't right either because it promises support to the guest that the device actually doesn't support. One example of a vhost-user device that doesn't have support for the flag is the vhost-user-blk export of QEMU. Instead of successfully creating a device that doesn't work, just fail to plug the device when it doesn't support the feature, but it was requested. This results in much clearer error messages. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=3D1935019 Signed-off-by: Kevin Wolf Reviewed-by: Raphael Norwitz Message-Id: <20210429171316.162022-6-kwolf@redhat.com> Reviewed-by: Michael S. Tsirkin Signed-off-by: Kevin Wolf --- hw/virtio/virtio-bus.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/virtio/virtio-bus.c b/hw/virtio/virtio-bus.c index d6332d45c3..859978d248 100644 --- a/hw/virtio/virtio-bus.c +++ b/hw/virtio/virtio-bus.c @@ -69,6 +69,11 @@ void virtio_bus_device_plugged(VirtIODevice *vdev, Error= **errp) return; } =20 + if (has_iommu && !virtio_host_has_feature(vdev, VIRTIO_F_IOMMU_PLATFOR= M)) { + error_setg(errp, "iommu_platform=3Dtrue is not supported by the de= vice"); + return; + } + if (klass->device_plugged !=3D NULL) { klass->device_plugged(qbus->parent, &local_err); } --=20 2.30.2