From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A39ABC10F0E for ; Mon, 8 Apr 2019 01:27:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6F58620880 for ; Mon, 8 Apr 2019 01:27:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="EWdceTXE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726511AbfDHB1v (ORCPT ); Sun, 7 Apr 2019 21:27:51 -0400 Received: from mail-yb1-f195.google.com ([209.85.219.195]:32834 "EHLO mail-yb1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726412AbfDHB1u (ORCPT ); Sun, 7 Apr 2019 21:27:50 -0400 Received: by mail-yb1-f195.google.com with SMTP id i10so4569795ybk.0 for ; Sun, 07 Apr 2019 18:27:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=7644NDN/UtoV55YslGcHSTFcY4hV/XX8F3phjUCG6BI=; b=EWdceTXErKmsHF4tzV20HUylAD2VPtJXLvPKhruBjRvGmGV1nLD5WurnZd83oyZRAv hAl6SpBVpnloLMuI0spgNAHxyM4wfxTNF7GnTVjKqnVzsWc7gkxWK+/eQj0VffOlcFAX 1bdABNPVwsmGuqQtZFOH93EZ7R0iO/7Lk7uXBzzUL+Nb25mjVlm68/irk0sRi6WSTNMQ fi/gdlkO22zGlBfig26lZl1hl5RArJV7zNqnYYYunYevfzOqQAef1gXBb364UGkGgA3S x5WaR/MnE0hqRmPyNubcO4CynGd41msngqIAgJIJQVT77eZkv3ufcINXCMzRAkaxLuxP +EFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=7644NDN/UtoV55YslGcHSTFcY4hV/XX8F3phjUCG6BI=; b=BAp82fjpxnQux7dgNNyNlWQxley4Ilhj7Pj7DtZuMJvWnM9jq2GWKtF5B7l1fU4RxC xb71iBrL+NkM+NyRF/3Cmw+FV2Ms9dqzzen4kjuU8fUWlhIyEbw0tNDNBKcLRQ1cOK5/ MW0fy2K8VxI42RzPrfQh5RcQRFrdTvH5z+IZI5ucSQwh2P44i60sEX27Q0nGR4ETXeTi lJ0Bvk5TwjiZOd1oSbEq+qkAozeJLcVC9niqKjIRL0/vWS0D9NXYLzKlOca6EmlqPN8I ZDvAxgMC4Dt9qOwOhuV6D1cEBkNbEetYvI6nl65XUk4aUVUWzgW/+wbWdMp5U6qRoB9T nVsg== X-Gm-Message-State: APjAAAXk9XfWlDFM6Vk4OrCK4zWNRSbBLqpJ6Kd0aLRfHAKJZMTGk2Ii hdWBpCTIVSp5ceDLYlVRWEFnJn3Kb3TvMmWG X-Google-Smtp-Source: APXvYqxrKtxmsIkyAQxk6dN2tGa7A4aleY6Uhy5YYj4XxevBbnn9eyIwLKNGsImnIfSqyFl6NfR7gQ== X-Received: by 2002:a25:260c:: with SMTP id m12mr3949026ybm.300.1554686869046; Sun, 07 Apr 2019 18:27:49 -0700 (PDT) Received: from localhost.localdomain (li931-65.members.linode.com. [45.56.113.65]) by smtp.gmail.com with ESMTPSA id 190sm10494919ywd.62.2019.04.07.18.27.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 07 Apr 2019 18:27:48 -0700 (PDT) From: Leo Yan To: "kvm@vger.kernel.org" , "kvmarm@lists.cs.columbia.edu" , Will Deacon , Jean-Philippe Brucker , Marc Zyngier , Eric Auger , Robin Murphy Cc: Leo Yan Subject: [PATCH v4 1/3] vfio-pci: Release INTx's unmask eventfd properly Date: Mon, 8 Apr 2019 09:27:17 +0800 Message-Id: <20190408012719.16158-2-leo.yan@linaro.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190408012719.16158-1-leo.yan@linaro.org> References: <20190408012719.16158-1-leo.yan@linaro.org> Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org The PCI device INTx uses event fd 'unmask_fd' to signal the deassertion of the line from guest to host; but this eventfd isn't released properly when disable INTx. This patch firstly adds field 'unmask_fd' in struct vfio_pci_device for storing unmask eventfd and close it when disable INTx. Signed-off-by: Leo Yan Reviewed-by: Jean-Philippe Brucker --- include/kvm/vfio.h | 1 + vfio/pci.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/include/kvm/vfio.h b/include/kvm/vfio.h index 60e6c54..28223cf 100644 --- a/include/kvm/vfio.h +++ b/include/kvm/vfio.h @@ -74,6 +74,7 @@ struct vfio_pci_device { unsigned long irq_modes; int intx_fd; + int unmask_fd; unsigned int intx_gsi; struct vfio_pci_msi_common msi; struct vfio_pci_msi_common msix; diff --git a/vfio/pci.c b/vfio/pci.c index 03de3c1..5224fee 100644 --- a/vfio/pci.c +++ b/vfio/pci.c @@ -1008,6 +1008,7 @@ static void vfio_pci_disable_intx(struct kvm *kvm, struct vfio_device *vdev) irq__del_irqfd(kvm, gsi, pdev->intx_fd); close(pdev->intx_fd); + close(pdev->unmask_fd); } static int vfio_pci_enable_intx(struct kvm *kvm, struct vfio_device *vdev) @@ -1095,6 +1096,7 @@ static int vfio_pci_enable_intx(struct kvm *kvm, struct vfio_device *vdev) } pdev->intx_fd = trigger_fd; + pdev->unmask_fd = unmask_fd; /* Guest is going to ovewrite our irq_line... */ pdev->intx_gsi = gsi; -- 2.19.1