Commit 320000e7 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'iommu-fixes-v5.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu

Pull iommu fixes from Joerg Roedel:

 - Follow-on fix for Renesas IPMMU to get rid of a redundant error
   message.

 - Quirk for AMD IOMMU to make it work on another Acer Laptop model with
   a broken IVRS ACPI table.

 - Fix for a panic at kdump in the Intel IOMMU driver.

* tag 'iommu-fixes-v5.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
  iommu/vt-d: Fix panic after kexec -p for kdump
  iommu/amd: Apply the same IVRS IOAPIC workaround to Acer Aspire A315-41
  iommu/ipmmu-vmsa: Remove dev_err() on platform_get_irq() failure
parents b66b4498 160c63f9
...@@ -73,6 +73,19 @@ static const struct dmi_system_id ivrs_quirks[] __initconst = { ...@@ -73,6 +73,19 @@ static const struct dmi_system_id ivrs_quirks[] __initconst = {
}, },
.driver_data = (void *)&ivrs_ioapic_quirks[DELL_LATITUDE_5495], .driver_data = (void *)&ivrs_ioapic_quirks[DELL_LATITUDE_5495],
}, },
{
/*
* Acer Aspire A315-41 requires the very same workaround as
* Dell Latitude 5495
*/
.callback = ivrs_ioapic_quirk_cb,
.ident = "Acer Aspire A315-41",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
DMI_MATCH(DMI_PRODUCT_NAME, "Aspire A315-41"),
},
.driver_data = (void *)&ivrs_ioapic_quirks[DELL_LATITUDE_5495],
},
{ {
.callback = ivrs_ioapic_quirk_cb, .callback = ivrs_ioapic_quirk_cb,
.ident = "Lenovo ideapad 330S-15ARR", .ident = "Lenovo ideapad 330S-15ARR",
......
...@@ -2794,7 +2794,7 @@ static int identity_mapping(struct device *dev) ...@@ -2794,7 +2794,7 @@ static int identity_mapping(struct device *dev)
struct device_domain_info *info; struct device_domain_info *info;
info = dev->archdata.iommu; info = dev->archdata.iommu;
if (info && info != DUMMY_DEVICE_DOMAIN_INFO) if (info && info != DUMMY_DEVICE_DOMAIN_INFO && info != DEFER_DEVICE_DOMAIN_INFO)
return (info->domain == si_domain); return (info->domain == si_domain);
return 0; return 0;
......
...@@ -1105,10 +1105,8 @@ static int ipmmu_probe(struct platform_device *pdev) ...@@ -1105,10 +1105,8 @@ static int ipmmu_probe(struct platform_device *pdev)
/* Root devices have mandatory IRQs */ /* Root devices have mandatory IRQs */
if (ipmmu_is_root(mmu)) { if (ipmmu_is_root(mmu)) {
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
if (irq < 0) { if (irq < 0)
dev_err(&pdev->dev, "no IRQ found\n");
return irq; return irq;
}
ret = devm_request_irq(&pdev->dev, irq, ipmmu_irq, 0, ret = devm_request_irq(&pdev->dev, irq, ipmmu_irq, 0,
dev_name(&pdev->dev), mmu); dev_name(&pdev->dev), mmu);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment