summaryrefslogtreecommitdiff
path: root/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c
diff options
context:
space:
mode:
Diffstat (limited to 'package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c')
-rw-r--r--package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c49
1 files changed, 49 insertions, 0 deletions
diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c
new file mode 100644
index 000000000..78ffe69f4
--- /dev/null
+++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_debugtool_c
@@ -0,0 +1,49 @@
+ - big kernel lock unavailable
+ - CLASS_ATTR callbacks changed signature
+--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/debugtool.c 2009-01-22 14:36:34.000000000 +0100
++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/debugtool.c 2011-07-11 14:46:28.845001528 +0200
+@@ -121,11 +121,11 @@ static void dt_run (void)
+ struct socket *sock;
+ struct sockaddr_in addr;
+
+- lock_kernel();
++ //lock_kernel();
+ current->flags |= PF_NOFREEZE;
+ daemonize(MODULE_NAME);
+ allow_signal(SIGKILL);
+- unlock_kernel();
++ //unlock_kernel();
+
+ /* init socket */
+ ret = sock_create(AF_INET, SOCK_DGRAM, IPPROTO_UDP, &sock);
+@@ -181,12 +181,12 @@ static struct class dt_class = {
+ #endif
+ };
+
+-static ssize_t attr_show_enabled (struct class *class, char *buf)
++static ssize_t attr_show_enabled (struct class *class, struct class_attribute *attr, char *buf)
+ {
+ return sprintf(buf, "%d\n", dt_enabled);
+ }
+
+-static ssize_t attr_store_enabled (struct class *class, const char *buf, size_t count)
++static ssize_t attr_store_enabled (struct class *class, struct class_attribute *attr, const char *buf, size_t count)
+ {
+ if (count > 0 && *buf == '1') {
+ mISDN_dt_enable();
+@@ -241,13 +241,13 @@ void __exit dt_exit(void)
+ mISDN_module_unregister(THIS_MODULE);
+
+ if (thread) {
+- lock_kernel();
++ //lock_kernel();
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
+ ret = kill_pid(find_pid_ns(thread->pid, &init_pid_ns), SIGKILL, 1);
+ #else
+ ret = kill_proc(thread->pid, SIGKILL, 1);
+ #endif
+- unlock_kernel();
++ //unlock_kernel();
+ if (ret < 0)
+ printk(KERN_INFO MODULE_NAME ": Unknown error (%d) while trying to terminate kernel thread!\n", -ret);
+ wake_up_interruptible(&skb_q_wait);