Re: [PATCH] Staging: rtl8712: removed an unnecessary else statement

From: Larry Finger
Date: Mon Dec 15 2014 - 12:12:45 EST


On 12/15/2014 10:39 AM, Joe Perches wrote:
On Mon, 2014-12-15 at 20:55 +0530, Karthik Nayak wrote:
As per checkpatch warning, removed an unnecessary else statement
proceeding an if statement with a return.

This is not a correct change.
The checkpatch message said "generally".
You still have to verify the code.

diff --git a/drivers/staging/rtl8712/rtl8712_recv.c b/drivers/staging/rtl8712/rtl8712_recv.c
index cd8b444..800b2b3 100644
--- a/drivers/staging/rtl8712/rtl8712_recv.c
+++ b/drivers/staging/rtl8712/rtl8712_recv.c
@@ -496,8 +496,7 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl,
plist = plist->next;
else if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num))
return false;
- else
- break;
+ break;


It's not the same logic.
It would be if the code was:

while (end_of_queue_search(phead, plist) == false) {
pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u);
pnextattrib = &pnextrframe->u.hdr.attrib;
if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num)) {
plist = plist->next;
continue;
} else if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num)) {
return false;
}
break;
}

But that's not necessary.

I have almost been tripped by this warning when the code said

if (...) {
.......
} else if (...) {
.......
return;
} else {
.......
}

Perhaps checkpatch should ignore setting this warning when there is an "else if" in the flow.

Larry

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/