Alan Stern
09f82ea928
Kobject: drop child->parent ref at unregistration
...
This patch (as1015) reverts changes that were made to the driver core
about four years ago. The intent back then was to avoid certain kinds
of invalid memory accesses by leaving kernel objects allocated as long
as any of their children were still allocated. The original and
correct approach was to wait only as long as any children were still
_registered_; that's what this patch reinstates.
This fixes a problem in the SCSI core made visible by the class_device
to regular device conversion: A reference loop (scsi_device holds
reference to request_queue, which is the child of a gendisk, which is
the child of the scsi_device) prevents the data structures from being
released, even though they are deregistered okay.
It's possible that this change will cause a few bugs to surface,
things that have been hidden for several years. They can be fixed
easily enough by having the child device take an explicit reference to
the parent whenever needed.
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2008-01-24 20:40:36 -08:00
..
lzo
lzo: add some missing casts
2007-07-31 15:39:37 -07:00
reed_solomon
[MTD] [NAND] Replace -1 with -EBADMSG in nand error correction code
2007-10-20 22:30:54 +01:00
zlib_deflate
zlib_inflate
[ZLIB]: Fix external builds of zlib_inflate code.
2007-10-11 22:17:20 -07:00
.gitignore
argv_split.c
LIB: Replace inappropriate include of <linux/bug.h>
2007-10-20 00:26:10 +02:00
audit.c
[PATCH] audit signal recipients
2007-05-11 05:38:25 -04:00
bitmap.c
Fix bitmap_scnlistprintf for empty masks
2007-11-05 15:12:32 -08:00
bitrev.c
bug.c
generic bug: use show_regs() instead of dump_stack()
2007-07-16 09:05:51 -07:00
bust_spinlocks.c
handle recursive calls to bust_spinlocks()
2007-10-17 08:42:56 -07:00
check_signature.c
uninline check_signature()
2007-07-16 09:05:50 -07:00
cmdline.c
cpumask.c
Safer nr_node_ids and nr_node_ids determination and initial values
2007-05-07 12:12:51 -07:00
crc-ccitt.c
crc-itu-t.c
CRC ITU-T V.41
2007-05-10 18:24:13 +02:00
crc7.c
CRC7 support
2007-07-17 10:23:04 -07:00
crc16.c
crc32.c
Replace __attribute_pure__ with __pure
2007-10-18 14:37:32 -07:00
crc32defs.h
ctype.c
debug_locks.c
dec_and_lock.c
devres.c
iomap: implement pcim_iounmap_regions()
2007-04-28 14:15:58 -04:00
div64.c
dump_stack.c
extable.c
fault-inject.c
fault_inject: silence a warning
2007-07-24 12:24:59 -07:00
find_next_bit.c
gen_crc32table.c
genalloc.c
Slab allocators: Replace explicit zeroing with __GFP_ZERO
2007-07-17 10:23:02 -07:00
halfmd4.c
hexdump.c
hexdump: don't print bytes with bit 7 set
2007-11-29 09:24:53 -08:00
hweight.c
remove asm/bitops.h includes
2007-10-19 11:53:41 -07:00
idr.c
Slab API: remove useless ctor parameter and reorder parameters
2007-10-17 08:42:45 -07:00
inflate.c
[PATCH] x86-64: deflate inflate_dynamic too
2007-05-02 19:27:15 +02:00
int_sqrt.c
iomap.c
lib/iomap.c:bad_io_access(): print 0x hex prefix
2007-10-17 08:42:57 -07:00
iomap_copy.c
ioremap.c
lib/ioremap.c should #include <linux/io.h>
2007-10-17 08:42:50 -07:00
irq_regs.c
kasprintf.c
lib: move kasprintf to a separate file
2007-07-31 15:39:39 -07:00
Kconfig
Introduce CONFIG_CHECK_SIGNATURE
2007-08-22 19:52:45 -07:00
Kconfig.debug
Blackfin arch: punt CONFIG_BFIN -- we already have CONFIG_BLACKFIN
2007-11-23 14:28:44 +08:00
kernel_lock.c
spelling fixes: lib/
2007-10-20 01:29:18 +02:00
klist.c
kobject.c
Kobject: drop child->parent ref at unregistration
2008-01-24 20:40:36 -08:00
kobject_uevent.c
kobject: clean up debugging messages
2008-01-24 20:40:26 -08:00
kref.c
kref: add kref_set()
2008-01-24 20:40:05 -08:00
libcrc32c.c
[LIB] crc32c: Keep intermediate crc state in cpu order
2007-11-08 21:34:09 +08:00
list_debug.c
locking-selftest-hardirq.h
locking-selftest-mutex.h
locking-selftest-rlock-hardirq.h
locking-selftest-rlock-softirq.h
locking-selftest-rlock.h
locking-selftest-rsem.h
locking-selftest-softirq.h
locking-selftest-spin-hardirq.h
locking-selftest-spin-softirq.h
locking-selftest-spin.h
locking-selftest-wlock-hardirq.h
locking-selftest-wlock-softirq.h
locking-selftest-wlock.h
locking-selftest-wsem.h
locking-selftest.c
Makefile
lib: move bitmap.o from lib-y to obj-y.
2007-11-14 18:45:37 -08:00
parser.c
[AFS]: Make the match_*() functions take const options.
2007-05-03 03:10:39 -07:00
percpu_counter.c
Add irq protection in the percpu-counters cpu-hotplug-callback path
2007-10-19 11:53:44 -07:00
plist.c
prio_heap.c
Fix cpusets update_cpumask
2007-10-19 11:53:41 -07:00
prio_tree.c
proportions.c
lib: proportion: fix underflow in prop_norm_percpu()
2007-12-23 12:54:37 -08:00
radix-tree.c
avoid negative (and full-width) shifts in radix-tree.c
2007-10-17 08:42:56 -07:00
random32.c
rbtree.c
reciprocal_div.c
rwsem-spinlock.c
rwsem.c
sched: mark rwsem functions as __sched for wchan/profiling
2007-12-18 15:21:13 +01:00
semaphore-sleepers.c
sha1.c
smp_processor_id.c
sort.c
lib/sort.c optimization
2007-10-17 08:42:52 -07:00
spinlock_debug.c
Use helpers to obtain task pid in printks
2007-10-19 11:53:43 -07:00
string.c
swiotlb.c
Update swiotlb to use sg helpers
2007-10-22 21:19:58 +02:00
textsearch.c
[TEXTSEARCH]: Do not allow zero length patterns in the textsearch infrastructure
2007-12-01 00:03:52 +11:00
ts_bm.c
ts_fsm.c
ts_kmp.c
vsprintf.c
lib: move kasprintf to a separate file
2007-07-31 15:39:39 -07:00