: Avoid sparse warnings in net/ipv4/icmp.c
Subsystems (3)
CHECK net/ipv4/icmp.cnet/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
@@ -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); }
David Miller
maintainerFrom: Eric Dumazet <[email protected]>
Date: Fri, 04 Jan 2008 06:24:20 +0100
Quoted 10 lines
CHECK
net/ipv4/icmp.cnet/ipv4/icmp.c:249:13: warning: context imbalance in 'icmp_xmit_unlock' - unexpected unlocknet/ipv4/icmp.c:376:13: warning: context imbalance in 'icmp_reply' - different lock contexts for basic blocknet/ipv4/icmp.c:430:6: warning: context imbalance in 'icmp_send' - different lock contexts for basic blockSolution is to declare
icmp_xmit_unlock()as__inline__(similar withicmp_xmit_lock())
Please use "inline" instead of "__inline__". If other stuff uses __inline__ in that file, feel free to fix it up too.
Quoted 8 lines · David Miller
From: Eric Dumazet <[email protected]>
Date: Fri, 04 Jan 2008 06:24:20 +0100Quoted 5 lines
CHECK
net/ipv4/icmp.cnet/ipv4/icmp.c:249:13: warning: context imbalance in 'icmp_xmit_unlock' - unexpected unlocknet/ipv4/icmp.c:376:13: warning: context imbalance in 'icmp_reply' - different lock contexts for basic blocknet/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 withicmp_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.cnet/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
@@ -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); }
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.