audit: use atomic_t to simplify audit_serial()

Since there is already a primitive to do this operation in the atomic_t, use it
to simplify audit_serial().

Signed-off-by: Richard Guy Briggs <rgb@redhat.com>
This commit is contained in:
Richard Guy Briggs 2014-06-13 18:22:00 -04:00 committed by Eric Paris
parent 6eed9b2613
commit 01478d7d60

View File

@ -1301,19 +1301,9 @@ err:
*/ */
unsigned int audit_serial(void) unsigned int audit_serial(void)
{ {
static DEFINE_SPINLOCK(serial_lock); static atomic_t serial = ATOMIC_INIT(0);
static unsigned int serial = 0;
unsigned long flags; return atomic_add_return(1, &serial);
unsigned int ret;
spin_lock_irqsave(&serial_lock, flags);
do {
ret = ++serial;
} while (unlikely(!ret));
spin_unlock_irqrestore(&serial_lock, flags);
return ret;
} }
static inline void audit_get_stamp(struct audit_context *ctx, static inline void audit_get_stamp(struct audit_context *ctx,