| To: | David Dillow <dave@xxxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [RFC 2.6.10 3/22] xfrm: Add offload management routines |
| From: | "David S. Miller" <davem@xxxxxxxxxxxxx> |
| Date: | Fri, 21 Jan 2005 14:47:38 -0800 |
| Cc: | netdev@xxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, dave@xxxxxxxxxxxxxx |
| In-reply-to: | <20041230035000.12@xxxxxxxxxxxxxxxxxx> |
| References: | <20041230035000.11@xxxxxxxxxxxxxxxxxx> <20041230035000.12@xxxxxxxxxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
On Thu, 30 Dec 2004 03:48:35 -0500 David Dillow <dave@xxxxxxxxxxxxxx> 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. |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: on the wire behaviour of TSO on/off is supposed to be the same yes?, Rick Jones |
|---|---|
| Next by Date: | Re: [PATCH 7/12] [X25] stop using sk_protinfo, Aristeu Rozanski |
| Previous by Thread: | Re: [RFC 2.6.10 2/22] xfrm: Add xfrm offload management calls to struct netdevice, David S. Miller |
| Next by Thread: | Re: [RFC 2.6.10 3/22] xfrm: Add offload management routines, David Dillow |
| Indexes: | [Date] [Thread] [Top] [All Lists] |