]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
accel/amdxdna: Reduce log noise during process termination
authorMario Limonciello <mario.limonciello@amd.com>
Tue, 10 Feb 2026 16:42:51 +0000 (10:42 -0600)
committerLizhi Hou <lizhi.hou@amd.com>
Mon, 23 Feb 2026 17:24:16 +0000 (09:24 -0800)
During process termination, several error messages are logged that are
not actual errors but expected conditions when a process is killed or
interrupted. This creates unnecessary noise in the kernel log.

The specific scenarios are:

1. HMM invalidation returns -ERESTARTSYS when the wait is interrupted by
   a signal during process cleanup. This is expected when a process is
   being terminated and should not be logged as an error.

2. Context destruction returns -ENODEV when the firmware or device has
   already stopped, which commonly occurs during cleanup if the device
   was already torn down. This is also an expected condition during
   orderly shutdown.

Downgrade these expected error conditions from error level to debug level
to reduce log noise while still keeping genuine errors visible.

Fixes: 97f27573837e ("accel/amdxdna: Fix potential NULL pointer dereference in context cleanup")
Reviewed-by: Lizhi Hou <lizhi.hou@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Lizhi Hou <lizhi.hou@amd.com>
Link: https://patch.msgid.link/20260210164521.1094274-3-mario.limonciello@amd.com
drivers/accel/amdxdna/aie2_ctx.c
drivers/accel/amdxdna/aie2_message.c

index 7140c3f963625137f0ddcd614c74ff669752556d..e13be76084620f40bf60eaa8c4da99577cf04835 100644 (file)
@@ -497,7 +497,7 @@ static void aie2_release_resource(struct amdxdna_hwctx *hwctx)
 
        if (AIE2_FEATURE_ON(xdna->dev_handle, AIE2_TEMPORAL_ONLY)) {
                ret = aie2_destroy_context(xdna->dev_handle, hwctx);
-               if (ret)
+               if (ret && ret != -ENODEV)
                        XDNA_ERR(xdna, "Destroy temporal only context failed, ret %d", ret);
        } else {
                ret = xrs_release_resource(xdna->xrs_hdl, (uintptr_t)hwctx);
@@ -1070,6 +1070,8 @@ void aie2_hmm_invalidate(struct amdxdna_gem_obj *abo,
 
        ret = dma_resv_wait_timeout(gobj->resv, DMA_RESV_USAGE_BOOKKEEP,
                                    true, MAX_SCHEDULE_TIMEOUT);
-       if (!ret || ret == -ERESTARTSYS)
+       if (!ret)
                XDNA_ERR(xdna, "Failed to wait for bo, ret %ld", ret);
+       else if (ret == -ERESTARTSYS)
+               XDNA_DBG(xdna, "Wait for bo interrupted by signal");
 }
index ab1178850c474eac7f99ec591d4eb8e551549f86..5d80c58377451cc9854781a1c9ddd7d3b68aca5d 100644 (file)
@@ -216,8 +216,10 @@ static int aie2_destroy_context_req(struct amdxdna_dev_hdl *ndev, u32 id)
 
        req.context_id = id;
        ret = aie2_send_mgmt_msg_wait(ndev, &msg);
-       if (ret)
+       if (ret && ret != -ENODEV)
                XDNA_WARN(xdna, "Destroy context failed, ret %d", ret);
+       else if (ret == -ENODEV)
+               XDNA_DBG(xdna, "Destroy context: device already stopped");
 
        return ret;
 }