[IPSEC]: Make x->lastused an unsigned long
Currently x->lastused is u64 which means that it cannot be read/written atomically on all architectures. David Miller observed that the value stored in it is only an unsigned long which is always atomic. So based on his suggestion this patch changes the internal representation from u64 to unsigned long while the user-interface still refers to it as u64. 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
0ebea8ef35
commit
d26f398400
3 changed files with 3 additions and 5 deletions
|
@ -183,7 +183,7 @@ struct xfrm_state
|
|||
struct timer_list timer;
|
||||
|
||||
/* Last used time */
|
||||
u64 lastused;
|
||||
unsigned long lastused;
|
||||
|
||||
/* Reference to data common to all the instances of this
|
||||
* transformer. */
|
||||
|
|
|
@ -54,9 +54,7 @@ static int xfrm6_ro_output(struct xfrm_state *x, struct sk_buff *skb)
|
|||
__skb_pull(skb, hdr_len);
|
||||
memmove(ipv6_hdr(skb), iph, hdr_len);
|
||||
|
||||
spin_lock_bh(&x->lock);
|
||||
x->lastused = get_seconds();
|
||||
spin_unlock_bh(&x->lock);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1986,8 +1986,8 @@ static inline size_t xfrm_sa_len(struct xfrm_state *x)
|
|||
if (x->coaddr)
|
||||
l += nla_total_size(sizeof(*x->coaddr));
|
||||
|
||||
/* Must count this as this may become non-zero behind our back. */
|
||||
l += nla_total_size(sizeof(x->lastused));
|
||||
/* Must count x->lastused as it may become non-zero behind our back. */
|
||||
l += nla_total_size(sizeof(u64));
|
||||
|
||||
return l;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue