From: Nathan Fontenot <nfont@austin.ibm.com>
To: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linuxppc-dev@ozlabs.org
Cc: Greg KH <greg@kroah.com>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Dave Hansen <dave@linux.vnet.ibm.com>
Subject: [PATCH 4/9] v4 Add mutex for add/remove of memory blocks
Date: Tue, 03 Aug 2010 08:39:50 -0500 [thread overview]
Message-ID: <4C581C26.5080007@austin.ibm.com> (raw)
In-Reply-To: <4C581A6D.9030908@austin.ibm.com>
Add a new mutex for use in adding and removing of memory blocks. This
is needed to avoid any race conditions in which the same memory block could
be added and removed at the same time.
Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>
---
drivers/base/memory.c | 9 +++++++++
1 file changed, 9 insertions(+)
Index: linux-2.6/drivers/base/memory.c
===================================================================
--- linux-2.6.orig/drivers/base/memory.c 2010-08-02 13:35:00.000000000 -0500
+++ linux-2.6/drivers/base/memory.c 2010-08-02 13:45:34.000000000 -0500
@@ -27,6 +27,8 @@
#include <asm/atomic.h>
#include <asm/uaccess.h>
+static struct mutex mem_sysfs_mutex;
+
#define MEMORY_CLASS_NAME "memory"
static struct sysdev_class memory_sysdev_class = {
@@ -485,6 +487,8 @@ static int add_memory_block(int nid, str
if (!mem)
return -ENOMEM;
+ mutex_lock(&mem_sysfs_mutex);
+
mem->start_phys_index = __section_nr(section);
mem->state = state;
atomic_inc(&mem->section_count);
@@ -508,6 +512,7 @@ static int add_memory_block(int nid, str
ret = register_mem_sect_under_node(mem, nid);
}
+ mutex_unlock(&mem_sysfs_mutex);
return ret;
}
@@ -516,6 +521,7 @@ int remove_memory_block(unsigned long no
{
struct memory_block *mem;
+ mutex_lock(&mem_sysfs_mutex);
mem = find_memory_block(section);
if (atomic_dec_and_test(&mem->section_count)) {
@@ -528,6 +534,7 @@ int remove_memory_block(unsigned long no
unregister_memory(mem, section);
}
+ mutex_unlock(&mem_sysfs_mutex);
return 0;
}
@@ -562,6 +569,8 @@ int __init memory_dev_init(void)
if (ret)
goto out;
+ mutex_init(&mem_sysfs_mutex);
+
/*
* Create entries for memory sections that were found
* during boot and have been initialized
next prev parent reply other threads:[~2010-08-03 13:39 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-03 13:32 [PATCH 0/9] v4 De-couple sysfs memory directories from memory sections Nathan Fontenot
2010-08-03 13:36 ` [PATCH 1/9] v4 Move the find_memory_block() routine up Nathan Fontenot
2010-08-05 4:45 ` KAMEZAWA Hiroyuki
2010-08-03 13:37 ` [PATCH 2/9] v4 Add new phys_index properties Nathan Fontenot
2010-08-05 4:49 ` KAMEZAWA Hiroyuki
2010-08-03 13:38 ` [PATCH 3/9] v4 Add section count to memory_block Nathan Fontenot
2010-08-05 4:50 ` KAMEZAWA Hiroyuki
2010-08-03 13:39 ` Nathan Fontenot [this message]
2010-08-05 4:53 ` [PATCH 4/9] v4 Add mutex for add/remove of memory blocks KAMEZAWA Hiroyuki
2010-08-09 13:55 ` Nathan Fontenot
2010-08-03 13:40 ` [PATCH 5/9] v4 Allow memory_block to span multiple memory sections Nathan Fontenot
2010-08-05 4:55 ` KAMEZAWA Hiroyuki
2010-08-03 13:41 ` [PATCH 6/9] v4 Update the find_memory_block declaration Nathan Fontenot
2010-08-05 4:59 ` KAMEZAWA Hiroyuki
2010-08-09 13:56 ` Nathan Fontenot
2010-08-03 13:42 ` [PATCH 7/9] v4 Update the node sysfs code Nathan Fontenot
2010-08-05 5:01 ` KAMEZAWA Hiroyuki
2010-08-03 13:43 ` [PATCH 8/9] v4 Define memory_block_size_bytes() for ppc/pseries Nathan Fontenot
2010-08-03 13:44 ` [PATCH 9/9] v4 Update memory-hotplug documentation Nathan Fontenot
2010-08-05 5:04 ` KAMEZAWA Hiroyuki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C581C26.5080007@austin.ibm.com \
--to=nfont@austin.ibm.com \
--cc=dave@linux.vnet.ibm.com \
--cc=greg@kroah.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).