Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Change the kernel config for scenario test
[kvmfornfv.git]
/
kernel
/
lib
/
swiotlb.c
diff --git
a/kernel/lib/swiotlb.c
b/kernel/lib/swiotlb.c
index
3c365ab
..
76f29ec
100644
(file)
--- a/
kernel/lib/swiotlb.c
+++ b/
kernel/lib/swiotlb.c
@@
-29,10
+29,10
@@
#include <linux/ctype.h>
#include <linux/highmem.h>
#include <linux/gfp.h>
#include <linux/ctype.h>
#include <linux/highmem.h>
#include <linux/gfp.h>
+#include <linux/scatterlist.h>
#include <asm/io.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <asm/dma.h>
-#include <asm/scatterlist.h>
#include <linux/init.h>
#include <linux/bootmem.h>
#include <linux/init.h>
#include <linux/bootmem.h>
@@
-656,7
+656,7
@@
swiotlb_alloc_coherent(struct device *hwdev, size_t size,
*/
phys_addr_t paddr = map_single(hwdev, 0, size, DMA_FROM_DEVICE);
if (paddr == SWIOTLB_MAP_ERROR)
*/
phys_addr_t paddr = map_single(hwdev, 0, size, DMA_FROM_DEVICE);
if (paddr == SWIOTLB_MAP_ERROR)
-
return NULL
;
+
goto err_warn
;
ret = phys_to_virt(paddr);
dev_addr = phys_to_dma(hwdev, paddr);
ret = phys_to_virt(paddr);
dev_addr = phys_to_dma(hwdev, paddr);
@@
-670,7
+670,7
@@
swiotlb_alloc_coherent(struct device *hwdev, size_t size,
/* DMA_TO_DEVICE to avoid memcpy in unmap_single */
swiotlb_tbl_unmap_single(hwdev, paddr,
size, DMA_TO_DEVICE);
/* DMA_TO_DEVICE to avoid memcpy in unmap_single */
swiotlb_tbl_unmap_single(hwdev, paddr,
size, DMA_TO_DEVICE);
-
return NULL
;
+
goto err_warn
;
}
}
}
}
@@
-678,6
+678,13
@@
swiotlb_alloc_coherent(struct device *hwdev, size_t size,
memset(ret, 0, size);
return ret;
memset(ret, 0, size);
return ret;
+
+err_warn:
+ pr_warn("swiotlb: coherent allocation failed for device %s size=%zu\n",
+ dev_name(hwdev), size);
+ dump_stack();
+
+ return NULL;
}
EXPORT_SYMBOL(swiotlb_alloc_coherent);
}
EXPORT_SYMBOL(swiotlb_alloc_coherent);