summaryrefslogtreecommitdiff
path: root/net/netlink/af_netlink.h
diff options
context:
space:
mode:
authorPravin B Shelar <pshelar@nicira.com>2013-08-15 15:31:06 -0700
committerDavid S. Miller <davem@davemloft.net>2013-08-15 15:51:20 -0700
commit16b304f3404f8e0243d5ee2b70b68767b7b59b2b (patch)
treeb18d6ba0555291573c237dea733a39f03b6b5192 /net/netlink/af_netlink.h
parentde98ac5eee037a7484ee9b87eae2e0fb67bdd3ec (diff)
downloadlwn-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.h3
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);