linux/drivers/ieee1394
Stefan Richter f22e52b89e ieee1394: raw1394: make write() thread-safe
Application programs should use a libraw1394 handle only in a single
thread.  The raw1394 driver was apparently relying on this, because it
did nothing to protect its fi->state variable from corruption due to
concurrent accesses.

We now serialize the fi->state accesses.  This affects the write() path.
We re-use the state_mutex which was introduced to protect fi->iso_state
accesses in the ioctl() path.  These paths and accesses are independent
of each other, hence separate mutexes could be used.  But I don't see
much benefit in that.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2008-10-15 22:21:08 +02:00
..
config_roms.c
config_roms.h
csr1212.c ieee1394: Use DIV_ROUND_UP 2008-10-15 22:21:07 +02:00
csr1212.h
csr.c
csr.h
dma.c ieee1394: dump mmapped iso buffers in core files 2008-07-14 13:06:02 +02:00
dma.h
dv1394-private.h
dv1394.c device create: ieee1394: convert device_create to device_create_drvdata 2008-07-21 21:54:43 -07:00
dv1394.h
eth1394.c ieee1394: Use DIV_ROUND_UP 2008-10-15 22:21:07 +02:00
eth1394.h
highlevel.c ieee1394: video1394: reorder module init, prepare BKL removal 2008-07-14 13:06:02 +02:00
highlevel.h ieee1394: video1394: reorder module init, prepare BKL removal 2008-07-14 13:06:02 +02:00
hosts.c
hosts.h
ieee1394_core.c ieee1394: limit early node speed to host interface speed 2008-04-18 17:55:31 +02:00
ieee1394_core.h
ieee1394_hotplug.h
ieee1394_transactions.c
ieee1394_transactions.h
ieee1394_types.h
ieee1394-ioctl.h
ieee1394.h
init_ohci1394_dma.c
iso.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
iso.h ieee1394: rawiso: requeue packet for transmission after skipped cycle 2008-04-25 18:15:45 +02:00
Kconfig ieee1394: Kconfig menu touch-up 2008-06-19 00:12:36 +02:00
Makefile
nodemgr.c ieee1394: don't drop nodes during bus reset series 2008-08-19 18:47:55 +02:00
nodemgr.h ieee1394: regression in 2.6.25: updates should happen before probes 2008-08-19 18:47:55 +02:00
ohci1394.c ieee1394: rawiso: requeue packet for transmission after skipped cycle 2008-04-25 18:15:45 +02:00
ohci1394.h
pcilynx.c ieee1394: Use shorter list_splice_init() for brevity. 2008-04-18 17:55:30 +02:00
pcilynx.h
raw1394-private.h ieee1394: raw1394: replace BKL by local mutex, make ioctl() and mmap() thread-safe 2008-10-15 22:21:08 +02:00
raw1394.c ieee1394: raw1394: make write() thread-safe 2008-10-15 22:21:08 +02:00
raw1394.h
sbp2.c ieee1394: sbp2: enforce s/g segment size limit 2008-10-15 22:21:07 +02:00
sbp2.h ieee1394: sbp2: enforce s/g segment size limit 2008-10-15 22:21:07 +02:00
video1394.c device create: ieee1394: convert device_create to device_create_drvdata 2008-07-21 21:54:43 -07:00
video1394.h