From 6ccface8e8cb2bc4b05ed2091d9116c444cb6b19 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 7 Jan 2009 23:14:38 +0800 Subject: [PATCH] --- yaml --- r: 127097 b: refs/heads/master c: 49946e7329fa38d79aed1a9ef4a64c320ada305d h: refs/heads/master i: 127095: 128bdeae44e9307ed0ba602b685c323d32e57550 v: v3 --- [refs] | 2 +- trunk/arch/blackfin/kernel/bfin_dma_5xx.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 537fc64d6b7a..beea4f47a49a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c9e0020d49587b1b214d65256a88a2978329aefe +refs/heads/master: 49946e7329fa38d79aed1a9ef4a64c320ada305d diff --git a/trunk/arch/blackfin/kernel/bfin_dma_5xx.c b/trunk/arch/blackfin/kernel/bfin_dma_5xx.c index 36f78c1648b9..bafb6aea0bc5 100644 --- a/trunk/arch/blackfin/kernel/bfin_dma_5xx.c +++ b/trunk/arch/blackfin/kernel/bfin_dma_5xx.c @@ -596,11 +596,18 @@ void *dma_memcpy(void *dest, const void *src, size_t size) } EXPORT_SYMBOL(dma_memcpy); +/** + * safe_dma_memcpy - DMA memcpy w/argument checking + * + * Verify arguments are safe before heading to dma_memcpy(). + */ void *safe_dma_memcpy(void *dest, const void *src, size_t size) { - void *addr; - addr = dma_memcpy(dest, src, size); - return addr; + if (!access_ok(VERIFY_WRITE, dst, size)) + return NULL; + if (!access_ok(VERIFY_READ, src, size)) + return NULL; + return dma_memcpy(dst, src, size); } EXPORT_SYMBOL(safe_dma_memcpy);