Remove unneeded packet_socks_nr variable
Subsystems (3)
PATCH 1/1 Remove unneeded packet_socks_nr variable
This one is used only under ifdef PACKET_REFCNT_DEBUG in printk and is not needed otherwise. So hide all this stuff under the PACKET_REFCNT_DEBUG.
---
net/packet/af_packet.c +24 -5
@@ -139,8 +139,30 @@ dev->hard_header == NULL (ll header is added by device, we cannot control it)static HLIST_HEAD (packet_sklist);static DEFINE_RWLOCK (packet_sklist_lock); +#ifdef PACKET_REFCNT_DEBUG static atomic_t packet_socks_nr; +static void packet_sock_inc (void ) +{ +atomic_inc (&packet_socks_nr); +} + +static void packet_sock_dec (void ) +{ +atomic_dec (&packet_socks_nr); +printk (KERN_DEBUG "PACKET socket %p is free, %d are alive\n" , + sk,atomic_read (&packet_socks_nr)); +} +#else +static inline void packet_sock_inc (void ) +{ +} + +static inline void packet_sock_dec (void ) +{ +} +#endif +/* Private packet socket structures. */
@@ -236,10 +258,7 @@ static void packet_sock_destruct(struct sock *sk)return ; } -atomic_dec (&packet_socks_nr); -#ifdef PACKET_REFCNT_DEBUG -printk (KERN_DEBUG "PACKET socket %p is free, %d are alive\n" , sk,atomic_read (&packet_socks_nr)); -#endif +packet_sock_dec (); }
@@ -1010,7 +1029,7 @@ static int packet_create(struct net *net, struct socket *sock, int protocol) po->num = proto; sk->sk_destruct = packet_sock_destruct; -atomic_inc (&packet_socks_nr); +packet_sock_inc ();/* * Attach a protocol block
Signature · 1 line
1.5.3.4
Em Wed, Nov 07, 2007 at 06:32:51PM +0300, Pavel Emelyanov escreveu:
Quoted 5 lines
This one is used only under ifdef
PACKET_REFCNT_DEBUGin printk and is not needed otherwise. So hide all this stuff under thePACKET_REFCNT_DEBUG.Signed-off-by Pavel Emelyanov <[email protected]>
Look at sk_refcnt_debug_inc, etc and you'll se a more standard way. I forgot to make this when making all protocol families use sk_prot, even if just partially :-)
- Arnaldo
Em Wed, Nov 07, 2007 at 01:50:04PM -0200, Arnaldo Carvalho de Melo escreveu:
Quoted 10 lines
Em Wed, Nov 07, 2007 at 06:32:51PM +0300, Pavel Emelyanov escreveu:
Quoted 5 lines
This one is used only under ifdef
PACKET_REFCNT_DEBUGin printk and is not needed otherwise. So hide all this stuff under thePACKET_REFCNT_DEBUG.Signed-off-by Pavel Emelyanov <[email protected]>Look at
sk_refcnt_debug_inc, etc and you'll se a more standard way. I forgot to make this when making all protocol families usesk_prot, even if just partially :-)
As a bonus you'll get this information on /proc/net/protocols, removing '-1' from PACKET column for "sockets".
- Arnaldo
Quoted 6 lines · Arnaldo Carvalho de Melo
Em Wed, Nov 07, 2007 at 01:50:04PM -0200, Arnaldo Carvalho de Melo escreveu:
Quoted 5 lines
Em Wed, Nov 07, 2007 at 06:32:51PM +0300, Pavel Emelyanov escreveu:
Quoted 4 lines
This one is used only under ifdef
PACKET_REFCNT_DEBUGin printk and is not needed otherwise. So hide all this stuff under thePACKET_REFCNT_DEBUG.
Quoted 7 lines
Quoted 4 lines
Quoted 1 line
Signed-off-by Pavel Emelyanov <[email protected]>Look at
sk_refcnt_debug_inc, etc and you'll se a more standard way. I forgot to make this when making all protocol families usesk_prot, even if just partially :-)As a bonus you'll get this information on
/proc/net/protocols, removing '-1' from PACKET column for "sockets".
Hm... I actually thought about this, but I decided that packet sockets were not accounted in this way deliberately.
So, shall I break this "compatibility" (-1 in proc) and provide a packet socket number in this file?
Quoted 1 line
- Arnaldo
Thanks,
Pavel
Em Wed, Nov 07, 2007 at 07:16:14PM +0300, Pavel Emelyanov escreveu:
Quoted 12 lines
Quoted 11 lines · Arnaldo Carvalho de Melo
Em Wed, Nov 07, 2007 at 01:50:04PM -0200, Arnaldo Carvalho de Melo escreveu:
Quoted 9 lines
Em Wed, Nov 07, 2007 at 06:32:51PM +0300, Pavel Emelyanov escreveu:
Quoted 5 lines
This one is used only under ifdef
PACKET_REFCNT_DEBUGin printk and is not needed otherwise. So hide all this stuff under thePACKET_REFCNT_DEBUG.Signed-off-by Pavel Emelyanov <[email protected]>Look at
sk_refcnt_debug_inc, etc and you'll se a more standard way. I forgot to make this when making all protocol families usesk_prot, even if just partially :-)
Quoted 8 lines
Quoted 2 lines
As a bonus you'll get this information on
/proc/net/protocols, removing '-1' from PACKET column for "sockets".Hm... I actually thought about this, but I decided that packet sockets were not accounted in this way deliberately.
So, shall I break this "compatibility" (-1 in proc) and provide a packet socket number in this file?
Humm, my bad, the sockets column in /proc/net/protocols doesn't come from prot->socks, it comes from prot->sockets_allocated. But the suggestion for using sk_refcnt_debug_inc stands, it is there for when we want to do what the code in pf_packet does: refcount debugging, in fact that code most probably was copy'n'pasted from other, older protocols.
BTW, IPX also uses this technique, patches are welcome to make it also use common infrastructure :-)
- Arnaldo