{"id":831088,"url":"http://patchwork.ozlabs.org/api/1.2/patches/831088/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/963dcdd9de537456065de7786f8a21acdf756e85.1509080630.git.garsilva@embeddedor.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/1.2/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<963dcdd9de537456065de7786f8a21acdf756e85.1509080630.git.garsilva@embeddedor.com>","list_archive_url":null,"date":"2017-10-27T05:51:04","name":"[v3,1/2] net: netrom: nr_route: refactor code in nr_add_node","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"4fc9b5519670c88b85629e76fceb2caed487c72e","submitter":{"id":71553,"url":"http://patchwork.ozlabs.org/api/1.2/people/71553/?format=json","name":"Gustavo A. R. Silva","email":"garsilva@embeddedor.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/1.2/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/963dcdd9de537456065de7786f8a21acdf756e85.1509080630.git.garsilva@embeddedor.com/mbox/","series":[{"id":10494,"url":"http://patchwork.ozlabs.org/api/1.2/series/10494/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=10494","date":"2017-10-27T05:51:08","name":"refactor code and mark expected switch fall-throughs","version":3,"mbox":"http://patchwork.ozlabs.org/series/10494/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/831088/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/831088/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":"ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3yNY1c0xwPz9ryk\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 27 Oct 2017 16:52:36 +1100 (AEDT)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751639AbdJ0Fwe (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 27 Oct 2017 01:52:34 -0400","from gateway20.websitewelcome.com ([192.185.46.107]:11275 \"EHLO\n\tgateway20.websitewelcome.com\" rhost-flags-OK-OK-OK-OK)\n\tby vger.kernel.org with ESMTP id S1751072AbdJ0Fwc (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 27 Oct 2017 01:52:32 -0400","from cm15.websitewelcome.com (cm15.websitewelcome.com\n\t[100.42.49.9])\n\tby gateway20.websitewelcome.com (Postfix) with ESMTP id 24AE840998293\n\tfor <netdev@vger.kernel.org>; Fri, 27 Oct 2017 00:51:05 -0500 (CDT)","from gator4166.hostgator.com ([108.167.133.22]) by cmsmtp with SMTP\n\tid 7xXteHScp5b6T7xXteXW65; Fri, 27 Oct 2017 00:51:05 -0500","from [189.145.38.148] (port=58288 helo=embeddedor)\n\tby gator4166.hostgator.com with esmtpa (Exim 4.87)\n\t(envelope-from <garsilva@embeddedor.com>)\n\tid 1e7xXs-0021ZS-Nw; Fri, 27 Oct 2017 00:51:04 -0500"],"Date":"Fri, 27 Oct 2017 00:51:04 -0500","From":"\"Gustavo A. R. Silva\" <garsilva@embeddedor.com>","To":"Ralf Baechle <ralf@linux-mips.org>,\n\t\"David S. Miller\" <davem@davemloft.net>","Cc":"linux-hams@vger.kernel.org, netdev@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\t\"Gustavo A. R. Silva\" <garsilva@embeddedor.com>","Subject":"[PATCH v3 1/2] net: netrom: nr_route: refactor code in nr_add_node","Message-ID":"<963dcdd9de537456065de7786f8a21acdf756e85.1509080630.git.garsilva@embeddedor.com>","References":"<cover.1509080630.git.garsilva@embeddedor.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<cover.1509080630.git.garsilva@embeddedor.com>","User-Agent":"Mutt/1.5.24 (2015-08-30)","X-AntiAbuse":["This header was added to track abuse,\n\tplease include it with any abuse report","Primary Hostname - gator4166.hostgator.com","Original Domain - vger.kernel.org","Originator/Caller UID/GID - [47 12] / [47 12]","Sender Address Domain - embeddedor.com"],"X-BWhitelist":"no","X-Source-IP":"189.145.38.148","X-Source-L":"No","X-Exim-ID":"1e7xXs-0021ZS-Nw","X-Source":"","X-Source-Args":"","X-Source-Dir":"","X-Source-Sender":"(embeddedor) [189.145.38.148]:58288","X-Source-Auth":"garsilva@embeddedor.com","X-Email-Count":"11","X-Source-Cap":"Z3V6aWRpbmU7Z3V6aWRpbmU7Z2F0b3I0MTY2Lmhvc3RnYXRvci5jb20=","X-Local-Domain":"yes","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"Code refactoring in order to make the code easier to read and maintain.\n\nSigned-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>\n---\nChanges in v2:\n Make use of the swap macro and remove inline keyword.\n\nChanges in v3:\n Update subject.\n\n net/netrom/nr_route.c | 59 ++++++++++++++-------------------------------------\n 1 file changed, 16 insertions(+), 43 deletions(-)","diff":"diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c\nindex 0c59354..fba4b4c 100644\n--- a/net/netrom/nr_route.c\n+++ b/net/netrom/nr_route.c\n@@ -80,6 +80,19 @@ static struct nr_neigh *nr_neigh_get_dev(ax25_address *callsign,\n \n static void nr_remove_neigh(struct nr_neigh *);\n \n+/*      re-sort the routes in quality order.    */\n+static void re_sort_routes(struct nr_node *nr_node, int x, int y)\n+{\n+\tif (nr_node->routes[y].quality > nr_node->routes[x].quality) {\n+\t\tif (nr_node->which == x)\n+\t\t\tnr_node->which = y;\n+\t\telse if (nr_node->which == y)\n+\t\t\tnr_node->which = x;\n+\n+\t\tswap(nr_node->routes[x], nr_node->routes[y]);\n+\t}\n+}\n+\n /*\n  *\tAdd a new route to a node, and in the process add the node and the\n  *\tneighbour if it is new.\n@@ -90,7 +103,6 @@ static int __must_check nr_add_node(ax25_address *nr, const char *mnemonic,\n {\n \tstruct nr_node  *nr_node;\n \tstruct nr_neigh *nr_neigh;\n-\tstruct nr_route nr_route;\n \tint i, found;\n \tstruct net_device *odev;\n \n@@ -251,49 +263,10 @@ static int __must_check nr_add_node(ax25_address *nr, const char *mnemonic,\n \t/* Now re-sort the routes in quality order */\n \tswitch (nr_node->count) {\n \tcase 3:\n-\t\tif (nr_node->routes[1].quality > nr_node->routes[0].quality) {\n-\t\t\tswitch (nr_node->which) {\n-\t\t\tcase 0:\n-\t\t\t\tnr_node->which = 1;\n-\t\t\t\tbreak;\n-\t\t\tcase 1:\n-\t\t\t\tnr_node->which = 0;\n-\t\t\t\tbreak;\n-\t\t\t}\n-\t\t\tnr_route           = nr_node->routes[0];\n-\t\t\tnr_node->routes[0] = nr_node->routes[1];\n-\t\t\tnr_node->routes[1] = nr_route;\n-\t\t}\n-\t\tif (nr_node->routes[2].quality > nr_node->routes[1].quality) {\n-\t\t\tswitch (nr_node->which) {\n-\t\t\tcase 1:  nr_node->which = 2;\n-\t\t\t\tbreak;\n-\n-\t\t\tcase 2:  nr_node->which = 1;\n-\t\t\t\tbreak;\n-\n-\t\t\tdefault:\n-\t\t\t\tbreak;\n-\t\t\t}\n-\t\t\tnr_route           = nr_node->routes[1];\n-\t\t\tnr_node->routes[1] = nr_node->routes[2];\n-\t\t\tnr_node->routes[2] = nr_route;\n-\t\t}\n+\t\tre_sort_routes(nr_node, 0, 1);\n+\t\tre_sort_routes(nr_node, 1, 2);\n \tcase 2:\n-\t\tif (nr_node->routes[1].quality > nr_node->routes[0].quality) {\n-\t\t\tswitch (nr_node->which) {\n-\t\t\tcase 0:  nr_node->which = 1;\n-\t\t\t\tbreak;\n-\n-\t\t\tcase 1:  nr_node->which = 0;\n-\t\t\t\tbreak;\n-\n-\t\t\tdefault: break;\n-\t\t\t}\n-\t\t\tnr_route           = nr_node->routes[0];\n-\t\t\tnr_node->routes[0] = nr_node->routes[1];\n-\t\t\tnr_node->routes[1] = nr_route;\n-\t\t\t}\n+\t\tre_sort_routes(nr_node, 0, 1);\n \tcase 1:\n \t\tbreak;\n \t}\n","prefixes":["v3","1/2"]}