On spreading atomic_t initialization

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Alexey Dobriyan
Date: Tuesday, October 28, 2008 - 8:29 am

I wrote stupid runtime checker to look for atomic_t uninitialized usage
and the amount of screaming in logs is surprisingly very big.

So the question: is there really really an arch for which setting atomic_t
by hand (kzalloc) is not equivalent to atomic_set()?

Given the following patch, there is none almost certainly.

--- a/kernel/user.c
+++ b/kernel/user.c
@@ -405,6 +405,9 @@ struct user_struct *alloc_uid(struct user_namespace *ns, uid_t uid)
 
 		new->uid = uid;
 		atomic_set(&new->__count, 1);
+		atomic_set(&new->processes, 0);
+		atomic_set(&new->files, 0);
+		atomic_set(&new->sigpending, 0);
 
 		if (sched_create_user(new) < 0)
 			goto out_free_user;


Such checker will still be useful to catch genuine uninitialized usages,
but the amount of stuff to shut up before it can realistically be put in -mm
is amazing.
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
On spreading atomic_t initialization, Alexey Dobriyan, (Tue Oct 28, 8:29 am)
Re: On spreading atomic_t initialization, Matthew Wilcox, (Tue Oct 28, 8:54 am)
Re: On spreading atomic_t initialization, Linus Torvalds, (Tue Oct 28, 9:16 am)