Akinobu Mita
a66022c457
iommu-helper: use bitmap library
...
Use bitmap library and kill some unused iommu helper functions.
1. s/iommu_area_free/bitmap_clear/
2. s/iommu_area_reserve/bitmap_set/
3. Use bitmap_find_next_zero_area instead of find_next_zero_area
This cannot be simple substitution because find_next_zero_area
doesn't check the last bit of the limit in bitmap
4. Remove iommu_area_free, iommu_area_reserve, and find_next_zero_area
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Cc: Joerg Roedel <joerg.roedel@amd.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2009-12-16 07:20:18 -08:00
Joerg Roedel
56d9366074
introduce generic iommu_num_pages function
...
This patch introduces the generic iommu_num_pages function. It can be used by
a given memory area.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com >
Cc: "David S. Miller" <davem@davemloft.net >
Cc: Richard Henderson <rth@twiddle.net >
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Cc: Muli Ben-Yehuda <muli@il.ibm.com >
Cc: Dave Airlie <airlied@linux.ie >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-10-16 11:21:33 -07:00
Thomas Gleixner
1e19b16a30
AMD IOMMU: use iommu_device_max_index, fix
...
include/linux/iommu-helper.h has no header guards, which breaks
sparc64 build. Add them.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Cc: Joerg Roedel <joerg.roedel@amd.com >
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2008-10-06 16:51:30 +02:00
FUJITA Tomonori
d26dbc5cf9
iommu: export iommu_area_reserve helper function
...
x86 has set_bit_string() that does the exact same thing that
set_bit_area() in lib/iommu-helper.c does.
This patch exports set_bit_area() in lib/iommu-helper.c as
iommu_area_reserve(), converts GART, Calgary, and AMD IOMMU to use it.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Acked-by: Joerg Roedel <joerg.roedel@amd.com >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2008-09-22 16:47:50 +02:00
FUJITA Tomonori
eecfffc154
iommu: add iommu_device_max_index IOMMU helper function
...
This function helps IOMMUs to know the highest address that a device
can access to.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2008-09-14 16:42:36 +02:00
FUJITA Tomonori
8978b74253
generic, x86: fix add iommu_num_pages helper function
...
This IOMMU helper function doesn't work for some architectures:
http://marc.info/?l=linux-kernel&m=121699304403202&w=2
It also breaks POWER and SPARC builds:
http://marc.info/?l=linux-kernel&m=121730388001890&w=2
Currently, only x86 IOMMUs use this so let's move it to x86 for
now.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au >
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2008-07-29 12:12:48 +02:00
Joerg Roedel
3bc9f79ee1
iommu: add iommu_num_pages helper function
...
Calculating the number of pages from given address and length numbers is a task
required in multiple IOMMU implementations. So implement this as a generic
function into the IOMMU helper code.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com >
Cc: iommu@lists.linux-foundation.org
Cc: bhavna.sarathy@amd.com
Cc: robert.richter@amd.com
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Signed-off-by: Ingo Molnar <mingo@elte.hu >
2008-07-26 15:43:05 +02:00
FUJITA Tomonori
3715863aa1
iommu: export iommu_is_span_boundary helper function
...
iommu_is_span_boundary is used internally in the IOMMU helper
(lib/iommu-helper.c), a primitive function that judges whether a memory area
spans LLD's segment boundary or not.
It's difficult to convert some IOMMUs to use the IOMMU helper but
iommu_is_span_boundary is still useful for them. So this patch exports it.
This is needed for the parisc iommu fixes.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Cc: Kyle McMartin <kyle@parisc-linux.org >
Cc: Matthew Wilcox <matthew@wil.cx >
Cc: Grant Grundler <grundler@parisc-linux.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-03-04 16:35:17 -08:00
FUJITA Tomonori
0291df8cc9
iommu sg: add IOMMU helper functions for the free area management
...
This adds IOMMU helper functions for the free area management. These
functions take care of LLD's segment boundary limit for IOMMUs. They would be
useful for IOMMUs that use bitmap for the free area management.
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp >
Cc: Jeff Garzik <jeff@garzik.org >
Cc: James Bottomley <James.Bottomley@steeleye.com >
Cc: Jens Axboe <jens.axboe@oracle.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-02-05 09:44:11 -08:00