tangled
alpha
login
or
join now
tjh.dev
/
kernel
Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1
fork
atom
overview
issues
pulls
pipelines
Merge git://git.infradead.org/iommu-2.6 into iommu/fixes
Joerg Roedel
12 years ago
3426cb3d
aca1bc45
+9
-4
2 changed files
expand all
collapse all
unified
split
drivers
iommu
dmar.c
intel-iommu.c
+2
-1
drivers/iommu/dmar.c
···
152
info->seg = pci_domain_nr(dev->bus);
153
info->level = level;
154
if (event == BUS_NOTIFY_ADD_DEVICE) {
155
-
for (tmp = dev, level--; tmp; tmp = tmp->bus->self) {
0
156
info->path[level].device = PCI_SLOT(tmp->devfn);
157
info->path[level].function = PCI_FUNC(tmp->devfn);
158
if (pci_is_root_bus(tmp->bus))
···
152
info->seg = pci_domain_nr(dev->bus);
153
info->level = level;
154
if (event == BUS_NOTIFY_ADD_DEVICE) {
155
+
for (tmp = dev; tmp; tmp = tmp->bus->self) {
156
+
level--;
157
info->path[level].device = PCI_SLOT(tmp->devfn);
158
info->path[level].function = PCI_FUNC(tmp->devfn);
159
if (pci_is_root_bus(tmp->bus))
+7
-3
drivers/iommu/intel-iommu.c
···
1009
if (level == 1)
1010
return freelist;
1011
1012
-
for (pte = page_address(pg); !first_pte_in_page(pte); pte++) {
0
1013
if (dma_pte_present(pte) && !dma_pte_superpage(pte))
1014
freelist = dma_pte_list_pagetables(domain, level - 1,
1015
pte, freelist);
1016
-
}
0
1017
1018
return freelist;
1019
}
···
2237
bridge_devfn = dev_tmp->devfn;
2238
}
2239
spin_lock_irqsave(&device_domain_lock, flags);
2240
-
info = dmar_search_domain_by_dev_info(segment, bus, devfn);
0
0
2241
if (info) {
2242
iommu = info->iommu;
2243
domain = info->domain;
···
1009
if (level == 1)
1010
return freelist;
1011
1012
+
pte = page_address(pg);
1013
+
do {
1014
if (dma_pte_present(pte) && !dma_pte_superpage(pte))
1015
freelist = dma_pte_list_pagetables(domain, level - 1,
1016
pte, freelist);
1017
+
pte++;
1018
+
} while (!first_pte_in_page(pte));
1019
1020
return freelist;
1021
}
···
2235
bridge_devfn = dev_tmp->devfn;
2236
}
2237
spin_lock_irqsave(&device_domain_lock, flags);
2238
+
info = dmar_search_domain_by_dev_info(segment,
2239
+
bridge_bus,
2240
+
bridge_devfn);
2241
if (info) {
2242
iommu = info->iommu;
2243
domain = info->domain;