Received: by 2002:a05:7412:b995:b0:f9:9502:5bb8 with SMTP id it21csp7784786rdb; Thu, 4 Jan 2024 07:38:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IHkqLrTYBr+tXy+TgGtci5TiPdY9tLAMmct9NXoL1Rknwv1HpPtlfqSsHIOI0ZJldA78d8V X-Received: by 2002:a17:906:138f:b0:a28:8758:d1a5 with SMTP id f15-20020a170906138f00b00a288758d1a5mr452523ejc.89.1704382736478; Thu, 04 Jan 2024 07:38:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1704382736; cv=none; d=google.com; s=arc-20160816; b=g3ZQpsvZsWzLAT+Q6XsmaS24caUnKWMoC0ky38Uyj3LHm66VDtaxXZPpWv658uWRKF M2AHpiB2ZYcLaWaaEojKd6Ny+qf5da4SHY2rxhWcx8sd493mDJpp6Ak/b8BAVsQGYXSU LFACnGLFYV7PP+b+JXKizQI8l7lB+f5J7q7BlC9r/ZLfLReNdfbch6BLGBJH7mDKxLwZ LAH6Vgp+tjtQ7xqKICQcwcbYq+XiS7Etk1ZLHcebfhhD8GBoUgyVMp/qUa3g954VEgUE LipcUkMMDspWt84N7Saj/DZSerGLNkCuDXKPKPx0AJN3rVEV1uP63LQPxeCdoU/v/smF YBTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=jY+Y8f7msSBOyPpnVlDqciKOzAOrzUzlYnkERV/e6aE=; fh=+YAWGNokPfoHg1oXKIXy6skWlEnaUutNlHrvMBZ3/ec=; b=kkKONmwhqxWt6DcJM6P9nhizE+LXJb5k5Hm6dizqDyzts5n5IlXLVBpeVaRGq72Qhl DALwNikSZHkaUYdaRKOH88uMl3it9YAqJDyZWdWRenohOGLLj59PkW1/MxQUGZQVG20W xsZTg7QGYp5vMC9Se0Tws79TBlnp2IO3oHP3ZVH6lGfvrIZWF72ES1CJd6FLMnuVyQrI cqY95WU0daL5j8ZgOG3TumfGzLZs2TO29ogs8+E2eaqQ6zG7LKltkx0N3F/YbIe0ttaT jmk2TZbOAAz7eIANaPWIx7ZwKcuT5BNaayhSl2o360dH9MKbZV1V44B9VX9GK84YQlch UqcA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=jWoGjQtj; spf=pass (google.com: domain of linux-kernel+bounces-16863-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-16863-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id jw18-20020a170906e95200b00a26f5e272ebsi7967074ejb.865.2024.01.04.07.38.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 04 Jan 2024 07:38:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-16863-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=jWoGjQtj; spf=pass (google.com: domain of linux-kernel+bounces-16863-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-16863-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 3C4171F26654 for ; Thu, 4 Jan 2024 15:38:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 37ACD24B47; Thu, 4 Jan 2024 15:38:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="jWoGjQtj" X-Original-To: linux-kernel@vger.kernel.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F1EBD249E9 for ; Thu, 4 Jan 2024 15:38:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1704382687; 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=jY+Y8f7msSBOyPpnVlDqciKOzAOrzUzlYnkERV/e6aE=; b=jWoGjQtj6j90C2x0XSpAyP5NmROuCOSIFHR9Lmwmy95wME4bOX5Rrp8deSC6b73VS+/cyv hNq8juj2rT/6xb6RvhhhTdZH/w38CvZ0VCoHr5ZmUWL9gbRKOEGVpAq7HdxAy+Ot4vhsPl m5VPgLI6wGLl5YO/eDyHdr0VIGsUQl8= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-515-0ZYvtpH_MeCHbJRHQRxZqg-1; Thu, 04 Jan 2024 10:38:03 -0500 X-MC-Unique: 0ZYvtpH_MeCHbJRHQRxZqg-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 1302E862F78; Thu, 4 Jan 2024 15:38:03 +0000 (UTC) Received: from max-p1.redhat.com (unknown [10.39.208.29]) by smtp.corp.redhat.com (Postfix) with ESMTP id 06558C15E6A; Thu, 4 Jan 2024 15:38:00 +0000 (UTC) From: Maxime Coquelin To: mst@redhat.com, jasowang@redhat.com, xuanzhuo@linux.alibaba.com, xieyongji@bytedance.com, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, david.marchand@redhat.com, lulu@redhat.com Cc: Maxime Coquelin Subject: [PATCH v6 2/3] vduse: Temporarily fail if control queue features requested Date: Thu, 4 Jan 2024 16:37:52 +0100 Message-ID: <20240104153753.2931026-3-maxime.coquelin@redhat.com> In-Reply-To: <20240104153753.2931026-1-maxime.coquelin@redhat.com> References: <20240104153753.2931026-1-maxime.coquelin@redhat.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 Virtio-net driver control queue implementation is not safe when used with VDUSE. If the VDUSE application does not reply to control queue messages, it currently ends up hanging the kernel thread sending this command. Some work is on-going to make the control queue implementation robust with VDUSE. Until it is completed, let's fail features check if any control-queue related feature is requested. Signed-off-by: Maxime Coquelin --- drivers/vdpa/vdpa_user/vduse_dev.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c index 0486ff672408..94f54ea2eb06 100644 --- a/drivers/vdpa/vdpa_user/vduse_dev.c +++ b/drivers/vdpa/vdpa_user/vduse_dev.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include "iova_domain.h" @@ -46,6 +47,15 @@ #define IRQ_UNBOUND -1 +#define VDUSE_NET_INVALID_FEATURES_MASK \ + (BIT_ULL(VIRTIO_NET_F_CTRL_VQ) | \ + BIT_ULL(VIRTIO_NET_F_CTRL_RX) | \ + BIT_ULL(VIRTIO_NET_F_CTRL_VLAN) | \ + BIT_ULL(VIRTIO_NET_F_GUEST_ANNOUNCE) | \ + BIT_ULL(VIRTIO_NET_F_MQ) | \ + BIT_ULL(VIRTIO_NET_F_CTRL_MAC_ADDR) | \ + BIT_ULL(VIRTIO_NET_F_RSS)) + struct vduse_virtqueue { u16 index; u16 num_max; @@ -1680,6 +1690,9 @@ static bool features_is_valid(struct vduse_dev_config *config) if ((config->device_id == VIRTIO_ID_BLOCK) && (config->features & (1ULL << VIRTIO_BLK_F_CONFIG_WCE))) return false; + else if ((config->device_id == VIRTIO_ID_NET) && + (config->features & VDUSE_NET_INVALID_FEATURES_MASK)) + return false; return true; } -- 2.43.0