Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d26f3984 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller
Browse files

[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: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0ebea8ef
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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. */
+0 −2
Original line number Diff line number Diff line
@@ -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;
}
+2 −2
Original line number Diff line number Diff line
@@ -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;
}