This patch adds the BKL to each character device's open() function. The BKL will remain in chrdev_open() until the module unload races are fixed, but this makes it unnecessary there for any other reason. Greg KH seemed to think that there are enough module races elsewhere that just removing it wouldn't be too upsetting to anyone, but I haven't done that yet. I'm reasonably confident that I found all of the character devices' open()s if the device used register_chrdev or devfs_register_chrdev. I _think_ this covers them all. I'm also reasonably confident that I added all of the #includes correctly this time. It is hard to say if it compiles or not because half the kernel doesn't compile right now anyway :( It at least compiles for my config. Patch attached against the latest Linus BK tree. I hope this patch works, I'm just starting with BK. Or pull from bk://linux-bkl.bkbits.net/linux-2.5-bkl -- Dave Hansen haveblue@us.ibm.com