mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
net: Embed hh_cache inside of struct neighbour.
Now that there is a one-to-one correspondance between neighbour and hh_cache entries, we no longer need: 1) dynamic allocation 2) attachment to dst->hh 3) refcounting Initialization of the hh_cache entry is indicated by hh_len being non-zero, and such initialization is always done with the neighbour's lock held as a writer. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
390fd0b388
commit
f6b72b6217
9 changed files with 59 additions and 105 deletions
|
@ -38,7 +38,6 @@ struct dst_entry {
|
|||
unsigned long expires;
|
||||
struct dst_entry *path;
|
||||
struct neighbour *neighbour;
|
||||
struct hh_cache *hh;
|
||||
#ifdef CONFIG_XFRM
|
||||
struct xfrm_state *xfrm;
|
||||
#else
|
||||
|
@ -47,6 +46,14 @@ struct dst_entry {
|
|||
int (*input)(struct sk_buff*);
|
||||
int (*output)(struct sk_buff*);
|
||||
|
||||
int flags;
|
||||
#define DST_HOST 0x0001
|
||||
#define DST_NOXFRM 0x0002
|
||||
#define DST_NOPOLICY 0x0004
|
||||
#define DST_NOHASH 0x0008
|
||||
#define DST_NOCACHE 0x0010
|
||||
#define DST_NOCOUNT 0x0020
|
||||
|
||||
short error;
|
||||
short obsolete;
|
||||
unsigned short header_len; /* more space at head required */
|
||||
|
@ -62,7 +69,7 @@ struct dst_entry {
|
|||
* (L1_CACHE_SIZE would be too much)
|
||||
*/
|
||||
#ifdef CONFIG_64BIT
|
||||
long __pad_to_align_refcnt[1];
|
||||
long __pad_to_align_refcnt[2];
|
||||
#endif
|
||||
/*
|
||||
* __refcnt wants to be on a different cache line from
|
||||
|
@ -71,13 +78,6 @@ struct dst_entry {
|
|||
atomic_t __refcnt; /* client references */
|
||||
int __use;
|
||||
unsigned long lastuse;
|
||||
int flags;
|
||||
#define DST_HOST 0x0001
|
||||
#define DST_NOXFRM 0x0002
|
||||
#define DST_NOPOLICY 0x0004
|
||||
#define DST_NOHASH 0x0008
|
||||
#define DST_NOCACHE 0x0010
|
||||
#define DST_NOCOUNT 0x0020
|
||||
union {
|
||||
struct dst_entry *next;
|
||||
struct rtable __rcu *rt_next;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue