linux/drivers/base
Cornelia Huck 63b6971a08 Driver core: Cleanup get_device_parent() in device_add() and device_move()
Make setup_parent() void as get_device_parent() will always return
either a valid kobject or NULL.
Introduce cleanup_glue_dir() to drop reference grabbed on "glue"
directory by get_device_parent(). Use it for cleanup in device_move()
and device_add() on errors.

This should fix the refcounting problem reported in
http://marc.info/?l=linux-kernel&m=120052487909200&w=2

Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Cc: Dave Young <hidave.darkstar@gmail.com>
Cc: Gabor Gombas <gombasg@sztaki.hu>
Cc: Tejun Heo <htejun@gmail.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Marcel Holtmann <marcel@holtmann.org>
Cc: David Miller <davem@davemloft.net>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-01-24 20:40:44 -08:00
..
power driver core: clean up device_shutdown 2008-01-24 20:40:25 -08:00
attribute_container.c Driver core: use LIST_HEAD instead of call to INIT_LIST_HEAD in __init 2008-01-24 20:40:41 -08:00
base.h driver core: fix build with SYSFS=n 2008-01-24 20:40:42 -08:00
bus.c Kobject: convert drivers/* from kobject_unregister() to kobject_put() 2008-01-24 20:40:40 -08:00
class.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
core.c Driver core: Cleanup get_device_parent() in device_add() and device_move() 2008-01-24 20:40:44 -08:00
cpu.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
dd.c Driver core: fix race in __device_release_driver 2008-01-24 20:40:35 -08:00
devres.c Driver core: fix devres_release_all() return value 2007-07-11 16:09:02 -07:00
dma-mapping.c devres: device resource management 2007-02-09 17:39:36 -05:00
dmapool.c cleanup asm/scatterlist.h includes 2007-11-02 08:47:06 +01:00
driver.c Kobject: rename kobject_add_ng() to kobject_add() 2008-01-24 20:40:38 -08:00
firmware_class.c Fix Firmware class name collision 2007-10-12 14:51:06 -07:00
firmware.c firmware: change firmware_kset to firmware_kobj 2008-01-24 20:40:23 -08:00
hypervisor.c kobject: convert /sys/hypervisor to use kobject_create 2008-01-24 20:40:15 -08:00
init.c Driver core: use LIST_HEAD instead of call to INIT_LIST_HEAD in __init 2008-01-24 20:40:41 -08:00
isa.c [PATCH] Driver model: add ISA bus 2006-06-21 12:40:49 -07:00
Kconfig Driver core: add CONFIG_UEVENT_HELPER_PATH 2007-10-12 14:51:01 -07:00
Makefile driver core: fix build with SYSFS=n 2008-01-24 20:40:42 -08:00
map.c [PATCH] kobj_map semaphore to mutex conversion 2006-03-20 13:42:58 -08:00
memory.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
module.c Driver core: move the static kobject out of struct driver 2008-01-24 20:40:35 -08:00
node.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
platform.c Driver Core: constify the name passed to platform_device_register_simple 2008-01-24 20:40:43 -08:00
sys.c Driver core: change sysdev classes to use dynamic kobject names 2008-01-24 20:40:40 -08:00
topology.c cpu hotplug: topology: remove topology_dev_map 2007-10-18 14:37:21 -07:00
transport_class.c [SCSI] fix transport class corner case after rework 2005-08-28 11:14:06 -05:00