Messages in this thread |  | | Date | Thu, 04 Oct 2001 10:14:31 -0700 | From | "David C. Hansen" <> | Subject | Big kernel lock in release functions |
| |
I've been looking at use of the big kernel lock in a lot of different places in the kernel. I've noticed that there are quite a few uses in devices' release functions, with no obvious purpose. Take a look at arch/m68k/atari/joystick.c:
lock_kernel(); joystick[minor].active = 0; joystick[minor].ready = 0;
if ((joystick[0].active == 0) && (joystick[1].active == 0)) ikbd_joystick_disable(); unlock_kernel();
But, there are other places in the same file where the same operations are performed with no locking at all (except for ikbd_joystick_disable()). Is there a reason to have locking in the release function but not in the read or open functions? This is a quite common practice in release functions throughout the kernel. In 2.4.10, I counted 108 different places where the BKL is used in a release function. I'm not claiming that all of these are unnecessary, but I believe a big chunk of them are.
-- David C. Hansen haveblue@us.ibm.com IBM LTC Base/OS Group (503)578-4080 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |