diff options
Diffstat (limited to 'kernel/rpmsg/ethosu_rpmsg_network.c')
-rw-r--r-- | kernel/rpmsg/ethosu_rpmsg_network.c | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/kernel/rpmsg/ethosu_rpmsg_network.c b/kernel/rpmsg/ethosu_rpmsg_network.c index 38d7db2..cf36f2d 100644 --- a/kernel/rpmsg/ethosu_rpmsg_network.c +++ b/kernel/rpmsg/ethosu_rpmsg_network.c @@ -108,7 +108,7 @@ static long ethosu_rpmsg_network_ioctl(struct file *file, case ETHOSU_IOCTL_NETWORK_INFO: { struct ethosu_uapi_network_info uapi = { 0 }; - dev_dbg(dev, "Network ioctl: Network info. net=0x%pK\n", net); + dev_dbg(dev, "Network ioctl: Network info. net=0x%pK", net); ret = ethosu_rpmsg_network_info_request(dev, net->mailbox, net, &uapi); @@ -122,12 +122,14 @@ static long ethosu_rpmsg_network_ioctl(struct file *file, struct ethosu_uapi_inference_create uapi; if (copy_from_user(&uapi, udata, sizeof(uapi))) { + dev_err(dev, + "Network ioctl: Failed to copy inference request"); ret = -EFAULT; break; } dev_dbg(dev, - "Network ioctl: Inference. ifm_fd=%u, ofm_fd=%u\n", + "Network ioctl: Inference. ifm_fd=%u, ofm_fd=%u", uapi.ifm_fd[0], uapi.ofm_fd[0]); ret = ethosu_rpmsg_inference_create(dev, net->mailbox, net, @@ -156,8 +158,11 @@ int ethosu_rpmsg_network_create(struct device *dev, int ret; net = devm_kzalloc(dev, sizeof(*net), GFP_KERNEL); - if (!net) + if (!net) { + dev_err(dev, "Network create. Failed to allocate struct"); + return -ENOMEM; + } net->dev = dev; net->mailbox = mailbox; @@ -166,13 +171,15 @@ int ethosu_rpmsg_network_create(struct device *dev, switch (uapi->type) { case ETHOSU_UAPI_NETWORK_USER_BUFFER: if (!uapi->network.data_ptr) { - dev_err(dev, "Invalid network data ptr\n"); + dev_err(dev, + "Network create. Invalid network data ptr"); ret = -EINVAL; goto free_net; } if (!uapi->network.size) { - dev_err(dev, "Invalid network data size\n"); + dev_err(dev, + "Network create. Invalid network data size"); ret = -EINVAL; goto free_net; } @@ -180,20 +187,29 @@ int ethosu_rpmsg_network_create(struct device *dev, net->dma_mem = ethosu_dma_mem_alloc(dev, uapi->network.size); if (IS_ERR(net->dma_mem)) { ret = PTR_ERR(net->dma_mem); + dev_err(dev, + "Network create. Failed to allocate DMA memory. ret=%d", + ret); goto free_net; } data = u64_to_user_ptr(uapi->network.data_ptr); ret = copy_from_user(net->dma_mem->cpu_addr, data, uapi->network.size); - if (ret) + if (ret) { + dev_err(dev, + "Network create. Failed to copy network data from user buffer. ret=%d", + ret); goto free_dma_mem; + } break; case ETHOSU_UAPI_NETWORK_INDEX: net->index = uapi->index; break; default: + dev_err(dev, "Network create. Invalid buffer type. type=%u", + uapi->type); ret = -EINVAL; goto free_net; } @@ -201,8 +217,12 @@ int ethosu_rpmsg_network_create(struct device *dev, ret = anon_inode_getfd("ethosu-network", ðosu_rpmsg_network_fops, net, O_RDWR | O_CLOEXEC); - if (ret < 0) + if (ret < 0) { + dev_err(dev, + "Network create. Failed to get file descriptor. ret=%d", + ret); goto free_dma_mem; + } net->file = fget(ret); fput(net->file); |