diff options
Diffstat (limited to 'kernel/rpmsg/ethosu_rpmsg_inference.c')
-rw-r--r-- | kernel/rpmsg/ethosu_rpmsg_inference.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/kernel/rpmsg/ethosu_rpmsg_inference.c b/kernel/rpmsg/ethosu_rpmsg_inference.c index b6288ef..dd88a8a 100644 --- a/kernel/rpmsg/ethosu_rpmsg_inference.c +++ b/kernel/rpmsg/ethosu_rpmsg_inference.c @@ -278,16 +278,20 @@ int ethosu_rpmsg_inference_create(struct device *dev, if (uapi->ifm_count > ETHOSU_FD_MAX || uapi->ofm_count > ETHOSU_FD_MAX) { - dev_warn(dev, - "Too many IFM and/or OFM buffers for inference. ifm_count=%u, ofm_count=%u", - uapi->ifm_count, uapi->ofm_count); + dev_err(dev, + "Inference create. Too many IFM and/or OFM buffers for inference. ifm_count=%u, ofm_count=%u", + uapi->ifm_count, uapi->ofm_count); return -EFAULT; } inf = devm_kzalloc(dev, sizeof(*inf), GFP_KERNEL); - if (!inf) + if (!inf) { + dev_err(dev, + "Inference create. Failed to allocate struct"); + return -ENOMEM; + } inf->dev = dev; inf->mailbox = mailbox; @@ -308,6 +312,9 @@ int ethosu_rpmsg_inference_create(struct device *dev, inf->ifm[i] = ethosu_buffer_get_from_fd(uapi->ifm_fd[i]); if (IS_ERR(inf->ifm[i])) { ret = PTR_ERR(inf->ifm[i]); + dev_err(dev, + "Inference create. Failed to get IFM buffer%u ret=%d", + i, ret); goto put_ifm; } @@ -319,6 +326,9 @@ int ethosu_rpmsg_inference_create(struct device *dev, inf->ofm[i] = ethosu_buffer_get_from_fd(uapi->ofm_fd[i]); if (IS_ERR(inf->ofm[i])) { ret = PTR_ERR(inf->ofm[i]); + dev_err(dev, + "Inference create. Failed to get OFM buffer%u ret=%d", + i, ret); goto put_ofm; } @@ -353,8 +363,13 @@ int ethosu_rpmsg_inference_create(struct device *dev, ret = fd = anon_inode_getfd("ethosu-inference", ðosu_rpmsg_inference_fops, inf, O_RDWR | O_CLOEXEC); - if (ret < 0) + if (ret < 0) { + dev_err(dev, + "Inference create. Failed to get file descriptor. ret=%d", + ret); + goto put_net; + } /* Store pointer to file structure */ inf->file = fget(ret); |