lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 11 Jan 2009 15:25:42 +0900 From: FUJITA Tomonori <fujita.tomonori@....ntt.co.jp> To: joerg.roedel@....com Cc: linux-kernel@...r.kernel.org, mingo@...hat.com, dwmw2@...radead.org, fujita.tomonori@....ntt.co.jp, netdev@...r.kernel.org, iommu@...ts.linux-foundation.org Subject: Re: [PATCH 11/16] dma-debug: add checking for [alloc|free]_coherent On Fri, 9 Jan 2009 17:19:25 +0100 Joerg Roedel <joerg.roedel@....com> wrote: > Impact: add debug callbacks for dma_[alloc|free]_coherent > > Signed-off-by: Joerg Roedel <joerg.roedel@....com> > --- > include/linux/dma-debug.h | 16 ++++++++++++++++ > lib/dma-debug.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 61 insertions(+), 0 deletions(-) > > diff --git a/include/linux/dma-debug.h b/include/linux/dma-debug.h > index b2131f4..a28a701 100644 > --- a/include/linux/dma-debug.h > +++ b/include/linux/dma-debug.h > @@ -40,6 +40,12 @@ extern void debug_map_sg(struct device *dev, struct scatterlist *sg, > extern void debug_unmap_sg(struct device *dev, struct scatterlist *sglist, > int nelems, int dir); > > +extern void debug_alloc_coherent(struct device *dev, size_t size, > + dma_addr_t dma_addr, void *virt); > + > +extern void debug_free_coherent(struct device *dev, size_t size, > + void *virt, dma_addr_t addr); > + > #else /* CONFIG_DMA_API_DEBUG */ > > static inline void dma_debug_init(u32 num_entries) > @@ -68,6 +74,16 @@ static inline void debug_unmap_sg(struct device *dev, > { > } > > +static inline void debug_alloc_coherent(struct device *dev, size_t size, > + dma_addr_t dma_addr, void *virt) > +{ > +} > + > +static inline void debug_free_coherent(struct device *dev, size_t size, > + void *virt, dma_addr_t addr) > +{ > +} > + > #endif /* CONFIG_DMA_API_DEBUG */ > > #endif /* __DMA_DEBUG_H */ > diff --git a/lib/dma-debug.c b/lib/dma-debug.c > index e6d45f9..a4a5b0f 100644 > --- a/lib/dma-debug.c > +++ b/lib/dma-debug.c > @@ -604,3 +604,48 @@ void debug_unmap_sg(struct device *dev, struct scatterlist *sglist, > } > EXPORT_SYMBOL(debug_unmap_sg); > > +void debug_alloc_coherent(struct device *dev, size_t size, > + dma_addr_t dma_addr, void *virt) > +{ > + struct dma_debug_entry *entry; > + > + if (global_disable) > + return; > + > + if (dma_addr == bad_dma_address) > + return; Only X86 has 'bad_dma_address' (IA64 also has with some configurations though). You need to use dma_mapping_error, as I pointed out in the previous submission. I recommend you to try this on one non-x86 box (at least). Even if you don't have non x86, you can use cross compiler. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists