Joerg Roedel
b0a11f44ab
Merge branches 'iommu/api' and 'iommu/amd' into for-linus
2009-01-03 16:43:44 +01:00
Jaswinder Singh Rajput
0e93dd8835
AMD IOMMU: prealloc_protection_domains should be static
...
Impact: cleanup, reduce kernel size a bit, avoid sparse warning
Fixes sparse warning:
arch/x86/kernel/amd_iommu.c:1299:6: warning: symbol 'prealloc_protection_domains' was not declared. Should it be static?
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 16:41:18 +01:00
Joerg Roedel
7398ca79d2
kvm/iommu: fix compile warning
...
This fixes a compile warning about a variable thats maybe used
uninitialized in the function.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 16:37:53 +01:00
Joerg Roedel
8ecaf8f19f
AMD IOMMU: add statistics about total number of map requests
...
Impact: see total number of map requests in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:12:00 +01:00
Joerg Roedel
5774f7c5fe
AMD IOMMU: add statistics about allocated io memory
...
Impact: see amount of allocated io memory in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:12:00 +01:00
Joerg Roedel
18811f55d4
AMD IOMMU: add stats counter for domain tlb flushes
...
Impact: see number of domain tlb flushes in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
f57d98ae69
AMD IOMMU: add stats counter for single iommu domain tlb flushes
...
Impact: see number of single iommu domain tlb flushes in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
c1858976f5
AMD IOMMU: add stats counter for cross-page request
...
Impact: see number of requests for more than one page in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
5d31ee7e08
AMD IOMMU: add stats counter for free_coherent requests
...
Impact: see number of free_coherent requests in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
c8f0fb36bf
AMD IOMMU: add stats counter for alloc_coherent requests
...
Impact: see number of alloc_coherent requests in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
55877a6bcd
AMD IOMMU: add stats counter for unmap_sg requests
...
Impact: see number of unmap_sg requests in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
d03f067a9d
AMD IOMMU: add stats counter for map_sg requests
...
Impact: see number of map_sg requests in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
146a6917fc
AMD IOMMU: add stats counter for unmap_single requests
...
Impact: see number of unmap_single requests in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
0f2a86f200
AMD IOMMU: add stats counter for map_single requests
...
Impact: see number of map_single requests in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:59 +01:00
Joerg Roedel
da49f6df72
AMD IOMMU: add stats counter for completion wait events
...
Impact: see number of completion wait events in debugfs
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:58 +01:00
Joerg Roedel
7f26508bbb
AMD IOMMU: add init code for statistic collection
...
Impact: create a new debugfs directory
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:58 +01:00
Joerg Roedel
a9dddbe049
AMD IOMMU: add necessary header defines for stats counting
...
Impact: add defines to make iommu stats collection configurable
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:58 +01:00
Joerg Roedel
2e117604a4
AMD IOMMU: add Kconfig entry for statistic collection code
...
Impact: adds new Kconfig entry
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:57 +01:00
Joerg Roedel
a4e267c88b
AMD IOMMU: use dev_name in iommu_enable function
...
Impact: cleanup
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:57 +01:00
Joerg Roedel
edcb34da25
AMD IOMMU: use calc_devid in prealloc_protection_domains
...
Impact: cleanup
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:57 +01:00
Joerg Roedel
c226f85309
AMD IOMMU: convert amd_iommu_isolate to bool
...
Impact: cleanup
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:57 +01:00
Joerg Roedel
0cfd7aa90b
AMD IOMMU: convert iommu->need_sync to bool
...
Impact: use bool instead of int for iommu->need_sync
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:57 +01:00
Joerg Roedel
ab89672286
AMD IOMMU: use dev_name instead of self-build print_devid
...
Impact: use generic dev_name instead of own function
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
1ac4cbbc5e
AMD IOMMU: allocate a new protection for hotplugged devices
...
Impact: also hotplug devices benefit from device isolation
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
e2dc14a2a6
AMD IOMMU: add a domain flag for default domains
...
Impact: adds a new protection domain flag
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
26961efe0d
AMD IOMMU: register functions for the IOMMU API
...
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
645c4c8d72
AMD IOMMU: add domain address lookup function for IOMMU API
...
Impact: add a generic function to lockup addresses in protection domains
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
eb74ff6cc0
AMD IOMMU: add domain unmap function for IOMMU API
...
Impact: add a generic function to unmap pages into protection domains
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
c6229ca649
AMD IOMMU: add domain map function for IOMMU API
...
Impact: add a generic function to map pages into protection domains
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
01106066a6
AMD IOMMU: add device attach function for IOMMU API
...
Impact: add a generic function to attach devices to protection domains
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:56 +01:00
Joerg Roedel
684f288884
AMD IOMMU: add device detach function for IOMMU API
...
Impact: add a generic function to detach devices from protection domains
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:55 +01:00
Joerg Roedel
98383fc301
AMD IOMMU: add domain destroy function for IOMMU API
...
Impact: add a generic function for releasing protection domains
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:55 +01:00
Joerg Roedel
c156e347d6
AMD IOMMU: add domain init function for IOMMU API
...
Impact: add a generic function for allocation protection domains
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:55 +01:00
Joerg Roedel
6d98cd8043
AMD IOMMU: add domain cleanup helper function
...
Impact: add a function to remove all devices from a domain
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:55 +01:00
Joerg Roedel
e275a2a0fc
AMD IOMMU: add device notifier callback
...
Impact: inform IOMMU about state change of a device in the driver core
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:55 +01:00
Joerg Roedel
355bf553ed
AMD IOMMU: add device detach helper functions
...
Impact: add helper functions to detach a device from a domain
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:55 +01:00
Joerg Roedel
f1179dc005
AMD IOMMU: rename set_device_domain function
...
Impact: rename set_device_domain() to attach_device()
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
863c74ebd0
AMD IOMMU: add device reference counting for protection domains
...
Impact: know how many devices are assigned to a domain
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
5b28df6f43
AMD IOMMU: add checks for dma_ops domain to dma_ops functions
...
Impact: detect when a driver uses a device assigned otherwise
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
9fdb19d64c
AMD IOMMU: add protection domain flags
...
Imapct: add a new struct member to 'struct protection_domain'
When using protection domains for dma_ops and KVM its better to know for
which subsystem it was allocated. Add a flags member to struct
protection domain for that purpose.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
43f4960983
AMD IOMMU: add iommu_flush_domain function
...
Impact: add a function to flush a domain id on every IOMMU
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
9e919012e3
AMD IOMMU: don't remove protection domain from iommu_pd_list
...
Impact: save unneeded logic to add and remove domains to the list
The removal of a protection domain from the iommu_pd_list is not
necessary. Another benefit is that we save complexity because we don't
have to readd it later when the device no longer uses the domain.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
237b6f3329
AMD IOMMU: move invalidation command building to a separate function
...
Impact: refactoring of iommu_queue_inv_iommu_pages
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
8d201968e1
AMD IOMMU: refactor completion wait handling into separate functions
...
Impact: split one function into three
The separate functions are required synchronize commands across all
hardware IOMMUs in the system.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:54 +01:00
Joerg Roedel
a2acfb7579
AMD IOMMU: add domain id free function
...
Impact: add code to release a domain id
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:53 +01:00
Joerg Roedel
86db2e5d47
AMD IOMMU: make dma_ops_free_pagetable generic
...
Impact: change code to free pagetables from protection domains
The dma_ops_free_pagetable function can only free pagetables from
dma_ops domains. Change that to free pagetables of pure protection
domains.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:53 +01:00
Joerg Roedel
38e817febe
AMD IOMMU: rename iommu_map to iommu_map_page
...
Impact: function rename
The iommu_map function maps only one page. Make this clear in the
function name.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:53 +01:00
Mike Day
cdc7b83726
intel-iommu: fix bit shift at DOMAIN_FLAG_P2P_MULTIPLE_DEVICES
...
Signed-off-by: Mike Day <ncmike@ncultra.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:08 +01:00
Joerg Roedel
e4754c96cf
VT-d: remove now unused intel_iommu_found function
...
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:08 +01:00
Joerg Roedel
a8bcbb0de4
VT-d: register functions for the IOMMU API
...
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-01-03 14:11:08 +01:00