Hi, I would like to create a boot time variable i.e a variable that is set once at boot time. Variable does not need to be globally accessible. (actually I am using two variables). Could any one point me to examples of this already intree please? I have tried the following but it has a race condition on the zero check and assignment of randval/oddval. /* Maps a pointer to a unique identifier. */ static char *ptr_to_id(char *buf, char *end, void *ptr, struct printf_spec spec) { long hashval; static long randval = 0; static long oddval = 0; if (oddval == 0 && randval == 0) { randval = get_random_long(); oddval = get_random_odd_long(); } hashval = ptr_obfuscate((unsigned long)ptr, randval, oddval); spec.base = 16; return number(buf, end, hashval, spec); } And the compiler doesn't like static long randval = get_random_long(); static long oddval = get_random_odd_long(); I thought of wrapping oddval/randval in a struct and protecting it with a lock but I don't know how/where to initialize the lock in a race free manner? Any tips or pointers please? thanks, Tobin. _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies