From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> Date: Mon, 24 Mar 2025 13:05:12 +0100 The label “discard” was used to jump to another pointer check despite of the detail in the implementation of the function “mei_cl_irq_read_msg” that it was determined already that a corresponding variable contained a null pointer. * Thus use an additional label instead. * Delete a redundant check. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx> --- V3: The label selection was adjusted according to the naming preferences of Alexander Usyskin. https://lore.kernel.org/cocci/CY5PR11MB6366D07A7F302780A87160E6EDCB2@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/ V2: * The summary phrase was adjusted a bit. * The Fixes tags were omitted. * The change suggestion was rebased on source files of the software “Linux next-20250228”. drivers/misc/mei/interrupt.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/misc/mei/interrupt.c b/drivers/misc/mei/interrupt.c index b09b79fedaba..78a01b402ea4 100644 --- a/drivers/misc/mei/interrupt.c +++ b/drivers/misc/mei/interrupt.c @@ -116,11 +116,11 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl, if (!cb) { if (!mei_cl_is_fixed_address(cl)) { cl_err(dev, cl, "pending read cb not found\n"); - goto discard; + goto discard_nocb; } cb = mei_cl_alloc_cb(cl, mei_cl_mtu(cl), MEI_FOP_READ, cl->fp); if (!cb) - goto discard; + goto discard_nocb; list_add_tail(&cb->list, &cl->rd_pending); } @@ -236,8 +236,8 @@ static int mei_cl_irq_read_msg(struct mei_cl *cl, return 0; discard: - if (cb) - list_move_tail(&cb->list, cmpl_list); + list_move_tail(&cb->list, cmpl_list); +discard_nocb: mei_irq_discard_msg(dev, mei_hdr, length); return 0; } -- 2.49.0