On Monday 12 July 2010 22:38:25 Takashi Iwai wrote:
Now the rest is eliminating each lock_kernel() in sound/oss/*.c :)
For other files, I've used a script (see below) to do this, it probably works with the OSS files as well, although I have not tried yet.
Of course, another option for OSS device drivers would be to remove the entire driver ;). Either way, my feeling is that the OSS drivers are not stopping anyone from building a kernel without CONFIG_BKL once we have introduced that symbol and made the drivers depend on it.
Arnd
--- #!/bin/bash file=$1 name=$2 if grep -q lock_kernel ${file} ; then if grep -q 'include.*linux.mutex.h' ${file} ; then sed -i '/include.*<linux/smp_lock.h>/d' ${file} else sed -i 's/include.*<linux/smp_lock.h>.*$/include <linux/mutex.h>/g' ${file} fi sed -i ${file} \ -e "/^#include.*linux.mutex.h/,$ { 1,/^(static|int|long)/ { /^(static|int|long)/istatic DEFINE_MUTEX(${name}_mutex);
} }" \ -e "s/(un)*lock_kernel>[ ]*()/mutex_\1lock(&${name}_mutex)/g" \ -e '/[ ]*cycle_kernel_lock();/d' else sed -i -e '/include.*<smp_lock.h>/d' ${file} \ -e '/cycle_kernel_lock()/d' fi