diff options
Diffstat (limited to 'kernel/common/ethosu_buffer.c')
-rw-r--r-- | kernel/common/ethosu_buffer.c | 19 |
1 files changed, 16 insertions, 3 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; |