• Frank Pavlic's avatar
    [PATCH] klist: Fix broken kref counting in find functions · e22dafbc
    Frank Pavlic authored
    The klist reference counting in the find functions that use
    klist_iter_init_node is broken.  If the function (for example
    driver_find_device) is called with a NULL start object then everything is
    fine, the first call to next_device()/klist_next increases the ref-count of
    the first node on the list and does nothing for the start object which is
    NULL.
    
    If they are called with a valid start object then klist_next will decrement
    the ref-count for the start object but nobody has incremented it.  Logical
    place to fix this would be klist_iter_init_node because the function puts a
    reference of the object into the klist_iter struct.
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: default avatarFrank Pavlic <pavlic@de.ibm.com>
    Cc: Patrick Mochel <mochel@digitalimplant.org>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    e22dafbc
Name
Last commit
Last update
..
reed_solomon Loading commit data...
zlib_deflate Loading commit data...
zlib_inflate Loading commit data...
.gitignore Loading commit data...
Kconfig Loading commit data...
Kconfig.debug Loading commit data...
Makefile Loading commit data...
bitmap.c Loading commit data...
bust_spinlocks.c Loading commit data...
cmdline.c Loading commit data...
crc-ccitt.c Loading commit data...
crc16.c Loading commit data...
crc32.c Loading commit data...
crc32defs.h Loading commit data...
ctype.c Loading commit data...
dec_and_lock.c Loading commit data...
div64.c Loading commit data...
dump_stack.c Loading commit data...
errno.c Loading commit data...
extable.c Loading commit data...
find_next_bit.c Loading commit data...
gen_crc32table.c Loading commit data...
genalloc.c Loading commit data...
halfmd4.c Loading commit data...
idr.c Loading commit data...
inflate.c Loading commit data...
int_sqrt.c Loading commit data...
iomap.c Loading commit data...
kernel_lock.c Loading commit data...
klist.c Loading commit data...
kobject.c Loading commit data...
kobject_uevent.c Loading commit data...
kref.c Loading commit data...
libcrc32c.c Loading commit data...
parser.c Loading commit data...
prio_tree.c Loading commit data...
radix-tree.c Loading commit data...
rbtree.c Loading commit data...
rwsem-spinlock.c Loading commit data...
rwsem.c Loading commit data...
semaphore-sleepers.c Loading commit data...
sha1.c Loading commit data...
smp_processor_id.c Loading commit data...
sort.c Loading commit data...
spinlock_debug.c Loading commit data...
string.c Loading commit data...
swiotlb.c Loading commit data...
textsearch.c Loading commit data...
ts_bm.c Loading commit data...
ts_fsm.c Loading commit data...
ts_kmp.c Loading commit data...
vsprintf.c Loading commit data...