send_cpu_message() doesn't update the result parameter when an error
occurs in its code. Therefore, callers of send_cpu_message() shouldn't use
the result value when the return code indicates error.

This patch fixes a static checker warning in goya_test_cpu_queue(), where
that function did print the result even though the return code from
send_cpu_message() indicated error.

Signed-off-by: Oded Gabbay <oded.gab...@gmail.com>
---
 drivers/misc/habanalabs/goya/goya.c | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/misc/habanalabs/goya/goya.c 
b/drivers/misc/habanalabs/goya/goya.c
index c43bd37fe693..e6f0d49ab71a 100644
--- a/drivers/misc/habanalabs/goya/goya.c
+++ b/drivers/misc/habanalabs/goya/goya.c
@@ -3380,10 +3380,16 @@ int goya_test_cpu_queue(struct hl_device *hdev)
        rc = hdev->asic_funcs->send_cpu_message(hdev, (u32 *) &test_pkt,
                        sizeof(test_pkt), HL_DEVICE_TIMEOUT_USEC, &result);
 
-       if (!rc)
-               dev_info(hdev->dev, "queue test on CPU queue succeeded\n");
-       else
-               dev_err(hdev->dev, "CPU queue test failed (0x%08lX)\n", result);
+       if (!rc) {
+               if (result == ARMCP_PACKET_FENCE_VAL)
+                       dev_info(hdev->dev,
+                               "queue test on CPU queue succeeded\n");
+               else
+                       dev_err(hdev->dev,
+                               "CPU queue test failed (0x%08lX)\n", result);
+       } else {
+               dev_err(hdev->dev, "CPU queue test failed, error %d\n", rc);
+       }
 
        return rc;
 }
-- 
2.18.0

Reply via email to