Consolidate hashes creation in netdev_init()
Subsystems (2)
PATCH 1/1 Consolidate hashes creation in netdev_init()
The dev_name_hash and the dev_index_hash are now booth kmalloc-ed (and each element is properly initialized as usually) so I think it's worth consolidating this code making it look nicer (and saving 28 bytes of .text section ;) )
Signed-off-by Pavel Emelyanov <[email protected]>
---
net/core/dev.c +25 -18
@@ -4258,32 +4258,39 @@ int netdev_compute_features(unsigned lon }EXPORT_SYMBOL (netdev_compute_features); +static struct hlist_head *netdev_create_hash (void ) +{ +int i; +struct hlist_head *hash; + + hash =kmalloc (sizeof (*hash) *NETDEV_HASHENTRIES ,GFP_KERNEL ); +if (hash !=NULL ) +for (i =0 ; i <NETDEV_HASHENTRIES ; i++) +INIT_HLIST_HEAD (&hash[i]); + +return hash; +} +/* Initialize per network namespace state */ static int netdev_init (struct net *net) { -int i;INIT_LIST_HEAD (&net->dev_base_head);rwlock_init (&dev_base_lock); - net->dev_name_head =kmalloc ( -sizeof (*net->dev_name_head)*NETDEV_HASHENTRIES ,GFP_KERNEL ); -if (!net->dev_name_head) -return -ENOMEM ; - - net->dev_index_head =kmalloc ( -sizeof (*net->dev_index_head)*NETDEV_HASHENTRIES ,GFP_KERNEL ); -if (!net->dev_index_head) { -kfree (net->dev_name_head); -return -ENOMEM ; - } - -for (i =0 ; i <NETDEV_HASHENTRIES ; i++) -INIT_HLIST_HEAD (&net->dev_name_head[i]); - -for (i =0 ; i <NETDEV_HASHENTRIES ; i++) -INIT_HLIST_HEAD (&net->dev_index_head[i]); + net->dev_name_head =netdev_create_hash (); +if (net->dev_name_head ==NULL ) + goto err_name; + + net->dev_index_head =netdev_create_hash (); +if (net->dev_index_head ==NULL ) + goto err_idx;return 0 ; + +err_idx: +kfree (net->dev_name_head); +err_name: +return -ENOMEM ; }static void netdev_exit (struct net *net)
From: Pavel Emelyanov <[email protected]>
Date: Fri, 14 Sep 2007 12:40:49 +0400
Quoted 6 lines
The
dev_name_hashand thedev_index_hashare now booth kmalloc-ed (and each element is properly initialized as usually) so I think it's worth consolidating this code making it look nicer (and saving 28 bytes of .text section ;) )Signed-off-by Pavel Emelyanov <[email protected]>
Applied to net-2.6.24, thanks Pavel.