[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1279318325.27733.21.camel@macbook.infradead.org>
Date: Fri, 16 Jul 2010 23:12:05 +0100
From: David Woodhouse <dwmw2@...radead.org>
To: Dan Williams <dan.j.williams@...el.com>
Cc: Chris Li <lkml@...isli.org>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: BUG in drivers/dma/ioat/dma_v2.c:314
On Wed, 2010-07-14 at 22:41 -0700, Dan Williams wrote:
> + for_each_drhd_unit(drhd)
> + for (i = 0; i < drhd->devices_cnt; i++) {
> + /* we know that the this device's iommu is at
> + * offset 0xa000 from vtbar
> + */
> + if (drhd->devices[i] == pdev &&
> + drhd->reg_base_addr - vtbar != 0xa000) {
> + WARN_TAINT_ONCE(1, TAINT_FIRMWARE_WORKAROUND,
> + "BIOS assigned incorrect VT-d unit for Intel(R) QuickData Technology device\n");
> + pdev->dev.archdata.iommu = DUMMY_DEVICE_DOMAIN_INFO;
> + return;
> + }
> + }
> +}
Ah, that's the problem. Sorry, should have noticed this before. Since
this is the catch-all IOMMU, the device isn't explicitly listed.
You want 'drhd = dmar_find_matched_drhd_unit(pdev);' and then compare
vtbar with the reg_base_addr of that one.
--
dwmw2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists