From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [PATCH kernel v4 4/6] iommu: Set PCI_BUS_FLAGS_MSI_REMAP on iommu driver initialization Date: Wed, 12 Jul 2017 15:04:41 +0800 Message-ID: <5965CA09.7050801@intel.com> References: <20170630052436.15212-1-aik@ozlabs.ru> <20170630052436.15212-5-aik@ozlabs.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, David Gibson , Alex Williamson , Bjorn Helgaas , Yongji Xie , Eric Auger , "Tian, Kevin" To: Alexey Kardashevskiy Return-path: Received: from mga06.intel.com ([134.134.136.31]:55396 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756497AbdGLHFk (ORCPT ); Wed, 12 Jul 2017 03:05:40 -0400 In-Reply-To: <20170630052436.15212-5-aik@ozlabs.ru> Sender: kvm-owner@vger.kernel.org List-ID: On 06/30/2017 01:24 PM, Alexey Kardashevskiy wrote: > From: Yongji Xie > > Some iommu drivers would be initialized after PCI device > enumeration. So PCI_BUS_FLAGS_MSI_REMAP would not be set > when probing PCI devices although IOMMU enables capability > of IRQ remapping. This patch tests this capability and > set the flag when iommu driver is initialized. > > Signed-off-by: Yongji Xie > Signed-off-by: Alexey Kardashevskiy > --- > drivers/iommu/iommu.c | 8 ++++++++ > drivers/pci/probe.c | 1 + > 2 files changed, 9 insertions(+) > > diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c > index cf7ca7e70777..0b5881ddca09 100644 > --- a/drivers/iommu/iommu.c > +++ b/drivers/iommu/iommu.c > @@ -1063,6 +1063,14 @@ static int add_iommu_group(struct device *dev, void *data) > const struct iommu_ops *ops = cb->ops; > int ret; > > + /* > + * Set PCI_BUS_FLAGS_MSI_REMAP for all PCI buses when IOMMU > + * have capability of IRQ remapping. > + */ > + if (dev_is_pci(dev) && ops->capable && > + ops->capable(IOMMU_CAP_INTR_REMAP)) > + to_pci_dev(dev)->bus->bus_flags |= PCI_BUS_FLAGS_MSI_REMAP; [+Kevin] Hi Alexey, Just a reminder, you might want to check the proposed patch to intel-iommu by Alex, at: https://patchwork.kernel.org/patch/9092511/ Without that being the prerequisite, this patch will probably introduce security issues on x86. -- Thanks, Jike > + > if (!ops->add_device) > return 0; > > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > index f2393b7d7ebf..14aac9df3d17 100644 > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include > #include "pci.h" > > #define CARDBUS_LATENCY_TIMER 176 /* secondary latency timer */ >