Nikolaus Schulz 30ad64b8ac [media] dvb: push down ioctl lock in dvb_usercopy
Since most dvb ioctls wrap their real work with dvb_usercopy, the static mutex
used in dvb_usercopy effectively is a global lock for dvb ioctls.
Unfortunately, frontend ioctls can be blocked by the frontend thread for
several seconds; this leads to unacceptable lock contention.  Mitigate that by
pushing the mutex from dvb_usercopy down to the individual, device specific
ioctls.
There are 10 such ioctl functions using dvb_usercopy, either calling it
directly, or via the trivial wrapper dvb_generic_ioctl. The following already
employ their own locking and look safe:
    • dvb_demux_ioctl           (as per dvb_demux_do_ioctl)
    • dvb_dvr_ioctl             (as per dvb_dvr_do_ioctl)
    • dvb_osd_ioctl             (as per single non-trivial callee)
    • fdtv_ca_ioctl             (as per callees)
    • dvb_frontend_ioctl
The following functions do not, and are thus changed to use a device specific
mutex:
    • dvb_net_ioctl             (as per dvb_net_do_ioctl)
    • dvb_ca_en50221_io_ioctl   (as per dvb_ca_en50221_io_do_ioctl)
    • dvb_video_ioctl
    • dvb_audio_ioctl
    • dvb_ca_ioctl

Signed-off-by: Nikolaus Schulz <schulz@macnetix.de>
Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2012-12-27 15:44:21 -02:00
..
2012-12-15 12:37:18 -08:00
2012-12-19 12:47:41 -08:00
2012-12-19 12:47:41 -08:00
2012-12-12 12:05:15 -08:00
2012-12-07 23:13:36 +01:00
2012-12-17 17:15:13 -08:00
2012-11-21 12:46:40 -08:00
2012-12-20 10:07:25 -08:00
2012-12-11 14:08:47 -08:00
2012-12-18 15:19:06 +10:30
2012-12-20 07:21:54 -08:00
2012-12-12 11:45:16 -08:00
2012-12-17 17:15:14 -08:00
2012-12-11 13:13:55 -08:00
2012-12-19 08:14:08 -08:00
2012-12-19 08:19:07 -08:00
2012-12-11 13:13:55 -08:00
2012-12-27 12:44:11 -02:00
2012-12-12 12:05:15 -08:00
2012-12-16 17:39:14 -08:00
2012-11-16 08:14:18 -08:00
2012-11-16 08:14:18 -08:00