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
--- Begin Message ---
- Subject: Re: Intel-iommu panic on kernel v4.1-rc1
- From: David Woodhouse <David.Woodhouse@xxxxxxxxx>
- Date: Mon, 27 Apr 2015 22:18:10 +0100
- Cc: iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx
- In-reply-to: <2015042715271977151914@gmail.com>
- Organization: Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ
- References: <2015042715271977151914@gmail.com>
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) { -- David Woodhouse Open Source Technology Centre David.Woodhouse@xxxxxxxxx Intel CorporationAttachment: smime.p7s
Description: S/MIME cryptographic signature
--- End Message ---
Attachment:
smime.p7s
Description: S/MIME cryptographic signature