Commit Graph

69 Commits

Author SHA1 Message Date
Joerg Roedel
9537a48ed4 dma-debug: make memory range checks more consistent
Impact: extend on-kernel-stack DMA debug checks to all !highmem pages

We only checked dma_map_single() - extend it to dma_map_page()
and dma_map_sg() as well.

Also, fix dma_map_single() corner case bug: make sure we dont
stack-check highmem (not mapped) pages.

Reported-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Cc: iommu@lists.linux-foundation.org
LKML-Reference: <1237818908-26516-1-git-send-email-joerg.roedel@amd.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-03-24 08:39:32 +01:00
FUJITA Tomonori
35d40952db dma-debug: warn of unmapping an invalid dma address
Impact: extend DMA-debug checks

Calling dma_unmap families against an invalid dma address should be a
bug.

Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Joerg Roedel <joerg.roedel@amd.com>
LKML-Reference: <20090319103743N.fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-03-19 08:39:48 +01:00
Joerg Roedel
41531c8f5f dma-debug: add a check dma memory leaks
Impact: allow architectures to monitor busses for dma mem leakage

This patch adds checking code to detect if a device has pending DMA
operations when it is about to be unbound from its device driver.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-17 12:56:49 +01:00
Joerg Roedel
2e34bde185 dma-debug: add checks for kernel text and rodata
Impact: get notified if a device dma maps illegal areas

This patch adds a check to print a warning message when a device driver
tries to map a memory area from the kernel text segment or rodata.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-17 12:56:48 +01:00
David Woodhouse
6c132d1bcd dma-debug: print stacktrace of mapping path on unmap error
Impact: saves stacktrace of a dma mapping and prints it if there is an  error

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-17 12:56:48 +01:00
David Woodhouse
ac26c18bd3 dma-debug: add function to dump dma mappings
This adds a function to dump the DMA mappings that the debugging code is
aware of -- either for a single device, or for _all_ devices.

This can be useful for debugging -- sticking a call to it in the DMA
page fault handler, for example, to see if the faulting address _should_
be mapped or not, and hence work out whether it's IOMMU bugs we're
seeing, or driver bugs.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
2009-03-17 12:56:39 +01:00
Joerg Roedel
a31fba5d68 dma-debug: add checks for sync_single_sg_*
Impact: add debug callbacks for dma_sync_sg_* functions

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:21 +01:00
Joerg Roedel
948408ba3e dma-debug: add checks for sync_single_range_*
Impact: add debug callbacks for dma_sync_single_range_for_* functions

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:21 +01:00
Joerg Roedel
b9d2317e0c dma-debug: add checks for sync_single_*
Impact: add debug callbacks for dma_sync_single_for_* functions

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:20 +01:00
Joerg Roedel
6bfd449876 dma-debug: add checking for [alloc|free]_coherent
Impact: add debug callbacks for dma_[alloc|free]_coherent

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:19 +01:00
Joerg Roedel
972aa45cea dma-debug: add add checking for map/unmap_sg
Impact: add debug callbacks for dma_{un}map_sg

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:18 +01:00
Joerg Roedel
f62bc980e6 dma-debug: add checking for map/unmap_page/single
Impact: add debug callbacks for dma_{un}map_[page|single]

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:18 +01:00
Joerg Roedel
2d62ece14f dma-debug: add core checking functions
Impact: add functions to check on dma unmap and sync

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:17 +01:00
Joerg Roedel
788dcfa6f1 dma-debug: add debugfs interface
Impact: add debugfs interface for configuring DMA-API debugging

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:16 +01:00
Joerg Roedel
59d3daafa1 dma-debug: add kernel command line parameters
Impact: add dma_debug= and dma_debug_entries= kernel parameters

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:16 +01:00
Joerg Roedel
6bf078715c dma-debug: add initialization code
Impact: add code to initialize dma-debug core data structures

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:15 +01:00
Joerg Roedel
3b1e79ed73 dma-debug: add allocator code
Impact: add allocator code for struct dma_debug_entry

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:15 +01:00
Joerg Roedel
30dfa90cc8 dma-debug: add hash functions for dma_debug_entries
Impact: implement necessary functions for the core hash

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 20:35:04 +01:00
Joerg Roedel
f2f45e5f3c dma-debug: add header file and core data structures
Impact: add groundwork for DMA-API debugging

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
2009-03-05 15:11:12 +01:00