xfrm: Remove xfrm_state_genid
The xfrm state genid only needs to be matched against the copy saved in xfrm_dst. So we don't need a global genid at all. In fact, we don't even need to initialise it. Based on observation by Timo Teräs. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
bd2c77a0a7
commit
34996cb91d
@ -37,7 +37,6 @@
|
||||
static DEFINE_SPINLOCK(xfrm_state_lock);
|
||||
|
||||
static unsigned int xfrm_state_hashmax __read_mostly = 1 * 1024 * 1024;
|
||||
static unsigned int xfrm_state_genid;
|
||||
|
||||
static struct xfrm_state_afinfo *xfrm_state_get_afinfo(unsigned int family);
|
||||
static void xfrm_state_put_afinfo(struct xfrm_state_afinfo *afinfo);
|
||||
@ -923,8 +922,6 @@ static void __xfrm_state_insert(struct xfrm_state *x)
|
||||
struct net *net = xs_net(x);
|
||||
unsigned int h;
|
||||
|
||||
x->genid = ++xfrm_state_genid;
|
||||
|
||||
list_add(&x->km.all, &net->xfrm.state_all);
|
||||
|
||||
h = xfrm_dst_hash(net, &x->id.daddr, &x->props.saddr,
|
||||
@ -970,7 +967,7 @@ static void __xfrm_state_bump_genids(struct xfrm_state *xnew)
|
||||
(mark & x->mark.m) == x->mark.v &&
|
||||
!xfrm_addr_cmp(&x->id.daddr, &xnew->id.daddr, family) &&
|
||||
!xfrm_addr_cmp(&x->props.saddr, &xnew->props.saddr, family))
|
||||
x->genid = xfrm_state_genid;
|
||||
x->genid++;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user