static void iommu_ignore_device(struct amd_iommu *iommu, struct device *dev)
 {
        struct amd_iommu_pci_seg *pci_seg = iommu->pci_seg;
+       struct dev_table_entry *dev_table = get_dev_table(iommu);
        int devid;
 
-       devid = get_device_id(dev);
+       devid = (get_device_id(dev)) & 0xffff;
        if (devid < 0)
                return;
 
-
        pci_seg->rlookup_table[devid] = NULL;
-       memset(&amd_iommu_dev_table[devid], 0, sizeof(struct dev_table_entry));
+       memset(&dev_table[devid], 0, sizeof(struct dev_table_entry));
 
        setup_aliases(iommu, dev);
 }