diff mbox

Sparse Warnings: net/ipv6/route.c:521:17: sparse: context imbalance in 'rt6_probe' - different lock contexts for basic block

Message ID 20130121.154803.1415897555788515730.davem@davemloft.net
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

David Miller Jan. 21, 2013, 8:48 p.m. UTC
From: Peter Hüwe <PeterHuewe@gmx.de>

Date: Mon, 21 Jan 2013 21:03:17 +0100

> Hi YOSHIFUJI,

> 

> FYI, there are new sparse warnings show up in

> 

> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git

> branch: master

> head:   887c95cc1da53f66a5890fdeab13414613010097

> commit: 2152caea719657579daa3a1a57a5425a3db6d612 [185/189] ipv6: Do not depend 

> on rt->n in rt6_probe().

> 

>>> net/ipv6/route.c:521:17: sparse: context imbalance in 'rt6_probe' - 

> different lock contexts for basic block

> 

> On latest net-next/master it's

> net/ipv6/route.c:500:17: warning: context imbalance in 'rt6_probe' - different 

> lock contexts for basic block

> 

> 

> Reported-by: Fengguang Wu <fengguang.wu@intel.com>

> Reported-by: Peter Huewe <peterhuewe@gmx.de>


This is fixed by:

commit b820bb6b996966d93a5442b5fbf803ea58e7f487
Author: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org>
Date:   Mon Jan 21 09:58:50 2013 +0000

    ndisc: Do not try to update "updated" time if neighbour has already gone.
    
    Commit 2152caea ("ipv6: Do not depend on rt->n in rt6_probe().")
    introduce a bug to try to update "updated" time in neighbour
    structure.
    Update the "updated" time only if neighbour is available.
    
    Bug was found by Dan Carpenter <dan.carpenter@oracle.com>
    
    Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>

    Signed-off-by: David S. Miller <davem@davemloft.net>

Comments

Peter Hüwe Jan. 21, 2013, 8:56 p.m. UTC | #1
Hi David,
Am Montag, 21. Januar 2013, 21:48:03 schrieb David Miller:
> From: Peter Hüwe <PeterHuewe@gmx.de>
> Date: Mon, 21 Jan 2013 21:03:17 +0100
> 
> > Hi YOSHIFUJI,
> > 
> > FYI, there are new sparse warnings show up in
> > 
> > tree:   git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
> > branch: master
> > head:   887c95cc1da53f66a5890fdeab13414613010097
> > commit: 2152caea719657579daa3a1a57a5425a3db6d612 [185/189] ipv6: Do not
> > depend on rt->n in rt6_probe().
> > 
> >>> net/ipv6/route.c:521:17: sparse: context imbalance in 'rt6_probe' -
> > 
> > different lock contexts for basic block
> > 
> > On latest net-next/master it's
> > net/ipv6/route.c:500:17: warning: context imbalance in 'rt6_probe' -
> > different lock contexts for basic block
> > 
> > 
> > Reported-by: Fengguang Wu <fengguang.wu@intel.com>
> > Reported-by: Peter Huewe <peterhuewe@gmx.de>
> 
> This is fixed by:
> 
> commit b820bb6b996966d93a5442b5fbf803ea58e7f487
> Author: YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org>
> Date:   Mon Jan 21 09:58:50 2013 +0000

Great! Thanks.
Wasn't online a few minutes ago when I checked, so sorry for the noise.
Sparse warning is gone.

Thanks
PeterH
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 2d94d5a..f3328bc 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -492,10 +492,10 @@  static void rt6_probe(struct rt6_info *rt)
 		struct in6_addr mcaddr;
 		struct in6_addr *target;
 
-		neigh->updated = jiffies;
-
-		if (neigh)
+		if (neigh) {
+			neigh->updated = jiffies;
 			write_unlock(&neigh->lock);
+		}
 
 		target = (struct in6_addr *)&rt->rt6i_gateway;
 		addrconf_addr_solict_mult(target, &mcaddr);