diff --git a/include/linux/audit.h b/include/linux/audit.h
index fad0c1dc21a9698686c7cc4b8ac5f576ae8f7451..0467f2441b68fc0f5c2e813bd13dcecee3682670 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -186,7 +186,7 @@ extern void audit_inode(const char *name, const struct inode *inode);
 extern int  audit_receive_filter(int type, int pid, int uid, int seq,
 				 void *data);
 extern void audit_get_stamp(struct audit_context *ctx,
-			    struct timespec *t, int *serial);
+			    struct timespec *t, unsigned int *serial);
 extern int  audit_set_loginuid(struct audit_context *ctx, uid_t loginuid);
 extern uid_t audit_get_loginuid(struct audit_context *ctx);
 extern int audit_ipc_perms(unsigned long qbytes, uid_t uid, gid_t gid, mode_t mode);
diff --git a/kernel/audit.c b/kernel/audit.c
index e7bff8000d23ba3583d6003c9551574891aa71db..aa35422c0c428481f8a02f294635bd95e4919aee 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -620,7 +620,7 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx)
 	struct audit_buffer	*ab	= NULL;
 	unsigned long		flags;
 	struct timespec		t;
-	int			serial	= 0;
+	unsigned int		serial;
 
 	if (!audit_initialized)
 		return NULL;
@@ -669,8 +669,10 @@ struct audit_buffer *audit_log_start(struct audit_context *ctx)
 		audit_get_stamp(ab->ctx, &t, &serial);
 	else
 #endif
+	{
 		t = CURRENT_TIME;
-
+		serial = 0;
+	}
 	audit_log_format(ab, "audit(%lu.%03lu:%u): ",
 			 t.tv_sec, t.tv_nsec/1000000, serial);
 	return ab;
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index 77e92592de5773d34464ad668b83ceeda738dcfc..49ecd707b953cf902d37391e495bf981e9319c7e 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -992,7 +992,7 @@ void audit_inode(const char *name, const struct inode *inode)
 }
 
 void audit_get_stamp(struct audit_context *ctx,
-		     struct timespec *t, int *serial)
+		     struct timespec *t, unsigned int *serial)
 {
 	if (ctx) {
 		t->tv_sec  = ctx->ctime.tv_sec;