summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorHerbert Xu2007-11-14 06:47:08 +0100
committerDavid S. Miller2008-01-28 23:53:52 +0100
commitd26f398400311982d2433debae85746c348b7d58 (patch)
treecd1fd0dfbd5a51428dc92ea3dbbb864205a27fa8 /net
parent[IPSEC]: Move state lock into x->type->input (diff)
downloadkernel-qcow2-linux-d26f398400311982d2433debae85746c348b7d58.tar.gz
kernel-qcow2-linux-d26f398400311982d2433debae85746c348b7d58.tar.xz
kernel-qcow2-linux-d26f398400311982d2433debae85746c348b7d58.zip
[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>
Diffstat (limited to 'net')
-rw-r--r--net/ipv6/xfrm6_mode_ro.c2
-rw-r--r--net/xfrm/xfrm_user.c4
2 files changed, 2 insertions, 4 deletions
diff --git a/net/ipv6/xfrm6_mode_ro.c b/net/ipv6/xfrm6_mode_ro.c
index 4a01cb3c370b..63d5d493098a 100644
--- a/net/ipv6/xfrm6_mode_ro.c
+++ b/net/ipv6/xfrm6_mode_ro.c
@@ -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;
}
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index c4f6419b1769..6424e5360511 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -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;
}