On Thu, 30 Dec 2004 03:48:35 -0500 David Dillow <[EMAIL PROTECTED]> wrote:
> +static inline struct xfrm_offload * > +xfrm_offload_alloc(int sizeof_priv, struct net_device *dev) This whole scheme looks buggy. The intent is to 8-byte align the object, but look at what the code is actually doing. Whatever kmalloc() returns to xfrm_offload_alloc() is directly used as the xfrm_offload pointer, and the members are initialized. Then xfrm_offload_priv() does the alignments. It is clear that kmalloc() is always giving you 8-byte aligned data else the first time xfrm_offload_priv() is used you'd get a bogus pointer since xfrm_offload_alloc() initialized the object without first aligning the pointer. We do something similar when we allocate netdevs, so have a look at how net/core/dev.c:alloc_netdev() works. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/