OpenVZ Forum


Home » Mailing lists » Devel » [patch 12/38][IPV6] ip6_fib - move the fib table to the network namespace
Re: [patch 12/38][IPV6] ip6_fib - move the fib table to the network namespace [message #24408 is a reply to message #24263] Tue, 04 December 2007 19:28 Go to previous messageGo to previous message
Brian Haley is currently offline  Brian Haley
Messages: 3
Registered: November 2006
Junior Member
Hi Daniel,

Daniel Lezcano wrote:
> Move the global definition of the fib table to the network namespace
> structure and make their access to the initial network namespace.
....
> -void __init fib6_init(void)
> +static int fib6_net_init(struct net *net)
>  {
> -	fib6_node_kmem = kmem_cache_create("fib6_nodes",
> -					   sizeof(struct fib6_node),
> -					   0, SLAB_HWCACHE_ALIGN|SLAB_PANIC,
> -					   NULL);
> +	int ret;
>  
> -	fib_table_hash = kzalloc(sizeof(*fib_table_hash)*FIB_TABLE_HASHSZ, GFP_KERNEL);
> -	if (!fib_table_hash)
> -		panic("IPV6: Failed to allocate fib_table_hash.\n");
> -
> -	fib6_main_tbl = kzalloc(sizeof(*fib6_main_tbl), GFP_KERNEL);
> -	if (!fib6_main_tbl)
> -		panic("IPV6: Failed to allocate fib6_main_tbl.\n");
> -
> -	fib6_main_tbl->tb6_id = RT6_TABLE_MAIN;
> -	fib6_main_tbl->tb6_root.leaf = &ip6_null_entry;
> -	fib6_main_tbl->tb6_root.fn_flags = RTN_ROOT | RTN_TL_ROOT | RTN_RTINFO;
> +	if (net != &init_net)
> +		return -EPERM;
> +
> +	ret = -ENOMEM;
> +	net->fib_table_hash = kzalloc(sizeof(*net->fib_table_hash)*FIB_TABLE_HASHSZ,
> +				      GFP_KERNEL);
> +	if (!net->fib_table_hash)
> +		goto out;

So originally, the fib_table_hash was global with no allocation 
necessary.  Then in patch 11 you changed it to be dynamic and panic() on 
failure.  Now it just gracefully returns.  Do you really want to do that 
for the init_net namespace?  Won't the next routine that tries to access 
this NULL pointer oops?  Same for fib6_main_table, fib6_local_table, 
fib6_stats, etc.  Or did I miss where the callers error-out on an ENOMEM?

-Brian
_______________________________________________
Containers mailing list
Containers@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
 
Read Message
Read Message
Read Message
Previous Topic: [PATCH] memory.min_usage
Next Topic: [PATCH 1/4] netns: Tag the network flow with the network namespace it is in (v2)
Goto Forum:
  


Current Time: Tue Oct 15 01:43:47 GMT 2024

Total time taken to generate the page: 0.07415 seconds