diff options
Diffstat (limited to 'kernel/common')
-rw-r--r-- | kernel/common/ethosu_buffer.c | 19 | ||||
-rw-r--r-- | kernel/common/ethosu_dma_mem.c | 13 |
2 files changed, 27 insertions, 5 deletions
diff --git a/kernel/common/ethosu_buffer.c b/kernel/common/ethosu_buffer.c index cf41b8d..519e270 100644 --- a/kernel/common/ethosu_buffer.c +++ b/kernel/common/ethosu_buffer.c @@ -139,12 +139,18 @@ int ethosu_buffer_create(struct device *dev, struct ethosu_buffer *buf; int ret = -ENOMEM; - if (!size) + if (!size) { + dev_err(dev, "Buffer create. Invalid zero size"); + return -EINVAL; + } buf = devm_kzalloc(dev, sizeof(*buf), GFP_KERNEL); - if (!buf) + if (!buf) { + dev_err(dev, "Buffer create. Failed to allocate struct"); + return -ENOMEM; + } buf->dev = dev; kref_init(&buf->kref); @@ -152,13 +158,20 @@ int ethosu_buffer_create(struct device *dev, buf->dma_mem = ethosu_dma_mem_alloc(dev, size); if (IS_ERR(buf->dma_mem)) { ret = PTR_ERR(buf->dma_mem); + dev_err(dev, + "Buffer create. Failed to allocate DMA memory. ret=%d", + ret); goto free_buf; } ret = anon_inode_getfd("ethosu-buffer", ðosu_buffer_fops, buf, O_RDWR | O_CLOEXEC); - if (ret < 0) + if (ret < 0) { + dev_err(dev, + "Buffer create. Failed to get file descriptor. ret=%d", + ret); goto free_dma; + } buf->file = fget(ret); buf->file->f_mode |= FMODE_LSEEK; 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); |