Received: by 2002:ab2:3319:0:b0:1ef:7a0f:c32d with SMTP id i25csp888502lqc; Fri, 8 Mar 2024 15:10:59 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCUL4n8bGsc4LLAN2OJCmokYVf4fnir+VNjMhtqY5u0x7OEhmpBkGXIcCqTH3jAW30tMzOJplkUWo2MM7OqrZz8v4fHHbYJaTVUr9bSPkg== X-Google-Smtp-Source: AGHT+IGYjW9jObHqXYEN09c5rXYFmjIzw4FUEESHsq5+AmCJY9QswZleqQgl++Kap6fWaFW30gLh X-Received: by 2002:a05:6a21:3403:b0:1a1:763e:87ea with SMTP id yn3-20020a056a21340300b001a1763e87eamr126421pzb.43.1709939459245; Fri, 08 Mar 2024 15:10:59 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709939459; cv=pass; d=google.com; s=arc-20160816; b=Z10PfBfCMioS3GvzYDyajDFD+WYV4WE5E+ufXUG1J4VAK8stwOdjtB+TKi+JmrN3AG 5ZU+LqCcm4FJsaB5cR1N/yy6sjQnqttdMWRrtpCC57rMnO8JypOHEgvTZYAYhFNIQ6l0 C7J2mIASsp+Jp+cFUG+rSeh2pw4La7wjepdFqwSTrKdFH8Gu0XkJpo4F3hE7Mim0JhxG RNiYfoxR12EsU29xuA2fPf1fgeNYEYCxp2OlhZsv8tFh7zDMWxq7cnEknLs1nS1rCR99 ulYa7ZFkTkQoUfh5uPozemDyRd17skO7xak9Q+AMeJ4Xs3A6FNOQLx6IBoqlQnHMDCd8 cRoA== ARC-Message-Signature: i=2; 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=N8jD+utIUIWsnb+QHB/Vd0dznqOHt9b4raUNDQiHScE=; fh=mgA0KnKCc5lsXB2qg/bzgG/9pROS9dCnrlBAhIzkJAs=; b=h9xUOqkPkXZsL1jAO6jH4Z5TSkkXIXvFy4PDC9EbzLjIXGbhfTe2AYMS04s8l9T7eg uUwjIPQPITO3Q3qYxgPZnqVHHpP4/2OUcin2Lxpmsl/st5OzXToE2fDIS1W5jDv6PJr4 NmlZsfC8dZDyTpCIPL3apyW4fNlZBvPjkFWCXkMjIU0V3c1+wxG9AXL4B89fWfe/1I94 Kg7u4amuutq49sC/a1bcMTv6zTmCCeDrAjWqPgzZM73VMrTNH/nKSLKpQX7HhooXxhKO re5O018a5/GMMrfimZ1Dr2S9AQiS9CCOEi8UETyRdKQvnEtjhfCq1Yd28zpSqri3nWi4 0pEw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Zgm4DC7h; arc=pass (i=1 spf=pass spfdomain=redhat.com dkim=pass dkdomain=redhat.com dmarc=pass fromdomain=redhat.com); spf=pass (google.com: domain of linux-kernel+bounces-97683-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-97683-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [147.75.48.161]) by mx.google.com with ESMTPS id fw6-20020a17090b128600b0029b7f1ebcf5si478753pjb.33.2024.03.08.15.10.58 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Mar 2024 15:10:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-97683-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) client-ip=147.75.48.161; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Zgm4DC7h; arc=pass (i=1 spf=pass spfdomain=redhat.com dkim=pass dkdomain=redhat.com dmarc=pass fromdomain=redhat.com); spf=pass (google.com: domain of linux-kernel+bounces-97683-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.48.161 as permitted sender) smtp.mailfrom="linux-kernel+bounces-97683-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 sy.mirrors.kernel.org (Postfix) with ESMTPS id 987A0B21D6D for ; Fri, 8 Mar 2024 23:09:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 713BE605D5; Fri, 8 Mar 2024 23:06:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="Zgm4DC7h" 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 1C9BC604C2 for ; Fri, 8 Mar 2024 23:06:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.129.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709939182; cv=none; b=uidnKO3T8OgzrmiKShJD5qDlvHa0yq6tEl+cSDam+wM6tUMjv8oOnq/AkIjkdoBCF5cTFoLqHDX17L8xGh3fyYZjcfCYD2egmz6olH6hJJUOmBzQIAjAd3YIa7qIuRT6jpdZIlES8LOFbBq00r3LPF9qtrs9bEAPuOMCzsZ+lVY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709939182; c=relaxed/simple; bh=xI6bQYs7D7L/1GayJOzEXbmk72qf1CYrvd8eI1QF5Gs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ZMShXaX1Ai8cei8mWO9lDm2BB1WUHp4FDxJokUxM9ntkraHwAxUuExNkGHvGL87w12cl9lehkhXNAqJ+h/zuCqYAWWAzkyvDoOb5mbCSm4HJDIuR2XUDaKgCzeXp3DF1wVL7ryJ2+HSl4WkUIPmAci1dRrsiT5ZDG8KKHzbEmcM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=Zgm4DC7h; arc=none smtp.client-ip=170.10.129.124 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=1709939180; 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=N8jD+utIUIWsnb+QHB/Vd0dznqOHt9b4raUNDQiHScE=; b=Zgm4DC7haT9VDSZJG2i+qe6pEC2w8+lACYHPcAEcfihNjvsM9SFX0taygmOy6z9bGO+3eU KDHw4FWDVAzjMiRjAtCb7PP+C+KwSIUxKghZk+RMRhbFaSzKEMZTPh5CFzAehNGNnM1VUi APGWms+8TfCXyMHNVD5ZGPzwIJS37T8= 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-475-YgeSMQxMPHK209lCwn6AMQ-1; Fri, 08 Mar 2024 18:06:14 -0500 X-MC-Unique: YgeSMQxMPHK209lCwn6AMQ-1 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) (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 66973185A781; Fri, 8 Mar 2024 23:06:14 +0000 (UTC) Received: from omen.home.shazbot.org (unknown [10.22.8.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5C8CD47CB; Fri, 8 Mar 2024 23:06:13 +0000 (UTC) From: Alex Williamson To: alex.williamson@redhat.com Cc: kvm@vger.kernel.org, eric.auger@redhat.com, clg@redhat.com, reinette.chatre@intel.com, linux-kernel@vger.kernel.org, kevin.tian@intel.com, diana.craciun@oss.nxp.com, stable@vger.kernel.org Subject: [PATCH v2 7/7] vfio/fsl-mc: Block calling interrupt handler without trigger Date: Fri, 8 Mar 2024 16:05:28 -0700 Message-ID: <20240308230557.805580-8-alex.williamson@redhat.com> In-Reply-To: <20240308230557.805580-1-alex.williamson@redhat.com> References: <20240308230557.805580-1-alex.williamson@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.1 The eventfd_ctx trigger pointer of the vfio_fsl_mc_irq object is initially NULL and may become NULL if the user sets the trigger eventfd to -1. The interrupt handler itself is guaranteed that trigger is always valid between request_irq() and free_irq(), but the loopback testing mechanisms to invoke the handler function need to test the trigger. The triggering and setting ioctl paths both make use of igate and are therefore mutually exclusive. The vfio-fsl-mc driver does not make use of irqfds, nor does it support any sort of masking operations, therefore unlike vfio-pci and vfio-platform, the flow can remain essentially unchanged. Cc: Diana Craciun Cc: stable@vger.kernel.org Fixes: cc0ee20bd969 ("vfio/fsl-mc: trigger an interrupt via eventfd") Signed-off-by: Alex Williamson --- drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c index d62fbfff20b8..82b2afa9b7e3 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c @@ -141,13 +141,14 @@ static int vfio_fsl_mc_set_irq_trigger(struct vfio_fsl_mc_device *vdev, irq = &vdev->mc_irqs[index]; if (flags & VFIO_IRQ_SET_DATA_NONE) { - vfio_fsl_mc_irq_handler(hwirq, irq); + if (irq->trigger) + eventfd_signal(irq->trigger); } else if (flags & VFIO_IRQ_SET_DATA_BOOL) { u8 trigger = *(u8 *)data; - if (trigger) - vfio_fsl_mc_irq_handler(hwirq, irq); + if (trigger && irq->trigger) + eventfd_signal(irq->trigger); } return 0; -- 2.44.0