Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
3426cb3d
Commit
3426cb3d
authored
Apr 16, 2014
by
Joerg Roedel
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.infradead.org/iommu-2.6
into iommu/fixes
parents
aca1bc45
5ae0566a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
4 deletions
+9
-4
drivers/iommu/dmar.c
drivers/iommu/dmar.c
+2
-1
drivers/iommu/intel-iommu.c
drivers/iommu/intel-iommu.c
+7
-3
No files found.
drivers/iommu/dmar.c
View file @
3426cb3d
...
@@ -152,7 +152,8 @@ dmar_alloc_pci_notify_info(struct pci_dev *dev, unsigned long event)
...
@@ -152,7 +152,8 @@ dmar_alloc_pci_notify_info(struct pci_dev *dev, unsigned long event)
info
->
seg
=
pci_domain_nr
(
dev
->
bus
);
info
->
seg
=
pci_domain_nr
(
dev
->
bus
);
info
->
level
=
level
;
info
->
level
=
level
;
if
(
event
==
BUS_NOTIFY_ADD_DEVICE
)
{
if
(
event
==
BUS_NOTIFY_ADD_DEVICE
)
{
for
(
tmp
=
dev
,
level
--
;
tmp
;
tmp
=
tmp
->
bus
->
self
)
{
for
(
tmp
=
dev
;
tmp
;
tmp
=
tmp
->
bus
->
self
)
{
level
--
;
info
->
path
[
level
].
device
=
PCI_SLOT
(
tmp
->
devfn
);
info
->
path
[
level
].
device
=
PCI_SLOT
(
tmp
->
devfn
);
info
->
path
[
level
].
function
=
PCI_FUNC
(
tmp
->
devfn
);
info
->
path
[
level
].
function
=
PCI_FUNC
(
tmp
->
devfn
);
if
(
pci_is_root_bus
(
tmp
->
bus
))
if
(
pci_is_root_bus
(
tmp
->
bus
))
...
...
drivers/iommu/intel-iommu.c
View file @
3426cb3d
...
@@ -1009,11 +1009,13 @@ static struct page *dma_pte_list_pagetables(struct dmar_domain *domain,
...
@@ -1009,11 +1009,13 @@ static struct page *dma_pte_list_pagetables(struct dmar_domain *domain,
if
(
level
==
1
)
if
(
level
==
1
)
return
freelist
;
return
freelist
;
for
(
pte
=
page_address
(
pg
);
!
first_pte_in_page
(
pte
);
pte
++
)
{
pte
=
page_address
(
pg
);
do
{
if
(
dma_pte_present
(
pte
)
&&
!
dma_pte_superpage
(
pte
))
if
(
dma_pte_present
(
pte
)
&&
!
dma_pte_superpage
(
pte
))
freelist
=
dma_pte_list_pagetables
(
domain
,
level
-
1
,
freelist
=
dma_pte_list_pagetables
(
domain
,
level
-
1
,
pte
,
freelist
);
pte
,
freelist
);
}
pte
++
;
}
while
(
!
first_pte_in_page
(
pte
));
return
freelist
;
return
freelist
;
}
}
...
@@ -2235,7 +2237,9 @@ static struct dmar_domain *get_domain_for_dev(struct device *dev, int gaw)
...
@@ -2235,7 +2237,9 @@ static struct dmar_domain *get_domain_for_dev(struct device *dev, int gaw)
bridge_devfn
=
dev_tmp
->
devfn
;
bridge_devfn
=
dev_tmp
->
devfn
;
}
}
spin_lock_irqsave
(
&
device_domain_lock
,
flags
);
spin_lock_irqsave
(
&
device_domain_lock
,
flags
);
info
=
dmar_search_domain_by_dev_info
(
segment
,
bus
,
devfn
);
info
=
dmar_search_domain_by_dev_info
(
segment
,
bridge_bus
,
bridge_devfn
);
if
(
info
)
{
if
(
info
)
{
iommu
=
info
->
iommu
;
iommu
=
info
->
iommu
;
domain
=
info
->
domain
;
domain
=
info
->
domain
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment