[PATCH 1/1] cxl/mem: Fix for the index of Clear Event Record Handle

From: Yuquan Wang
Date: Fri Mar 15 2024 - 06:54:50 EST


The dev_dbg info for Clear Event Records mailbox command would report
the handle of the next record to clear not the current one.

This was because the index 'i' had incremented before printing the
current handle value.

This fix also adjusts the index variable name from 'i' to 'clear_cnt'
which can be easier for developers to distinguish and understand.

Signed-off-by: Yuquan Wang <wangyuquan1236@xxxxxxxxxxxxxx>
---
drivers/cxl/core/mbox.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c
index 9adda4795eb7..3ca2845ae6aa 100644
--- a/drivers/cxl/core/mbox.c
+++ b/drivers/cxl/core/mbox.c
@@ -881,7 +881,7 @@ static int cxl_clear_event_record(struct cxl_memdev_state *mds,
struct cxl_mbox_cmd mbox_cmd;
u16 cnt;
int rc = 0;
- int i;
+ int clear_cnt;

/* Payload size may limit the max handles */
if (pl_size > mds->payload_size) {
@@ -908,28 +908,29 @@ static int cxl_clear_event_record(struct cxl_memdev_state *mds,
* Clear Event Records uses u8 for the handle cnt while Get Event
* Record can return up to 0xffff records.
*/
- i = 0;
+ clear_cnt = 0;
for (cnt = 0; cnt < total; cnt++) {
struct cxl_event_record_raw *raw = &get_pl->records[cnt];
struct cxl_event_generic *gen = &raw->event.generic;

- payload->handles[i++] = gen->hdr.handle;
+ payload->handles[clear_cnt] = gen->hdr.handle;
dev_dbg(mds->cxlds.dev, "Event log '%d': Clearing %u\n", log,
- le16_to_cpu(payload->handles[i]));
+ le16_to_cpu(payload->handles[clear_cnt]));

- if (i == max_handles) {
- payload->nr_recs = i;
+ clear_cnt++;
+ if (clear_cnt == max_handles) {
+ payload->nr_recs = clear_cnt;
rc = cxl_internal_send_cmd(mds, &mbox_cmd);
if (rc)
goto free_pl;
- i = 0;
+ clear_cnt = 0;
}
}

/* Clear what is left if any */
- if (i) {
- payload->nr_recs = i;
- mbox_cmd.size_in = struct_size(payload, handles, i);
+ if (clear_cnt) {
+ payload->nr_recs = clear_cnt;
+ mbox_cmd.size_in = struct_size(payload, handles, clear_cnt);
rc = cxl_internal_send_cmd(mds, &mbox_cmd);
if (rc)
goto free_pl;
--
2.34.1