- Apr 07, 2010
-
-
Dan Carpenter authored
Earlier in this function we set the last byte of "buf" to NULL so we always hit the break statement and "i" is never equal to NAME_MAX_LEN. This patch doesn't change how the driver works but it silences a Smatch warning and it makes it clearer that we don't write past the end of the array. Signed-off-by:
Dan Carpenter <error27@gmail.com> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Jan 22, 2010
-
-
Thiago Farina authored
warning: symbol 'filter_fops' was not declared. Should it be static? Signed-off-by:
Thiago Farina <tfransosi@gmail.com> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Jan 11, 2010
-
-
Krzysztof Halasa authored
There is no need to perform full BIDIR sync (copying the buffers in case of swiotlb and similar schemes) if we know that the owner (CPU or device) hasn't altered the data. Addresses the false-positive reported at http://bugzilla.kernel.org/show_bug.cgi?id=14169 Signed-off-by:
Krzysztof Halasa <khc@pm.waw.pl> Cc: David Miller <davem@davemloft.net> Cc: Joerg Roedel <joerg.roedel@amd.com> Cc: <stable@kernel.org> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- Dec 31, 2009
-
-
Ingo Molnar authored
Stephen Rothwell reported the following build warning: lib/dma-debug.c: In function 'dma_debug_device_change': lib/dma-debug.c:680: warning: 'return' with no value, in function returning non-void Introduced by commit f797d988 ("dma-debug: Do not add notifier when dma debugging is disabled"). Return 0 [notify-done] when disabled. (this is standard bus notifier behavior.) Signed-off-by:
Shaun Ruffell <sruffell@digium.com> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: <stable@kernel.org> LKML-Reference: <20091231125624.GA14666@liondog.tnic> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Dec 21, 2009
-
-
Shaun Ruffell authored
If CONFIG_HAVE_DMA_API_DEBUG is defined and "dma_debug=off" is specified on the kernel command line, when you detach a driver from a device you can cause the following NULL pointer dereference: BUG: unable to handle kernel NULL pointer dereference at (null) IP: [<c0580d35>] dma_debug_device_change+0x5d/0x117 The problem is that the dma_debug_device_change notifier function is added to the bus notifier chain even though the dma_entry_hash array was never initialized. If dma debugging is disabled, this patch both prevents dma_debug_device_change notifiers from being added to the chain, and additionally ensures that the dma_debug_device_change notifier function is a no-op. Cc: stable@kernel.org Signed-off-by:
Shaun Ruffell <sruffell@digium.com> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Dec 04, 2009
-
-
André Goddard Rosa authored
That is "success", "unknown", "through", "performance", "[re|un]mapping" , "access", "default", "reasonable", "[con]currently", "temperature" , "channel", "[un]used", "application", "example","hierarchy", "therefore" , "[over|under]flow", "contiguous", "threshold", "enough" and others. Signed-off-by:
André Goddard Rosa <andre.goddard@gmail.com> Signed-off-by:
Jiri Kosina <jkosina@suse.cz>
-
- Oct 29, 2009
-
-
Joerg Roedel authored
When PAE is enabled in the kernel configuration the size of phys_addr_t differs from the size of a void pointer. The gcc prints a warning about that in dma-debug code. This patch fixes the warning by converting the output to unsigned long long instead of a pointer. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Aug 21, 2009
-
-
Kyle McMartin authored
While it's debatable whether or not a NULL device argument to the DMA API functions is valid... since it certainly isn't valid on devices with an IOMMU... dma-debug really shouldn't be dereferencing null pointers either. Guard against that in err_printk and the driver_filter functions. A Fedora rawhide user was seeing this in one of the dvb drivers resulting in an oops on boot. [ A patch has been sent for testing to the driver, but I feel the dma debugging support should be fixed as well. (There's still a pile of legacy garbage in the kernel passing null pointers to dma_{alloc,free}_*. :( ] Signed-off-by:
Kyle McMartin <kyle@redhat.com> Cc: mchehab@infradead.org Cc: Joerg Roedel <joerg.roedel@amd.com> LKML-Reference: <20090820011708.GP25206@bombadil.infradead.org> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Jul 10, 2009
-
-
Ingo Molnar authored
Linus noticed how unclean and buggy the overlap() function is: - It uses convoluted (and bug-causing) positive checks for range overlap - instead of using a more natural negative check. - Even the positive checks are buggy: a positive intersection check has four natural cases while we checked only for three, missing the (addr < start && addr2 == end) case for example. - The variables are mis-named, making it non-obvious how the check was done. - It needlessly uses u64 instead of unsigned long. Since these are kernel memory pointers and we explicitly exclude highmem ranges anyway we cannot ever overflow 32 bits, even if we could. (and on 64-bit it doesnt matter anyway) All in one, this function needs a total revamp. I used Linus's suggestions minus the paranoid checks (we cannot overflow really because if we get totally bad DMA ranges passed far more things break in the systems than just DMA debugging). I also fixed a few other small details i noticed. Reported-by:
Linus Torvalds <torvalds@linux-foundation.org> Cc: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Jun 17, 2009
-
-
Ingo Molnar authored
Alan Cox reported that lockdep runs out of its stack-trace entries with certain configs: BUG: MAX_STACK_TRACE_ENTRIES too low This happens because there are 1024 hash buckets, each with a separate lock. Lockdep puts each lock into a separate lock class and tracks them independently. But in reality we never take more than one of the buckets, so they really belong into a single lock-class. Annotate the has bucket lock init accordingly. [ Impact: reduce the lockdep footprint of dma-debug ] Reported-by:
Alan Cox <alan@linux.intel.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Jun 16, 2009
-
-
Joerg Roedel authored
This patch fixes a bug in the overlap function which returned true if one region ends exactly before the second region begins. This is no overlap but the function returned true in that case. Cc: stable@kernel.org Reported-by:
Andrew Randrianasulu <randrik@mail.ru> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Jun 15, 2009
-
-
Joerg Roedel authored
The current code is not very careful when it builds reference dma_debug_entries which get passed to hash_bucket_find(). But since this function changed to a best-fit algorithm these entries have to be more acurate. This patch adds this higher level of accuracy. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
If we don't check for sg_call_ents the hash_bucket_find function might still return the wrong dma_debug_entry for sg mappings. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Jun 08, 2009
-
-
Joerg Roedel authored
This patch makes the driver_filter function more readable by reorganizing the code. The removal of a code code block to an upper indentation level makes hard-to-read line-wraps unnecessary. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
There is no need to disable/enable irqs on each loop iteration. Just disable irqs for the whole time the loop runs. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
The pr_* macros are shorter than the old printk(KERN_ ...) variant. Change the dma-debug code to use the new macros and save a few unnecessary line breaks. If lines don't break the source code can also be grepped more easily. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
This patch changes the recent updates to dma-debug to conform with coding style guidelines of Linux and the -tip tree. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
Last patch series introduced some new comment which does not fit the Kernel comment style guidelines. Fix it with this patch. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Jun 07, 2009
-
-
Joerg Roedel authored
Some device drivers map the same physical address multiple times to a dma address. Without an IOMMU this results in the same dma address being put into the dma-debug hash multiple times. With a first-fit match in hash_bucket_find() this function may return the wrong dma_debug_entry. This can result in false positive warnings. This patch fixes it by changing the first-fit behavior of hash_bucket_find() into a best-fit algorithm. Reported-by:
Torsten Kaiser <just.for.lkml@googlemail.com> Reported-by:
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Cc: lethal@linux-sh.org Cc: just.for.lkml@googlemail.com Cc: hancockrwd@gmail.com Cc: jens.axboe@oracle.com Cc: bharrosh@panasas.com Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: <stable@kernel.org> LKML-Reference: <20090605104132.GE24836@amd.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Jun 02, 2009
-
-
Joerg Roedel authored
This patch add the dma_debug_driver= boot parameter to enable the driver filter for early boot. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
This patch adds the dma-api/driver_filter file to debugfs. The root user can write a driver name into this file to see only dma-api errors for that particular driver in the kernel log. Writing an empty string to that file disables the driver filter. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
This patch adds the state variables for the driver filter and a function to check if the filter is enabled and matches to the current device. The check is built into the err_printk function. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- May 29, 2009
-
-
FUJITA Tomonori authored
DMA-mapping.txt says that debug_dma_sync_sg family must be called with the _same_ one you passed into the dma_map_sg call, it should _NOT_ be the 'count' value _returned_ from the dma_map_sg call. debug_dma_sync_sg_for_cpu and debug_dma_sync_sg_for_device can't handle this properly; they need to use the sg_mapped_ents in struct dma_debug_entry as debug_dma_unmap_sg() does. Signed-off-by:
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
FUJITA Tomonori authored
debug_dma_map_sg() and debug_dma_unmap_sg() use length in struct scatterlist while debug_dma_sync_sg_for_cpu() and debug_dma_sync_sg_for_device() use dma_length. This causes bugs warnings on some IOMMU implementations since these values are not same; the length doesn't represent the dma length. We always need to use sg_dma_len() accessor to get the dma length of a scatterlist entry. Signed-off-by:
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
FUJITA Tomonori authored
Architectures might not have dma_address in struct scatterlist (PARISC doesn't). Directly accessing to dma_address in struct scatterlist is wrong; we need to use sg_dma_address() accesssor instead. Signed-off-by:
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- May 28, 2009
-
-
Joerg Roedel authored
This is basically a revert of commit 314eeac9 but now in a fixed version. Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
- Apr 26, 2009
-
-
Joerg Roedel authored
The feature needs some more work because the notfier which is used to check for pending allocations is called before the device drivers ->remove() function. Therefore this feature reports false positives. A real fix for this issue is to introduce a new notifier event which sent _after_ the driver has deinitialized itself. That will done for the next kernel version. [ Impact: reduce the scope of CONFIG_DMA_API_DEBUG=y checks ] Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com> Cc: iommu@lists.linux-foundation.org LKML-Reference: <1240576557-22442-1-git-send-email-joerg.roedel@amd.com> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Apr 15, 2009
-
-
FUJITA Tomonori authored
We use a static value for the number of dma_debug_entries. It can be overwritten by a kernel command line option. Some IOMMUs (e.g. GART) can't set an appropriate value by a kernel command line option because they can't know such value until they finish initializing up their hardware. This patch adds dma_debug_resize_entries() enables IOMMUs to adjust the number of dma_debug_entries anytime. Signed-off-by:
FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Acked-by:
Joerg Roedel <joerg.roedel@amd.com> Cc: fujita.tomonori@lab.ntt.co.jp Cc: akpm@linux-foundation.org LKML-Reference: <20090415182234R.fujita.tomonori@lab.ntt.co.jp> Signed-off-by:
Ingo Molnar <mingo@elte.hu>
-
- Mar 30, 2009
-
-
Randy Dunlap authored
Fix printk format warnings in dma-debug: lib/dma-debug.c:645: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t' lib/dma-debug.c:662: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t' lib/dma-debug.c:676: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t' lib/dma-debug.c:686: warning: format '%016llx' expects type 'long long unsigned int', but argument 6 has type 'dma_addr_t' Signed-off-by:
Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
-
- Mar 24, 2009
-
-
Joerg Roedel authored
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>
-
- Mar 19, 2009
-
-
FUJITA Tomonori authored
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>
-
- Mar 17, 2009
-
-
Joerg Roedel authored
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>
-
Joerg Roedel authored
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>
-
David Woodhouse authored
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>
-
David Woodhouse authored
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>
-
- Mar 05, 2009
-
-
Joerg Roedel authored
Impact: add debug callbacks for dma_sync_sg_* functions Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
Impact: add debug callbacks for dma_sync_single_range_for_* functions Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
Impact: add debug callbacks for dma_sync_single_for_* functions Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
Impact: add debug callbacks for dma_[alloc|free]_coherent Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-
Joerg Roedel authored
Impact: add debug callbacks for dma_{un}map_sg Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>
-