From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1A055C433F5 for ; Thu, 7 Apr 2022 10:41:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Zd0QH9IAztRxaFKAqR9NgjCQudjMYv3q6GX7OeYK1wQ=; b=n4McE5z+vyyjNv ldDQfUQGqHr+Awl5+dfgscskVjf86us5cVsndq79I7NxOU4JZFDvQQHdLAdx137U/TW6BHt9MM809 Q0/S8YTvhFX5PXHPeyyT/L0FU3aKh3YVuoWARkM8TyiIn99lQ5ub1ERl41JNszd8U1mfc+ha3C5p7 KUe21c0vspOb7cVk/SA4d+0n7dOhEnrahmOW5UUhqqqXrsVSx1DiM7kJuHEOo4ePZbTIVzeDOhPW8 DVhRCslgaJTylyp06fyhZAiXh7gvzCp1/SPXeU0GSnMqTzDCTTvETDI9Z9CE393ciBcGsVp161S8X XAymG26I/uFp+F1pOqIg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncPYF-00BIUP-In; Thu, 07 Apr 2022 10:39:44 +0000 Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ncPQB-00BEK6-Ls for linux-arm-kernel@lists.infradead.org; Thu, 07 Apr 2022 10:31:26 +0000 Received: by mail-ed1-x52d.google.com with SMTP id g20so5866737edw.6 for ; Thu, 07 Apr 2022 03:31:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3dz7iRpPjOAQtKb60hRPumiTA9mriJZxkPOADVGQiSI=; b=csVXAKM3laW2E77iC81ROfBDCan+sJwoxRzz3uDLJ/AabmKqZa/h1OMREIPYbAy7DL YZVWZqsnEJAd2lF5Vh51rxi0XLhDHzl4IcF1325EAqlzudOqQhtWvGInS45hyN46ODYI SMTfSHnCUFxW9DbJu/NTmDfHChOPiKDzbnKLESwBTQvPcRpgkwP+k3ugkjIYb+AjYHLg snQJh9ee6kjEL6c024zYAgMmk0gnDJQij7zVBaIukop0fTcIuQLmgkTK1TT+WCuuurnk S+nmEdW5d35uNuwN0F/7oEz9/VROBtIeFYq8DAlzGrNuL7BvsB6dys36x2tYbGPl5oUF 0Nlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3dz7iRpPjOAQtKb60hRPumiTA9mriJZxkPOADVGQiSI=; b=vQnmAExKda0587d6TkMA/xj2n9HHSGJj4opUbqFneKpfIqpZ7VCCkQ1+QbCXkBgfdf vDDBmv+eHZT4Qq53kbC+mdGJC5ZV1g465EcaA3vJQsqYyPG95yW1k5iDoo4jYNcSNJvy 577+f3GOD1md1kWkZx4NAD7SYrnne8zpJ/94y4tu/qfTLlQptLMLAgtu3RJQYpngE9Aa PP0r7YbvB8s7duTiZF1KskIPRhOl+0psYlw6wUSYaqbctziyN8/SZwJuZaTnahP+JbGA AH7dOYYAT+4lpTPiRdghLanMG+qi8OYS00vXblOYgVXvy2d44H8j31qX1atnOkcvb/P5 Mygw== X-Gm-Message-State: AOAM5318UMPiMqz+EwRfaiam1oEzT3LLPD7wF51Odh+dk1rBwMikVLr5 y1fg2ZSgcLnpNG2evBlkFWs= X-Google-Smtp-Source: ABdhPJxQ1sPmWucPcHlfHIB7U7D25sCQV7UhR+9+JMOOYZh75hPBYM9PTRRRDSmcJXl/2jERur8X/w== X-Received: by 2002:aa7:dd9a:0:b0:41d:d67:3c10 with SMTP id g26-20020aa7dd9a000000b0041d0d673c10mr1172068edv.363.1649327479846; Thu, 07 Apr 2022 03:31:19 -0700 (PDT) Received: from localhost.localdomain (i130160.upc-i.chello.nl. [62.195.130.160]) by smtp.googlemail.com with ESMTPSA id c5-20020a170906d18500b006ce371f09d4sm7413573ejz.57.2022.04.07.03.31.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Apr 2022 03:31:19 -0700 (PDT) From: Jakob Koschel To: "David S. Miller" Cc: Jakub Kicinski , Paolo Abeni , Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , Lars Povlsen , Steen Hegelund , UNGLinuxDriver@microchip.com, Ariel Elior , Manish Chopra , Edward Cree , Martin Habets , Michael Ellerman , Benjamin Herrenschmidt , Paul Mackerras , Jiri Pirko , Casper Andersson , Bjarni Jonasson , Jakob Koschel , Colin Ian King , Michael Walle , Christophe JAILLET , Arnd Bergmann , Eric Dumazet , Di Zhu , Xu Wang , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linuxppc-dev@lists.ozlabs.org, Mike Rapoport , "Brian Johannesmeyer" , Cristiano Giuffrida , "Bos, H.J." Subject: [PATCH net-next 15/15] team: Remove use of list iterator variable for list_for_each_entry_from() Date: Thu, 7 Apr 2022 12:29:00 +0200 Message-Id: <20220407102900.3086255-16-jakobkoschel@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220407102900.3086255-1-jakobkoschel@gmail.com> References: <20220407102900.3086255-1-jakobkoschel@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220407_033123_738563_65056F7A X-CRM114-Status: GOOD ( 17.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org In preparation to limit the scope of the list iterator variable to the list traversal loop, use a dedicated pointer to iterate through the list [1]. Since that variable should not be used past the loop iteration, a separate variable is used to 'remember the current location within the loop'. By avoiding the use of the iterator variable after the loop, we can lower the scope of it to the list traversal macros in the future. To either continue iterating from that position or skip the iteration (if the previous iteration was complete) list_prepare_entry() is used. Link: https://lore.kernel.org/all/CAHk-=wgRr_D8CB-D9Kg-c=EHreAsk5SqXPwr9Y7k9sA6cWXJ6w@mail.gmail.com/ [1] Signed-off-by: Jakob Koschel --- drivers/net/team/team.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index b07dde6f0abf..688c4393f099 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c @@ -2425,17 +2425,17 @@ static int team_nl_send_options_get(struct team *team, u32 portid, u32 seq, int flags, team_nl_send_func_t *send_func, struct list_head *sel_opt_inst_list) { + struct team_option_inst *opt_inst, *tmp = NULL; struct nlattr *option_list; struct nlmsghdr *nlh; void *hdr; - struct team_option_inst *opt_inst; int err; struct sk_buff *skb = NULL; bool incomplete; int i; - opt_inst = list_first_entry(sel_opt_inst_list, - struct team_option_inst, tmp_list); + tmp = list_first_entry(sel_opt_inst_list, + struct team_option_inst, tmp_list); start_again: err = __send_and_alloc_skb(&skb, team, portid, send_func); @@ -2456,7 +2456,9 @@ static int team_nl_send_options_get(struct team *team, u32 portid, u32 seq, goto nla_put_failure; i = 0; + opt_inst = list_prepare_entry(tmp, sel_opt_inst_list, tmp_list); incomplete = false; + tmp = NULL; list_for_each_entry_from(opt_inst, sel_opt_inst_list, tmp_list) { err = team_nl_fill_one_option_get(skb, team, opt_inst); if (err) { @@ -2464,6 +2466,7 @@ static int team_nl_send_options_get(struct team *team, u32 portid, u32 seq, if (!i) goto errout; incomplete = true; + tmp = opt_inst; break; } goto errout; @@ -2707,14 +2710,14 @@ static int team_nl_send_port_list_get(struct team *team, u32 portid, u32 seq, struct nlattr *port_list; struct nlmsghdr *nlh; void *hdr; - struct team_port *port; + struct team_port *port, *tmp = NULL; int err; struct sk_buff *skb = NULL; bool incomplete; int i; - port = list_first_entry_or_null(&team->port_list, - struct team_port, list); + tmp = list_first_entry_or_null(&team->port_list, + struct team_port, list); start_again: err = __send_and_alloc_skb(&skb, team, portid, send_func); @@ -2744,7 +2747,9 @@ static int team_nl_send_port_list_get(struct team *team, u32 portid, u32 seq, err = team_nl_fill_one_port_get(skb, one_port); if (err) goto errout; - } else if (port) { + } else { + port = list_prepare_entry(tmp, &team->port_list, list); + tmp = NULL; list_for_each_entry_from(port, &team->port_list, list) { err = team_nl_fill_one_port_get(skb, port); if (err) { @@ -2752,6 +2757,7 @@ static int team_nl_send_port_list_get(struct team *team, u32 portid, u32 seq, if (!i) goto errout; incomplete = true; + tmp = port; break; } goto errout; -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel