diff options
Diffstat (limited to 'kernel/common/ethosu_dma_mem.c')
-rw-r--r-- | kernel/common/ethosu_dma_mem.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/kernel/common/ethosu_dma_mem.c b/kernel/common/ethosu_dma_mem.c index 0e05978..fd444d2 100644 --- a/kernel/common/ethosu_dma_mem.c +++ b/kernel/common/ethosu_dma_mem.c @@ -35,18 +35,27 @@ struct ethosu_dma_mem *ethosu_dma_mem_alloc(struct device *dev, { struct ethosu_dma_mem *dma_mem; - if (!size) + if (!size) { + dev_err(dev, "DMA mem alloc. Invalid zero size"); + return ERR_PTR(-EINVAL); + } dma_mem = devm_kzalloc(dev, sizeof(*dma_mem), GFP_KERNEL); - if (!dma_mem) + if (!dma_mem) { + dev_err(dev, + "DMA mem alloc. Failed to allocate struct"); + return ERR_PTR(-ENOMEM); + } dma_mem->dev = dev; dma_mem->size = size; dma_mem->cpu_addr = dma_alloc_coherent(dev, size, &dma_mem->dma_addr, GFP_KERNEL); if (!dma_mem->cpu_addr) { + dev_err(dev, "DMA mem alloc. Failed to allocate 0x%02zx bytes", + size); memset(dma_mem, 0, sizeof(*dma_mem)); devm_kfree(dev, dma_mem); |