]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
staging: rtl8712: Fix enqueue_reorder_recvframe()
authorDan Carpenter <dan.carpenter@oracle.com>
Tue, 29 Sep 2020 10:35:48 +0000 (13:35 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 29 Oct 2020 09:11:32 +0000 (10:11 +0100)
[ Upstream commit 29838144f280fc03ca06a621568f34e1d0a65a4f ]

The logic of this function was accidentally broken by a checkpatch
inspired cleanup.  I've modified the code to restore the original
behavior and also make checkpatch happy.

Fixes: 98fe05e21a6e ("staging: rtl8712: Remove unnecesary else after return statement.")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/20200929103548.GA493135@mwanda
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/staging/rtl8712/rtl8712_recv.c

index d83f421acfc1ea0409cbbaf02ebd5ba462494c41..a397dc6231f13bcae18bc806119df5b6f97754b1 100644 (file)
@@ -477,11 +477,14 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl,
        while (!end_of_queue_search(phead, plist)) {
                pnextrframe = container_of(plist, union recv_frame, u.list);
                pnextattrib = &pnextrframe->u.hdr.attrib;
+
+               if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num))
+                       return false;
+
                if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num))
                        plist = plist->next;
-               else if (SN_EQUAL(pnextattrib->seq_num, pattrib->seq_num))
-                       return false;
-               break;
+               else
+                       break;
        }
        list_del_init(&(prframe->u.hdr.list));
        list_add_tail(&(prframe->u.hdr.list), plist);