From: Joerg Roedel <joro@8bytes.org>
To: Seth Forshee <seth.forshee@canonical.com>
Cc: linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
x86@kernel.org, Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Len Brown <lenb@kernel.org>, Joerg Roedel <joerg.roedel@amd.com>,
Suresh Siddha <suresh.b.siddha@intel.com>,
Yinghai Lu <yinghai@kernel.org>
Subject: Re: [PATCH] irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU
Date: Tue, 7 Aug 2012 23:04:08 +0200 [thread overview]
Message-ID: <20120807210408.GK1917@8bytes.org> (raw)
In-Reply-To: <1344372489-14087-1-git-send-email-seth.forshee@canonical.com>
On Tue, Aug 07, 2012 at 03:48:09PM -0500, Seth Forshee wrote:
> The ACPI tables in the Macbook Air 5,1 define a single IOAPIC with id 2,
> but the only remapping unit described in the DMAR table matches id 0.
> Interrupt remapping fails as a result, and the kernel panics with the
> message "timer doesn't work through Interrupt-remapped IO-APIC."
>
> To fix this, check each IOAPIC for a corresponding IOMMU. If an IOMMU is
> not found, do not allow IRQ remapping to be enabled.
>
> Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
> ---
> drivers/iommu/intel_irq_remapping.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
> index e0b18f3..ce2c0c6 100644
> --- a/drivers/iommu/intel_irq_remapping.c
> +++ b/drivers/iommu/intel_irq_remapping.c
> @@ -526,6 +526,7 @@ static int __init intel_irq_remapping_supported(void)
> static int __init intel_enable_irq_remapping(void)
> {
> struct dmar_drhd_unit *drhd;
> + int ioapic_idx;
> int setup = 0;
> int eim = 0;
>
> @@ -534,6 +535,16 @@ static int __init intel_enable_irq_remapping(void)
> return -1;
> }
>
> + for (ioapic_idx = 0; ioapic_idx < nr_ioapics; ioapic_idx++) {
> + int ioapic_id = mpc_ioapic_id(ioapic_idx);
> + if (!map_ioapic_to_ir(ioapic_id)) {
> + pr_info("ioapic %d has no mapping iommu, "
> + "interrupt remapping will be disabled\n",
> + ioapic_id);
> + return -1;
> + }
> + }
> +
I would change this to pr_err() and add FW_BUG to make clear that this
is an error caused by a firmware bug.
Joerg
next prev parent reply other threads:[~2012-08-07 21:04 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-07 19:48 IRQ remapping problem on Macbook Air 5,1 Seth Forshee
2012-08-07 20:10 ` Joerg Roedel
2012-08-07 20:47 ` Suresh Siddha
2012-08-07 20:55 ` Seth Forshee
2012-08-07 20:53 ` Suresh Siddha
2012-08-07 20:48 ` [PATCH] irq_remap: disable IRQ remapping if any IOAPIC lacks an IOMMU Seth Forshee
2012-08-07 20:50 ` Suresh Siddha
2012-08-07 21:04 ` Joerg Roedel [this message]
2012-08-07 21:39 ` [PATCH v2] " Seth Forshee
2012-08-07 22:04 ` Yinghai Lu
2012-08-08 13:27 ` [PATCH v3] " Seth Forshee
2012-08-08 17:57 ` Yinghai Lu
2012-08-08 21:33 ` Seth Forshee
2012-08-10 9:32 ` Joerg Roedel
2012-08-10 9:32 ` Joerg Roedel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120807210408.GK1917@8bytes.org \
--to=joro@8bytes.org \
--cc=hpa@zytor.com \
--cc=joerg.roedel@amd.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=seth.forshee@canonical.com \
--cc=suresh.b.siddha@intel.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.