[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A998F1D.2050705@fr.ibm.com>
Date: Sat, 29 Aug 2009 22:27:09 +0200
From: Daniel Lezcano <dlezcano@...ibm.com>
To: Alexey Dobriyan <adobriyan@...il.com>
CC: davem@...emloft.net, netdev@...r.kernel.org,
benjamin.thery@...l.net
Subject: Re: [PATCH] netns: embed ip6_dst_ops directly
Alexey Dobriyan wrote:
> struct net::ipv6.ip6_dst_ops is separatedly dynamically allocated,
> but there is no fundamental reason for it. Embed it directly into
> struct netns_ipv6.
>
> For that:
> * move struct dst_ops into separate header to fix circular dependencies
> I honestly tried not to, it's pretty impossible to do other way
> * drop dynamical allocation, allocate together with netns
>
> For a change, remove struct dst_ops::dst_net, it's deducible
> by using container_of() given dst_ops pointer.
>
> Signed-off-by: Alexey Dobriyan <adobriyan@...il.com>
> ---
>
> include/net/dst.h | 23 +----------------------
> include/net/dst_ops.h | 28 ++++++++++++++++++++++++++++
> include/net/netns/ipv6.h | 3 ++-
> net/ipv6/route.c | 34 +++++++++++++---------------------
> 4 files changed, 44 insertions(+), 44 deletions(-)
>
> --- a/include/net/dst.h
> +++ b/include/net/dst.h
> @@ -8,6 +8,7 @@
> #ifndef _NET_DST_H
> #define _NET_DST_H
>
> +#include <net/dst_ops.h>
> #include <linux/netdevice.h>
> #include <linux/rtnetlink.h>
> #include <linux/rcupdate.h>
> @@ -102,28 +103,6 @@ struct dst_entry
> };
> };
>
> -
> -struct dst_ops
> -{
> - unsigned short family;
> - __be16 protocol;
> - unsigned gc_thresh;
> -
> - int (*gc)(struct dst_ops *ops);
> - struct dst_entry * (*check)(struct dst_entry *, __u32 cookie);
> - void (*destroy)(struct dst_entry *);
> - void (*ifdown)(struct dst_entry *,
> - struct net_device *dev, int how);
> - struct dst_entry * (*negative_advice)(struct dst_entry *);
> - void (*link_failure)(struct sk_buff *);
> - void (*update_pmtu)(struct dst_entry *dst, u32 mtu);
> - int (*local_out)(struct sk_buff *skb);
> -
> - atomic_t entries;
> - struct kmem_cache *kmem_cachep;
> - struct net *dst_net;
> -};
You will lose entries, kmem_cachep and gc_thresh per namespace, no ?
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists