netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [patch] bridge: simplify br_getlink() a bit
@ 2015-01-21  9:22 Dan Carpenter
  2015-01-21 20:02 ` Stephen Hemminger
  2015-01-26  7:33 ` David Miller
  0 siblings, 2 replies; 3+ messages in thread
From: Dan Carpenter @ 2015-01-21  9:22 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev, bridge, kernel-janitors, David S. Miller

Static checkers complain that we should maybe set "ret" before we do the
"goto out;".  They interpret the NULL return from br_port_get_rtnl() as
a failure and forgetting to set the error code is a common bug in this
situation.

The code is confusing but it's actually correct.  We are returning zero
deliberately.  Let's re-write it a bit to be more clear.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
index 528cf27..3875ea51 100644
--- a/net/bridge/br_netlink.c
+++ b/net/bridge/br_netlink.c
@@ -311,17 +311,14 @@ errout:
 int br_getlink(struct sk_buff *skb, u32 pid, u32 seq,
 	       struct net_device *dev, u32 filter_mask)
 {
-	int err = 0;
 	struct net_bridge_port *port = br_port_get_rtnl(dev);
 
 	if (!port && !(filter_mask & RTEXT_FILTER_BRVLAN) &&
 	    !(filter_mask & RTEXT_FILTER_BRVLAN_COMPRESSED))
-		goto out;
+		return 0;
 
-	err = br_fill_ifinfo(skb, port, pid, seq, RTM_NEWLINK, NLM_F_MULTI,
-			     filter_mask, dev);
-out:
-	return err;
+	return br_fill_ifinfo(skb, port, pid, seq, RTM_NEWLINK, NLM_F_MULTI,
+			      filter_mask, dev);
 }
 
 static int br_vlan_info(struct net_bridge *br, struct net_bridge_port *p,

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [patch] bridge: simplify br_getlink() a bit
  2015-01-21  9:22 [patch] bridge: simplify br_getlink() a bit Dan Carpenter
@ 2015-01-21 20:02 ` Stephen Hemminger
  2015-01-26  7:33 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: Stephen Hemminger @ 2015-01-21 20:02 UTC (permalink / raw)
  To: Dan Carpenter; +Cc: David S. Miller, bridge, netdev, kernel-janitors

On Wed, 21 Jan 2015 12:22:35 +0300
Dan Carpenter <dan.carpenter@oracle.com> wrote:

> Static checkers complain that we should maybe set "ret" before we do the
> "goto out;".  They interpret the NULL return from br_port_get_rtnl() as
> a failure and forgetting to set the error code is a common bug in this
> situation.
> 
> The code is confusing but it's actually correct.  We are returning zero
> deliberately.  Let's re-write it a bit to be more clear.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
> index 528cf27..3875ea51 100644
> --- a/net/bridge/br_netlink.c
> +++ b/net/bridge/br_netlink.c
> @@ -311,17 +311,14 @@ errout:
>  int br_getlink(struct sk_buff *skb, u32 pid, u32 seq,
>  	       struct net_device *dev, u32 filter_mask)
>  {
> -	int err = 0;
>  	struct net_bridge_port *port = br_port_get_rtnl(dev);
>  
>  	if (!port && !(filter_mask & RTEXT_FILTER_BRVLAN) &&
>  	    !(filter_mask & RTEXT_FILTER_BRVLAN_COMPRESSED))
> -		goto out;
> +		return 0;
>  
> -	err = br_fill_ifinfo(skb, port, pid, seq, RTM_NEWLINK, NLM_F_MULTI,
> -			     filter_mask, dev);
> -out:
> -	return err;
> +	return br_fill_ifinfo(skb, port, pid, seq, RTM_NEWLINK, NLM_F_MULTI,
> +			      filter_mask, dev);
>  }
>  
>  static int br_vlan_info(struct net_bridge *br, struct net_bridge_port *p,

That looks fine.
Acked-by: Stephen Hemminger <stephen@networkplumber.org>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [patch] bridge: simplify br_getlink() a bit
  2015-01-21  9:22 [patch] bridge: simplify br_getlink() a bit Dan Carpenter
  2015-01-21 20:02 ` Stephen Hemminger
@ 2015-01-26  7:33 ` David Miller
  1 sibling, 0 replies; 3+ messages in thread
From: David Miller @ 2015-01-26  7:33 UTC (permalink / raw)
  To: dan.carpenter; +Cc: stephen, bridge, netdev, kernel-janitors

From: Dan Carpenter <dan.carpenter@oracle.com>
Date: Wed, 21 Jan 2015 12:22:35 +0300

> Static checkers complain that we should maybe set "ret" before we do the
> "goto out;".  They interpret the NULL return from br_port_get_rtnl() as
> a failure and forgetting to set the error code is a common bug in this
> situation.
> 
> The code is confusing but it's actually correct.  We are returning zero
> deliberately.  Let's re-write it a bit to be more clear.
> 
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Applied to net-next, thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-01-26  7:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-21  9:22 [patch] bridge: simplify br_getlink() a bit Dan Carpenter
2015-01-21 20:02 ` Stephen Hemminger
2015-01-26  7:33 ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).