From 812abe1d07f911b944160dd191283cc5f61c7097 Mon Sep 17 00:00:00 2001 From: Yasuaki Ishimatsu Date: Tue, 11 Dec 2012 16:00:44 -0800 Subject: [PATCH] --- yaml --- r: 338728 b: refs/heads/master c: fa7194eb99b8e9fefe96f045002648ffb55f53c0 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/base/memory.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 81db72a454cd..446b3c74b4c8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b3092b3b734f146d96ca023a75cacf78078f96d5 +refs/heads/master: fa7194eb99b8e9fefe96f045002648ffb55f53c0 diff --git a/trunk/drivers/base/memory.c b/trunk/drivers/base/memory.c index 86c88216a503..7eb1211ab688 100644 --- a/trunk/drivers/base/memory.c +++ b/trunk/drivers/base/memory.c @@ -70,6 +70,13 @@ void unregister_memory_isolate_notifier(struct notifier_block *nb) } EXPORT_SYMBOL(unregister_memory_isolate_notifier); +static void memory_block_release(struct device *dev) +{ + struct memory_block *mem = container_of(dev, struct memory_block, dev); + + kfree(mem); +} + /* * register_memory - Setup a sysfs device for a memory block */ @@ -80,6 +87,7 @@ int register_memory(struct memory_block *memory) memory->dev.bus = &memory_subsys; memory->dev.id = memory->start_section_nr / sections_per_block; + memory->dev.release = memory_block_release; error = device_register(&memory->dev); return error; @@ -635,7 +643,6 @@ int remove_memory_block(unsigned long node_id, struct mem_section *section, mem_remove_simple_file(mem, phys_device); mem_remove_simple_file(mem, removable); unregister_memory(mem); - kfree(mem); } else kobject_put(&mem->dev.kobj);