All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Oltean <vladimir.oltean@nxp.com>
To: netdev@vger.kernel.org, Ido Schimmel <idosch@nvidia.com>
Cc: Jakub Kicinski <kuba@kernel.org>,
	"David S. Miller" <davem@davemloft.net>,
	Roopa Prabhu <roopa@nvidia.com>,
	Nikolay Aleksandrov <nikolay@nvidia.com>,
	Andrew Lunn <andrew@lunn.ch>,
	Florian Fainelli <f.fainelli@gmail.com>,
	Vivien Didelot <vivien.didelot@gmail.com>,
	Vladimir Oltean <olteanv@gmail.com>, Jiri Pirko <jiri@nvidia.com>
Subject: [PATCH net-next 5/8] net: bridge: reduce indentation level in fdb_create
Date: Tue, 26 Oct 2021 17:27:40 +0300	[thread overview]
Message-ID: <20211026142743.1298877-6-vladimir.oltean@nxp.com> (raw)
In-Reply-To: <20211026142743.1298877-1-vladimir.oltean@nxp.com>

We can express the same logic without an "if" condition as big as the
function, just return early if the kmem_cache_alloc() call fails.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 net/bridge/br_fdb.c | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index 09e7a1dd9e3c..f2b909aedabf 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -382,23 +382,26 @@ static struct net_bridge_fdb_entry *fdb_create(struct net_bridge *br,
 					       unsigned long flags)
 {
 	struct net_bridge_fdb_entry *fdb;
+	int err;
 
 	fdb = kmem_cache_alloc(br_fdb_cache, GFP_ATOMIC);
-	if (fdb) {
-		memcpy(fdb->key.addr.addr, addr, ETH_ALEN);
-		WRITE_ONCE(fdb->dst, source);
-		fdb->key.vlan_id = vid;
-		fdb->flags = flags;
-		fdb->updated = fdb->used = jiffies;
-		if (rhashtable_lookup_insert_fast(&br->fdb_hash_tbl,
-						  &fdb->rhnode,
-						  br_fdb_rht_params)) {
-			kmem_cache_free(br_fdb_cache, fdb);
-			fdb = NULL;
-		} else {
-			hlist_add_head_rcu(&fdb->fdb_node, &br->fdb_list);
-		}
+	if (!fdb)
+		return NULL;
+
+	memcpy(fdb->key.addr.addr, addr, ETH_ALEN);
+	WRITE_ONCE(fdb->dst, source);
+	fdb->key.vlan_id = vid;
+	fdb->flags = flags;
+	fdb->updated = fdb->used = jiffies;
+	err = rhashtable_lookup_insert_fast(&br->fdb_hash_tbl, &fdb->rhnode,
+					    br_fdb_rht_params);
+	if (err) {
+		kmem_cache_free(br_fdb_cache, fdb);
+		return NULL;
 	}
+
+	hlist_add_head_rcu(&fdb->fdb_node, &br->fdb_list);
+
 	return fdb;
 }
 
-- 
2.25.1


  parent reply	other threads:[~2021-10-26 14:28 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-26 14:27 [PATCH net-next 0/8] Bridge FDB refactoring Vladimir Oltean
2021-10-26 14:27 ` [PATCH net-next 1/8] net: bridge: remove fdb_notify forward declaration Vladimir Oltean
2021-10-27  7:45   ` Ido Schimmel
2021-10-27  8:29   ` Nikolay Aleksandrov
2021-10-26 14:27 ` [PATCH net-next 2/8] net: bridge: remove fdb_insert " Vladimir Oltean
2021-10-27  7:47   ` Ido Schimmel
2021-10-27  8:29   ` Nikolay Aleksandrov
2021-10-26 14:27 ` [PATCH net-next 3/8] net: bridge: rename fdb_insert to fdb_add_local Vladimir Oltean
2021-10-27  7:51   ` Ido Schimmel
2021-10-27  8:31   ` Nikolay Aleksandrov
2021-10-26 14:27 ` [PATCH net-next 4/8] net: bridge: rename br_fdb_insert to br_fdb_add_local Vladimir Oltean
2021-10-27  7:54   ` Ido Schimmel
2021-10-27  8:32   ` Nikolay Aleksandrov
2021-10-26 14:27 ` Vladimir Oltean [this message]
2021-10-27  8:05   ` [PATCH net-next 5/8] net: bridge: reduce indentation level in fdb_create Ido Schimmel
2021-10-27  8:32   ` Nikolay Aleksandrov
2021-10-26 14:27 ` [PATCH net-next 6/8] net: bridge: move br_fdb_replay inside br_switchdev.c Vladimir Oltean
2021-10-27  8:16   ` Ido Schimmel
2021-10-27  8:28     ` Nikolay Aleksandrov
2021-10-27 12:58       ` Vladimir Oltean
2021-10-27 13:04         ` Vladimir Oltean
2021-10-26 14:27 ` [PATCH net-next 7/8] net: bridge: create a common function for populating switchdev FDB entries Vladimir Oltean
2021-10-27  8:26   ` Ido Schimmel
2021-10-27  8:39   ` Nikolay Aleksandrov
2021-10-26 14:27 ` [PATCH net-next 8/8] net: switchdev: merge switchdev_handle_fdb_{add,del}_to_device Vladimir Oltean
2021-10-27  8:46   ` Ido Schimmel
2021-10-27 11:28     ` Vladimir Oltean
2021-10-27 14:40 ` [PATCH net-next 0/8] Bridge FDB refactoring patchwork-bot+netdevbpf
2021-10-27 14:44   ` Nikolay Aleksandrov
2021-10-27 14:46     ` Vladimir Oltean
2021-10-27 14:49       ` Vladimir Oltean

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211026142743.1298877-6-vladimir.oltean@nxp.com \
    --to=vladimir.oltean@nxp.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=idosch@nvidia.com \
    --cc=jiri@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=nikolay@nvidia.com \
    --cc=olteanv@gmail.com \
    --cc=roopa@nvidia.com \
    --cc=vivien.didelot@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.