Skip to contentSkip to conversation

: Avoid sparse warnings in net/ipv4/icmp.c

ICMP Applied Eric Dumazet 2 participants 4 messages Jan 4, 2008

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

CHECK net/ipv4/icmp.c
net/ipv4/icmp.c:249:13: warning: context imbalance in 'icmp_xmit_unlock' - unexpected unlock net/ipv4/icmp.c:376:13: warning: context imbalance in 'icmp_reply' - different lock contexts for basic block net/ipv4/icmp.c:430:6: warning: context imbalance in 'icmp_send' - different lock contexts for basic block

Solution is to declare icmp_xmit_unlock() as __inline__ (similar with icmp_xmit_lock())

 net/ipv4/icmp.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
net/ipv4/icmp.c +1 -1
index fc66c8a..01ce07b 100644
@@ -246,7 +246,7 @@ static __inline__ int icmp_xmit_lock(void)
 	return 0;
 }
 
-static void icmp_xmit_unlock(void)
+static __inline__ void icmp_xmit_unlock(void)
 {
 	spin_unlock_bh(&icmp_sock->sk_lock.slock);
 }
maintainer
#1 lore raw

From: Eric Dumazet <[email protected]>
Date: Fri, 04 Jan 2008 06:24:20 +0100

Quoted 10 lines

CHECK net/ipv4/icmp.c
net/ipv4/icmp.c:249:13: warning: context imbalance in 'icmp_xmit_unlock' - unexpected unlock
net/ipv4/icmp.c:376:13: warning: context imbalance in 'icmp_reply' - different lock contexts for basic block
net/ipv4/icmp.c:430:6: warning: context imbalance in 'icmp_send' - different lock contexts for basic block

Solution is to declare icmp_xmit_unlock() as __inline__ (similar with icmp_xmit_lock())

Please use "inline" instead of "__inline__". If other stuff uses __inline__ in that file, feel free to fix it up too.

#2 lore raw
Quoted 8 lines · David Miller

From: Eric Dumazet <[email protected]>
Date: Fri, 04 Jan 2008 06:24:20 +0100

Quoted 5 lines

CHECK net/ipv4/icmp.c
net/ipv4/icmp.c:249:13: warning: context imbalance in 'icmp_xmit_unlock' - unexpected unlock net/ipv4/icmp.c:376:13: warning: context imbalance in 'icmp_reply' - different lock contexts for basic block net/ipv4/icmp.c:430:6: warning: context imbalance in 'icmp_send' - different lock contexts for basic block

Quoted 5 lines
Quoted 1 line

Solution is to declare icmp_xmit_unlock() as __inline__ (similar with icmp_xmit_lock())

Please use "inline" instead of "__inline__". If other stuff uses __inline__ in that file, feel free to fix it up too.

You are right, here is the updated version

Thank you

[ICMP]: Avoid sparse warnings in net/ipv4/icmp.c

CHECK net/ipv4/icmp.c
net/ipv4/icmp.c:249:13: warning: context imbalance in 'icmp_xmit_unlock' - unexpected unlock net/ipv4/icmp.c:376:13: warning: context imbalance in 'icmp_reply' - different lock contexts for basic block net/ipv4/icmp.c:430:6: warning: context imbalance in 'icmp_send' - different lock contexts for basic block

Solution is to declare both icmp_xmit_lock() and icmp_xmit_unlock() as inline

 net/ipv4/icmp.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
net/ipv4/icmp.c +2 -2
index fc66c8a..1c256ff 100644
@@ -232,7 +232,7 @@ static const struct icmp_control icmp_pointers[NR_ICMP_TYPES+1];
 static DEFINE_PER_CPU(struct sock *, __icmp_sock) = NULL;
 #define icmp_sock	__get_cpu_var(__icmp_sock)
 
-static __inline__ int icmp_xmit_lock(void)
+static inline int icmp_xmit_lock(void)
 {
 	local_bh_disable();
 
@@ -246,7 +246,7 @@ static __inline__ int icmp_xmit_lock(void)
 	return 0;
 }
 
-static void icmp_xmit_unlock(void)
+static inline void icmp_xmit_unlock(void)
 {
 	spin_unlock_bh(&icmp_sock->sk_lock.slock);
 }
maintainer Applied
#3 lore raw

From: Eric Dumazet <[email protected]>
Date: Fri, 04 Jan 2008 06:34:28 +0100

Quoted 5 lines
Quoted 2 lines · David Miller

Please use "inline" instead of "__inline__". If other stuff uses __inline__ in that file, feel free to fix it up too.

You are right, here is the updated version

Applied, thanks Eric.