[PATCH 2/2] drm/amd/ras: take a log batch id only once there is something to log
Xiang Liu <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx |
|---|---|
| Message-ID | <[email protected]> |
The id is claimed before the banks are read, so a poll that ends up logging nothing still burns one and leaves a gap that every reader of the log then has to walk over. Claim it when the first record of the batch is about to go in. Signed-off-by: Xiang Liu <[email protected]> --- drivers/gpu/drm/amd/ras/core/aca.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/amd/ras/core/aca.c b/drivers/gpu/drm/amd/ras/core/aca.c index 881681ea9f3f..4289e968d331 100644 --- a/drivers/gpu/drm/amd/ras/core/aca.c +++ b/drivers/gpu/drm/amd/ras/core/aca.c @@ -394,10 +394,6 @@ static int aca_banks_update(struct ras_core_context *ras_core, if (!count) goto out; - /* Only one MCE error is logged for each batch */ - if (ecc_type != RAS_ERR_TYPE__MCE) - batch_tag = ras_log_ring_create_batch_tag(ras_core); - for (i = 0; i < count; i++) { memset(&bank, 0, sizeof(bank)); ret = aca_dump_bank(ras_core, ecc_type, i, &bank); @@ -420,6 +416,10 @@ static int aca_banks_update(struct ras_core_context *ras_core, bank.seq_no = aca_get_bank_seqno(ras_core, ecc_type, aca_blk, &bank_ecc); + /* Only one MCE error is logged for each batch */ + if (ecc_type != RAS_ERR_TYPE__MCE && !batch_tag) + batch_tag = ras_log_ring_create_batch_tag(ras_core); + aca_log_bank_data(ras_core, &bank, &bank_ecc, batch_tag); aca_bank_log(ras_core, i, count, &bank, &bank_ecc); -- 2.34.1