diff options
author | Pravin B Shelar <pshelar@nicira.com> | 2013-08-15 15:31:06 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-15 15:51:20 -0700 |
commit | 16b304f3404f8e0243d5ee2b70b68767b7b59b2b (patch) | |
tree | b18d6ba0555291573c237dea733a39f03b6b5192 /net/netlink/af_netlink.h | |
parent | de98ac5eee037a7484ee9b87eae2e0fb67bdd3ec (diff) | |
download | lwn-16b304f3404f8e0243d5ee2b70b68767b7b59b2b.tar.gz lwn-16b304f3404f8e0243d5ee2b70b68767b7b59b2b.zip |
netlink: Eliminate kmalloc in netlink dump operation.
Following patch stores struct netlink_callback in netlink_sock
to avoid allocating and freeing it on every netlink dump msg.
Only one dump operation is allowed for a given socket at a time
therefore we can safely convert cb pointer to cb struct inside
netlink_sock.
Signed-off-by: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/netlink/af_netlink.h')
-rw-r--r-- | net/netlink/af_netlink.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/netlink/af_netlink.h b/net/netlink/af_netlink.h index eaa88d187cdc..acbd774eeb7c 100644 --- a/net/netlink/af_netlink.h +++ b/net/netlink/af_netlink.h @@ -32,7 +32,8 @@ struct netlink_sock { unsigned long *groups; unsigned long state; wait_queue_head_t wait; - struct netlink_callback *cb; + bool cb_running; + struct netlink_callback cb; struct mutex *cb_mutex; struct mutex cb_def_mutex; void (*netlink_rcv)(struct sk_buff *skb); |