summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Guy Briggs <rgb@redhat.com>2014-06-13 18:22:00 -0400
committerEric Paris <eparis@redhat.com>2014-09-23 16:37:52 -0400
commit01478d7d60f654419ba863856cad0446bcb73a59 (patch)
tree3b8b9a1ef0b17e57234b79c92e8383d9a7944ee9
parent6eed9b261334932c742458edd64b7b9fd0b981a9 (diff)
downloadlinux-01478d7d60f654419ba863856cad0446bcb73a59.tar.bz2
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>
-rw-r--r--kernel/audit.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/kernel/audit.c b/kernel/audit.c
index 8a82d481393d..7aef7cbd7bcf 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -1301,19 +1301,9 @@ err:
*/
unsigned int audit_serial(void)
{
- static DEFINE_SPINLOCK(serial_lock);
- static unsigned int serial = 0;
+ static atomic_t serial = ATOMIC_INIT(0);
- unsigned long flags;
- unsigned int ret;
-
- spin_lock_irqsave(&serial_lock, flags);
- do {
- ret = ++serial;
- } while (unlikely(!ret));
- spin_unlock_irqrestore(&serial_lock, flags);
-
- return ret;
+ return atomic_add_return(1, &serial);
}
static inline void audit_get_stamp(struct audit_context *ctx,