diff options
author | Mikael Olsson <mikael.olsson@arm.com> | 2024-04-04 17:28:52 +0200 |
---|---|---|
committer | Mikael Olsson <mikael.olsson@arm.com> | 2024-04-08 11:33:31 +0200 |
commit | d80345fa00fea2816787ff3864318382edfd4949 (patch) | |
tree | db4fc59187b1da9ee3c0db0410572c0e9302273f /kernel/rpmsg/ethosu_rpmsg_inference.c | |
parent | b2f4a2cd2de6647c9e6d6d4db9108a81d4757e33 (diff) | |
download | ethos-u-linux-driver-stack-d80345fa00fea2816787ff3864318382edfd4949.tar.gz |
Add additional error logging in NPU driver
To make it easier to distinguish where an error occurred in the NPU
driver, additional logging has been added to the error cases.
Change-Id: I9d744e7adf3ba3098d456d1f3c2859aa0ce66de4
Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
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); |