From: Stefan Richter Date: Fri, 15 Aug 2008 22:11:48 +0000 (+0200) Subject: ieee1394: raw1394: replace BKL by local mutex, make ioctl() and mmap() thread-safe X-Git-Tag: v2.6.28-rc1~277^2~11 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=10963ea1bd966ba46a46178c4d6abcdf3c23538d;p=pandora-kernel.git ieee1394: raw1394: replace BKL by local mutex, make ioctl() and mmap() thread-safe This removes the last usage of the Big Kernel Lock from the ieee1394 stack, i.e. from raw1394's (unlocked_)ioctl and compat_ioctl. The ioctl()s don't need to take the BKL, but they need to be serialized per struct file *. In particular, accesses to ->iso_state need to be serial. We simply use a blocking mutex for this purpose because libraw1394 does not use O_NONBLOCK. In practice, there is no lock contention anyway because most if not all libraw1394 clients use a libraw1394 handle only in a single thread. mmap() also accesses ->iso_state. Until now this was unprotected against concurrent changes by ioctls. Fix this bug while we are at it. Signed-off-by: Stefan Richter --- Reading git-diff-tree failed