if the table is always fixed size with MAX_LINKS entries, why not use a statically allocated table straightforwardly?
Signed-off-by: Denis Cheng <[EMAIL PROTECTED]> --- net/netlink/af_netlink.c | 11 ++--------- 1 files changed, 2 insertions(+), 9 deletions(-) diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index ac3b100..c527f87 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -115,7 +115,7 @@ struct netlink_table { int registered; }; -static struct netlink_table *nl_table; +static struct netlink_table nl_table[MAX_LINKS]; static DECLARE_WAIT_QUEUE_HEAD(nl_table_wait); @@ -1894,10 +1894,6 @@ static int __init netlink_proto_init(void) BUILD_BUG_ON(sizeof(struct netlink_skb_parms) > sizeof(dummy_skb->cb)); - nl_table = kcalloc(MAX_LINKS, sizeof(*nl_table), GFP_KERNEL); - if (!nl_table) - goto panic; - if (num_physpages >= (128 * 1024)) limit = num_physpages >> (21 - PAGE_SHIFT); else @@ -1915,8 +1911,7 @@ static int __init netlink_proto_init(void) while (i-- > 0) nl_pid_hash_free(nl_table[i].hash.table, 1 * sizeof(*hash->table)); - kfree(nl_table); - goto panic; + goto out; } memset(hash->table, 0, 1 * sizeof(*hash->table)); hash->max_shift = order; @@ -1933,8 +1928,6 @@ static int __init netlink_proto_init(void) rtnetlink_init(); out: return err; -panic: - panic("netlink_init: Cannot allocate nl_table\n"); } core_initcall(netlink_proto_init); -- 1.5.3.rc7 - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html