On Sat, May 02, 2015 at 06:24:22PM +0000, Woodhouse, David wrote: > On Sat, 2015-05-02 at 19:59 +0200, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > > This is a note to let you know that I've just added the patch titled > > > > iommu/vt-d: Allow RMRR on graphics devices too > > > > to the 3.19-stable tree which can be found at: > > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable > > -queue.git;a=summary > > > > The filename of the patch is: > > iommu-vt-d-allow-rmrr-on-graphics-devices-too.patch > > and it can be found in the queue-3.19 subdirectory. > > > > If you, or anyone else, feels it should not be added to the stable > > tree, > > please let <stable@xxxxxxxxxxxxxxx> know about it. > > Actually, please wait. You're going to want this too... > > > -- > Sent with Evolution's ActiveSync support. > > David Woodhouse Open Source Technology Centre > David.Woodhouse@xxxxxxxxx Intel Corporation > > Date: Mon, 27 Apr 2015 22:18:10 +0100 > From: David Woodhouse <David.Woodhouse@xxxxxxxxx> > To: "sl4ever@xxxxxxxxx" <sl4ever@xxxxxxxxx> > Cc: iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx > Subject: Re: Intel-iommu panic on kernel v4.1-rc1 > > On Mon, 2015-04-27 at 15:27 +0800, sl4ever@xxxxxxxxx wrote: > > commit 18436afdc11a00ac881990b454cfb2eae81d6003 iommu/vt-d: Allow > > RMRR on graphics devices too > > > > cause kernel panic with Z77+vt-d and kernel parameters: > > intel_iommu=igfx_off iommu=pt > > the panic path is: > > dev_prepare_static_identity_mapping() > > domain_add_dev_info() > > dmar_insert_dev_info() > > find_domain() > > info = dev->archdata.iommu; > > if (info) > > -> return info->domain; > > > > igfx_off cause <igfx@0:2.0>.archdata.iommu assigned to > > DUMMY_DEVICE_DOMAIN_INFO. > > Above patch cause iommu_should_identity_map() return 1, and attempt > > to setup identity mapping for igfx. > > Can you try this please? > > diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c > index 68d43be..2ffe589 100644 > --- a/drivers/iommu/intel-iommu.c > +++ b/drivers/iommu/intel-iommu.c > @@ -696,6 +696,11 @@ static inline struct context_entry *iommu_context_addr(struct intel_iommu *iommu > return &context[devfn]; > } > > +static int iommu_dummy(struct device *dev) > +{ > + return dev->archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO; > +} > + > static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn) > { > struct dmar_drhd_unit *drhd = NULL; > @@ -705,6 +710,9 @@ static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devf > u16 segment = 0; > int i; > > + if (iommu_dummy(dev)) > + return NULL; > + > if (dev_is_pci(dev)) { > pdev = to_pci_dev(dev); > segment = pci_domain_nr(pdev->bus); > @@ -2969,11 +2977,6 @@ static inline struct dmar_domain *get_valid_domain_for_dev(struct device *dev) > return __get_valid_domain_for_dev(dev); > } > > -static int iommu_dummy(struct device *dev) > -{ > - return dev->archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO; > -} > - > /* Check if the dev needs to go through non-identity map and unmap process.*/ > static int iommu_no_mapping(struct device *dev) > { > Did this patch ever end up in Linus's tree? I can't seem to find it... -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html