Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci
Commits
4c5478c9
Commit
4c5478c9
authored
Dec 03, 2008
by
Joerg Roedel
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
VT-d: adapt device attach and detach functions for IOMMU API
Signed-off-by:
Joerg Roedel
<
joerg.roedel@amd.com
>
parent
5d450806
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
16 deletions
+15
-16
drivers/pci/intel-iommu.c
drivers/pci/intel-iommu.c
+15
-12
include/linux/intel-iommu.h
include/linux/intel-iommu.h
+0
-4
No files found.
drivers/pci/intel-iommu.c
View file @
4c5478c9
...
...
@@ -2992,9 +2992,11 @@ static void intel_iommu_domain_destroy(struct iommu_domain *domain)
vm_domain_exit
(
dmar_domain
);
}
int
intel_iommu_attach_device
(
struct
dmar
_domain
*
domain
,
struct
pci_dev
*
p
dev
)
static
int
intel_iommu_attach_device
(
struct
iommu
_domain
*
domain
,
struct
device
*
dev
)
{
struct
dmar_domain
*
dmar_domain
=
domain
->
priv
;
struct
pci_dev
*
pdev
=
to_pci_dev
(
dev
);
struct
intel_iommu
*
iommu
;
int
addr_width
;
u64
end
;
...
...
@@ -3006,7 +3008,7 @@ int intel_iommu_attach_device(struct dmar_domain *domain,
old_domain
=
find_domain
(
pdev
);
if
(
old_domain
)
{
if
(
domain
->
flags
&
DOMAIN_FLAG_VIRTUAL_MACHINE
)
if
(
d
mar_d
omain
->
flags
&
DOMAIN_FLAG_VIRTUAL_MACHINE
)
vm_domain_remove_one_dev_info
(
old_domain
,
pdev
);
else
domain_remove_dev_info
(
old_domain
);
...
...
@@ -3021,28 +3023,29 @@ int intel_iommu_attach_device(struct dmar_domain *domain,
addr_width
=
agaw_to_width
(
iommu
->
agaw
);
end
=
DOMAIN_MAX_ADDR
(
addr_width
);
end
=
end
&
VTD_PAGE_MASK
;
if
(
end
<
domain
->
max_addr
)
{
if
(
end
<
d
mar_d
omain
->
max_addr
)
{
printk
(
KERN_ERR
"%s: iommu agaw (%d) is not "
"sufficient for the mapped address (%llx)
\n
"
,
__func__
,
iommu
->
agaw
,
domain
->
max_addr
);
__func__
,
iommu
->
agaw
,
d
mar_d
omain
->
max_addr
);
return
-
EFAULT
;
}
ret
=
domain_context_mapping
(
domain
,
pdev
);
ret
=
domain_context_mapping
(
d
mar_d
omain
,
pdev
);
if
(
ret
)
return
ret
;
ret
=
vm_domain_add_dev_info
(
domain
,
pdev
);
ret
=
vm_domain_add_dev_info
(
d
mar_d
omain
,
pdev
);
return
ret
;
}
EXPORT_SYMBOL_GPL
(
intel_iommu_attach_device
);
void
intel_iommu_detach_device
(
struct
dmar
_domain
*
domain
,
struct
pci_dev
*
p
dev
)
static
void
intel_iommu_detach_device
(
struct
iommu
_domain
*
domain
,
struct
device
*
dev
)
{
vm_domain_remove_one_dev_info
(
domain
,
pdev
);
struct
dmar_domain
*
dmar_domain
=
domain
->
priv
;
struct
pci_dev
*
pdev
=
to_pci_dev
(
dev
);
vm_domain_remove_one_dev_info
(
dmar_domain
,
pdev
);
}
EXPORT_SYMBOL_GPL
(
intel_iommu_detach_device
);
int
intel_iommu_map_address
(
struct
dmar_domain
*
domain
,
dma_addr_t
iova
,
u64
hpa
,
size_t
size
,
int
prot
)
...
...
include/linux/intel-iommu.h
View file @
4c5478c9
...
...
@@ -330,10 +330,6 @@ extern int qi_flush_iotlb(struct intel_iommu *iommu, u16 did, u64 addr,
extern
void
qi_submit_sync
(
struct
qi_desc
*
desc
,
struct
intel_iommu
*
iommu
);
int
intel_iommu_attach_device
(
struct
dmar_domain
*
domain
,
struct
pci_dev
*
pdev
);
void
intel_iommu_detach_device
(
struct
dmar_domain
*
domain
,
struct
pci_dev
*
pdev
);
int
intel_iommu_map_address
(
struct
dmar_domain
*
domain
,
dma_addr_t
iova
,
u64
hpa
,
size_t
size
,
int
prot
);
void
intel_iommu_unmap_address
(
struct
dmar_domain
*
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