lkml.org 
[lkml]   [2010]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: BUG in drivers/dma/ioat/dma_v2.c:314
    From
    Date
    On Thu, 2010-07-01 at 08:26 +0100, Williams, Dan J wrote:
    > On 7/1/2010 12:12 AM, Woodhouse, David wrote:
    > > On Thu, 2010-07-01 at 07:51 +0100, Williams, Dan J wrote:
    > >> This version of the device only exists on the 5400 chipset and always
    > >> has its own iommu, but since other platforms get the DMAR entry right I
    > >> think this hammer is too big? Wouldn't this break VT-d operation on
    > >> non-busted platforms?
    > >
    > > That just means we have to get the quirk right. Does 'this version' of
    > > the device have its own PCI ID? We can always fall back to checking the
    > > ID of the device at 0000:00:00.0 to check which chipset we're on.
    > >
    >
    > PCI_DEVICE_ID_INTEL_IOAT_SNB only exists on this chipset

    Something like this, then?

    diff --git a/drivers/pci/dmar.c b/drivers/pci/dmar.c
    index 0a19708..24ac178 100644
    --- a/drivers/pci/dmar.c
    +++ b/drivers/pci/dmar.c
    @@ -543,8 +543,20 @@ dmar_find_matched_drhd_unit(struct pci_dev *dev)
    header);

    if (dmaru->include_all &&
    - drhd->segment == pci_domain_nr(dev->bus))
    + drhd->segment == pci_domain_nr(dev->bus)) {
    + /* We know that this device on this chipset has its own
    + IOMMU. If we find it under the catch-all IOMMU, then
    + the BIOS is lying to us. Hope that the IOMMU for
    + this device is actually disabled, and it needs no
    + translation... */
    + if (dev->vendor == PCI_VENDOR_ID_INTEL &&
    + dev->device == PCI_DEVICE_ID_INTEL_IOAT_SNB) {
    + WARN_TAINT_ONCE(1, TAINT_FIRMWARE_WORKAROUND,
    + "BIOS wrongly included I/OAT device under catch-all VT-d unit\n");
    + return NULL;
    + }
    return dmaru;
    + }

    if (dmar_pci_device_match(dmaru->devices,
    dmaru->devices_cnt, dev))

    --
    David Woodhouse Open Source Technology Centre
    David.Woodhouse@intel.com Intel Corporation



    \
     
     \ /
      Last update: 2010-07-01 10:17    [W:4.881 / U:0.244 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site