linux/drivers/ieee1394
Stefan Richter b07375b155 ieee1394: nodemgr: revise semaphore protection of driver core data
- The list "struct class.children" is supposed to be protected by
   class.sem, not by class.subsys.rwsem.

 - nodemgr_remove_uds() iterated over nodemgr_ud_class.children without
   proper protection.  This was never observed as a bug since the code
   is usually only accessed by knodemgrd.  All knodemgrds are currently
   globally serialized.  But userspace can trigger this code too by
   writing to /sys/bus/ieee1394/destroy_node.

 - Clean up access to the FireWire bus type's subsys.rwsem:  Access it
   uniformly via ieee1394_bus_type.  Shrink rwsem protected regions
   where possible.  Expand them where necessary.  The latter wasn't a
   problem so far because knodemgr is globally serialized.

This should harden the interaction of ieee1394 with sysfs and lay ground
for deserialized operation of multiple knodemgrds and for implementation
of subthreads for parallelized scanning and probing.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2006-12-07 21:32:10 +01:00
..
.gitignore gitignore: misc files 2006-01-01 22:21:50 +01:00
config_roms.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
config_roms.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
csr1212.c ieee1394: add preprocessor constant for invalid csr address 2006-06-12 18:15:31 -04:00
csr1212.h ieee1394: add preprocessor constant for invalid csr address 2006-06-12 18:15:31 -04:00
csr.c ieee1394: usecs_to_jiffies takes unsigned int argument 2006-12-07 21:29:08 +01:00
csr.h [PATCH] ieee1394: clean up declarations of hpsb_*_config_rom 2006-07-03 12:02:31 -04:00
dma.c [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
dma.h [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
dv1394-private.h [PATCH] ieee1394: dv1394: sem2mutex conversion 2006-07-03 12:02:32 -04:00
dv1394.c dv1394: remove BKL contention 2006-12-07 21:31:38 +01:00
dv1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
eth1394.c [PATCH] slab: remove kmem_cache_t 2006-12-07 08:39:25 -08:00
eth1394.h ieee1394: add preprocessor constant for invalid csr address 2006-06-12 18:15:31 -04:00
highlevel.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
highlevel.h ieee1394: remove unused struct member from highlevel API 2006-12-07 21:20:30 +01:00
hosts.c ieee1394: handle sysfs errors 2006-12-07 21:29:57 +01:00
hosts.h WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
ieee1394_core.c ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
ieee1394_core.h ieee1394: remove #include <asm/semaphore.h> 2006-09-17 19:18:50 +02:00
ieee1394_hotplug.h [PATCH] ieee1394: remove redundant code from ieee1394_hotplug.h 2006-07-03 12:02:30 -04:00
ieee1394_transactions.c ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
ieee1394_transactions.h ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
ieee1394_types.h ieee1394: safer definition of empty macros 2006-09-17 19:31:20 +02:00
ieee1394-ioctl.h [PATCH] ieee1394: coding style and comment fixes in midlayer header files 2006-07-03 12:02:28 -04:00
ieee1394.h [PATCH] ieee1394: coding style and comment fixes in midlayer header files 2006-07-03 12:02:28 -04:00
iso.c [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
iso.h [PATCH] ieee1394: update #include directives in midlayer header files 2006-07-03 12:02:29 -04:00
Kconfig Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
Makefile Remove amdtp, cmp drivers. 2005-11-18 00:16:26 -05:00
nodemgr.c ieee1394: nodemgr: revise semaphore protection of driver core data 2006-12-07 21:32:10 +01:00
nodemgr.h ieee1394: shrink tlabel pools, remove tpool semaphores 2006-09-17 19:17:13 +02:00
ohci1394.c ieee1394: ohci1394: suspend/resume cosmetics 2006-12-07 21:28:40 +01:00
ohci1394.h ohci1394: set address range properties 2006-06-12 18:13:32 -04:00
oui2c.sh Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
oui.db Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pcilynx.c [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
pcilynx.h Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
raw1394-private.h ieee1394: raw1394: add comments on lock usage 2006-12-07 21:28:06 +01:00
raw1394.c [PATCH] slab: remove SLAB_KERNEL 2006-12-07 08:39:24 -08:00
raw1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sbp2.c ieee1394: sbp2: slightly reorder sbp2scsi_abort 2006-12-07 21:27:30 +01:00
sbp2.h WorkStruct: make allyesconfig 2006-11-22 14:57:56 +00:00
video1394.c video1394: remove BKL contention 2006-12-07 21:31:25 +01:00
video1394.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00