From 1ca0c47c5074ed95bc5aec47fb811090b02a7d59 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Thu, 12 Apr 2012 12:49:12 -0700 Subject: [PATCH] --- yaml --- r: 299058 b: refs/heads/master c: 44e4360fa3384850d65dd36fb4e6e5f2f112709b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/char/random.c | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index d284b1e2f469..9b7dded0271b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d833049bd20570cbbadeb5228c579f9f3aaa4e03 +refs/heads/master: 44e4360fa3384850d65dd36fb4e6e5f2f112709b diff --git a/trunk/drivers/char/random.c b/trunk/drivers/char/random.c index 54ca8b23cde3..4ec04a754733 100644 --- a/trunk/drivers/char/random.c +++ b/trunk/drivers/char/random.c @@ -1260,10 +1260,15 @@ static int proc_do_uuid(ctl_table *table, int write, uuid = table->data; if (!uuid) { uuid = tmp_uuid; - uuid[8] = 0; - } - if (uuid[8] == 0) generate_random_uuid(uuid); + } else { + static DEFINE_SPINLOCK(bootid_spinlock); + + spin_lock(&bootid_spinlock); + if (!uuid[8]) + generate_random_uuid(uuid); + spin_unlock(&bootid_spinlock); + } sprintf(buf, "%pU", uuid);