diff options
author | Waldemar Brodkorb <wbrodkorb@conet.de> | 2015-03-04 09:21:57 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbrodkorb@conet.de> | 2015-03-04 09:21:57 +0100 |
commit | 4fc74012b67cfc62c5481b8d7b6d95052f40c2bf (patch) | |
tree | d6f7c860195c63564d98f53c143acbf0082ea3ca /package/mISDN | |
parent | 68b4cb5aaa95eb39401bcbaa7c517cfd31c3edcf (diff) | |
parent | 9919c4bc2f53037331313edace085c386c2af4cc (diff) |
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'package/mISDN')
12 files changed, 464 insertions, 0 deletions
diff --git a/package/mISDN/Makefile b/package/mISDN/Makefile new file mode 100644 index 000000000..348f1da0d --- /dev/null +++ b/package/mISDN/Makefile @@ -0,0 +1,35 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(ADK_TOPDIR)/rules.mk + +PKG_NAME:= mISDN +PKG_VERSION:= 1_1_9_2 +PKG_RELEASE:= 1 +PKG_HASH:= 9ff96d8361891b9a15cf6dbdb57214c36ca13702d5bf7c18ebe259ec5d876c09 +PKG_DESCR:= new isdn stack of the linux kernel +PKG_SECTION:= net/voip +PKG_URL:= http://www.misdn.org +PKG_SITES:= http://www.misdn.org/downloads/releases/ + +PKG_CFLINE_MISDN:= depends on ADK_BROKEN + +DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz + +include $(ADK_TOPDIR)/mk/kernel-ver.mk +include $(ADK_TOPDIR)/mk/package.mk + +$(eval $(call PKG_template,MISDN,misdn,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION))) + +CONFIG_STYLE:= manual +XAKE_FLAGS+= LINUX=$(LINUX_DIR) KVERS=$(KERNEL_VERSION) +FAKE_FLAGS+= INSTALL_PREFIX=$(WRKINST) + +misdn-install: + $(INSTALL_DIR) $(IDIR_MISDN)/usr/sbin + $(INSTALL_BIN) $(WRKINST)/usr/sbin/{mISDN,misdn-init} \ + $(IDIR_MISDN)/usr/sbin + $(INSTALL_DIR) $(IDIR_MISDN)/lib/modules + $(CP) $(WRKINST)/lib/modules/* $(IDIR_MISDN)/lib/modules/ + +include $(ADK_TOPDIR)/mk/pkg-bottom.mk diff --git a/package/mISDN/patches/patch-Makefile b/package/mISDN/patches/patch-Makefile new file mode 100644 index 000000000..e3a582632 --- /dev/null +++ b/package/mISDN/patches/patch-Makefile @@ -0,0 +1,53 @@ + - do not use /lib for kernel source dir detection + - drop some non-compiling card drivers + - do not run depmod and stuff +--- mISDN-1_1_9_2.orig/Makefile 2009-06-09 10:41:07.000000000 +0200 ++++ mISDN-1_1_9_2/Makefile 2011-07-11 15:04:00.996001762 +0200 +@@ -14,9 +14,14 @@ ifndef KVERS + KVERS:=$(shell uname -r) + endif + ++ifndef LINUX + MODS=/lib/modules/$(KVERS) + LINUX=$(MODS)/build + LINUX_SOURCE=$(MODS)/source ++else ++LINUX_SOURCE=${LINUX} ++endif ++ + UPDATE_MODULES=$(shell which update-modules) + MODULES_UPDATE=$(shell which modules-update) + DEPMOD=$(shell which depmod) +@@ -30,15 +35,15 @@ MISDN_SRC=$(MISDNDIR)/drivers/isdn/hardw + + CONFIGS+=CONFIG_MISDN_DRV=m + CONFIGS+=CONFIG_MISDN_DSP=m +-CONFIGS+=CONFIG_MISDN_HFCMULTI=m +-CONFIGS+=CONFIG_MISDN_HFCPCI=m ++#CONFIGS+=CONFIG_MISDN_HFCMULTI=m ++#CONFIGS+=CONFIG_MISDN_HFCPCI=m + CONFIGS+=CONFIG_MISDN_HFCUSB=m + CONFIGS+=CONFIG_MISDN_XHFC=m +-CONFIGS+=CONFIG_MISDN_HFCMINI=m +-CONFIGS+=CONFIG_MISDN_W6692=m +-CONFIGS+=CONFIG_MISDN_SPEEDFAX=m +-CONFIGS+=CONFIG_MISDN_AVM_FRITZ=m +-CONFIGS+=CONFIG_MISDN_NETJET=m ++#CONFIGS+=CONFIG_MISDN_HFCMINI=m ++#CONFIGS+=CONFIG_MISDN_W6692=m ++#CONFIGS+=CONFIG_MISDN_SPEEDFAX=m ++#CONFIGS+=CONFIG_MISDN_AVM_FRITZ=m ++#CONFIGS+=CONFIG_MISDN_NETJET=m + CONFIGS+=CONFIG_MISDN_DEBUGTOOL=m + + #CONFIGS+=CONFIG_MISDN_NETDEV=y +@@ -52,9 +57,6 @@ all: VERSION test_old_misdn test_new_mis + export MINCLUDES=$(MISDNDIR)/include ; export MISDNVERSION=$(MISDNVERSION); make -C $(LINUX) SUBDIRS=$(MISDN_SRC) modules $(CONFIGS) + + install: all modules-install misdn-init +- $(DEPMOD) +- $(UPDATE_MODULES) +- $(MODULES_UPDATE) + make -C config install + + modules-install: diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_contr_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_contr_c new file mode 100644 index 000000000..e33bde4c5 --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_contr_c @@ -0,0 +1,65 @@ + - capi_ctr_reseted has been renamed in linux kernel commit + 4e329972052c3649367b91de783f6293b8653cb2 + - kernel now wants a struc file_operations for proc files +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/contr.c 2009-01-22 14:36:34.000000000 +0100 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/contr.c 2011-07-15 18:33:55.765001537 +0200 +@@ -367,17 +367,12 @@ procinfo(struct capi_ctr *ctrl) + } + + static int +-read_proc(char *page, char **start, off_t off, int count, int *eof, struct capi_ctr *ctrl) ++proc_show(struct seq_file *file, void *data) + { +- int len = 0; ++ struct capi_ctr *ctrl = file->private; + +- len += sprintf(page+len, "mISDN_read_proc\n"); +- if (off+count >= len) +- *eof = 1; +- if (len < off) +- return 0; +- *start = page + off; +- return ((count < len-off) ? count : len-off); ++ seq_printf(file, "mISDN_proc_show\n"); ++ return 0; + }; + + +@@ -399,7 +394,7 @@ ResetController(struct capi_ctr *ctrl) + #ifdef OLDCAPI_DRIVER_INTERFACE + contr->ctrl->reseted(contr->ctrl); + #else +- capi_ctr_reseted(contr->ctrl); ++ capi_ctr_down(contr->ctrl); + #endif + } + +@@ -601,6 +596,19 @@ ControllerPutStatus(Controller_t *contr, + contrDebug(contr, CAPI_DBG_CONTR, "%s: %s", __FUNCTION__, msg); + } + ++static int misdn_proc_open(struct inode *inode, struct file *file) ++{ ++ return single_open(file, proc_show, PDE(inode)->data); ++} ++ ++static const struct file_operations misdn_proc_fops = { ++ .owner = THIS_MODULE, ++ .open = misdn_proc_open, ++ .read = seq_read, ++ .llseek = seq_lseek, ++ .release = single_release, ++}; ++ + int + ControllerConstr(Controller_t **contr_p, mISDNstack_t *st, mISDN_pid_t *pid, mISDNobject_t *ocapi) + { +@@ -719,7 +727,7 @@ ControllerConstr(Controller_t **contr_p, + contr->ctrl->load_firmware = LoadFirmware; + contr->ctrl->reset_ctr = ResetController; + contr->ctrl->procinfo = procinfo; +- contr->ctrl->ctr_read_proc = read_proc; ++ contr->ctrl->proc_fops = &misdn_proc_fops; + retval = attach_capi_ctr(contr->ctrl); + #endif + if (!retval) { diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_c new file mode 100644 index 000000000..ab96e3189 --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_c @@ -0,0 +1,75 @@ + - old lock initialisers got renamed + - init_MUTEX_LOCKED got dropped, use the real sema_init instead + - force sysfs-object creation +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/core.c 2009-06-09 10:08:45.000000000 +0200 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/core.c 2011-07-20 16:42:18.342001559 +0200 +@@ -23,10 +23,10 @@ static char *mISDN_core_version = MISDN + static void (*dt_new_frame) (mISDNstack_t *stack, enum mISDN_dt_type type, struct sk_buff *skb, int duplicate_skb) = NULL; + + LIST_HEAD(mISDN_objectlist); +-static rwlock_t mISDN_objects_lock = RW_LOCK_UNLOCKED; ++static rwlock_t mISDN_objects_lock = __RW_LOCK_UNLOCKED(old_style_rw_init); + + LIST_HEAD(mISDN_modulelist); +-static rwlock_t mISDN_modules_lock = RW_LOCK_UNLOCKED; ++static rwlock_t mISDN_modules_lock = __RW_LOCK_UNLOCKED(old_style_rw_init); + struct modulelist { + struct list_head list; + struct module *module; +@@ -35,7 +35,7 @@ struct modulelist { + int core_debug; + + static u_char entityarray[MISDN_MAX_ENTITY/8]; +-static spinlock_t entity_lock = SPIN_LOCK_UNLOCKED; ++static spinlock_t entity_lock = __SPIN_LOCK_UNLOCKED(old_style_spin_init); + + static uint debug; + static int obj_id; +@@ -724,7 +724,7 @@ int mISDN_register(mISDNobject_t *obj) { + obj->id); + if (core_debug & DEBUG_CORE_FUNC) + printk(KERN_DEBUG "mISDN_register: obj(%p)\n", obj); +-#ifndef SYSFS_SUPPORT_2_6_24 ++//#ifndef SYSFS_SUPPORT_2_6_24 + retval = mISDN_register_sysfs_obj(obj); + if (retval) { + printk(KERN_ERR "mISDN_register class_device_register return(%d)\n", retval); +@@ -732,7 +732,7 @@ int mISDN_register(mISDNobject_t *obj) { + list_del(&obj->list); + write_unlock_irqrestore(&mISDN_objects_lock, flags); + } +-#endif ++//#endif + return(retval); + } + +@@ -758,9 +758,10 @@ int mISDN_unregister(mISDNobject_t *obj) + if (core_debug & DEBUG_CORE_FUNC) + printk(KERN_DEBUG "mISDN_unregister: mISDN_objectlist(%p<-%p->%p)\n", + mISDN_objectlist.prev, &mISDN_objectlist, mISDN_objectlist.next); ++ mISDN_unregister_sysfs_obj(obj); + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) + #ifdef SYSFS_SUPPORT +- device_unregister(&obj->class_dev); ++ //device_unregister(&obj->class_dev); + #endif + #else + class_device_unregister(&obj->class_dev); +@@ -774,7 +775,7 @@ mISDNInit(void) + struct semaphore sem; + int err; + +- init_MUTEX_LOCKED(&sem); ++ sema_init(&sem, 0); + + printk(KERN_INFO "Modular ISDN Stack core version (%s) revision (%s)\n", mISDN_core_version, mISDN_core_revision); + core_debug = debug; +@@ -817,7 +818,7 @@ sysfs_fail: + void mISDN_cleanup(void) { + struct semaphore sem; + +- init_MUTEX_LOCKED(&sem); ++ sema_init(&sem, 0); + + free_mISDNdev(); + if (!list_empty(&mISDN_objectlist)) { diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_h b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_h new file mode 100644 index 000000000..bea80f3de --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_core_h @@ -0,0 +1,19 @@ + - daemonize is defined in linux/sched.h +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/core.h 2009-01-22 14:36:34.000000000 +0100 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/core.h 2011-07-20 16:42:17.471001559 +0200 +@@ -4,6 +4,7 @@ + * + */ + ++#include <linux/sched.h> + #include <linux/slab.h> + #include <linux/string.h> + #include <linux/mISDNif.h> +@@ -61,6 +62,7 @@ extern mISDNinstance_t *get_instance(mIS + + /* from sysfs_obj.c */ + extern int mISDN_register_sysfs_obj(mISDNobject_t *); ++extern void mISDN_unregister_sysfs_obj(mISDNobject_t *); + extern int mISDN_sysfs_init(void); + extern void mISDN_sysfs_cleanup(void); + 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); diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_hfcs_usb_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_hfcs_usb_c new file mode 100644 index 000000000..f8501ef02 --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_hfcs_usb_c @@ -0,0 +1,17 @@ + - add the viprinet ISDN USB device ID + - some debug output +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/hfcs_usb.c 2009-01-22 14:36:34.000000000 +0100 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/hfcs_usb.c 2011-07-20 15:00:25.362001559 +0200 +@@ -208,6 +208,12 @@ static struct usb_device_id hfcsusb_idta + {LED_SCHEME1, {0x88, -64, -32, -16}, + "ZyXEL OMNI.NET USB II"}), + }, ++ { ++ USB_DEVICE(0x18d8, 0x1020), ++ .driver_info = (unsigned long) &((hfcsusb_vdata) ++ {LED_SCHEME1, {0, 1, 0, 0}, ++ "Viprinet ISDN"}), ++ }, + { } + }; + diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_stack_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_stack_c new file mode 100644 index 000000000..972660318 --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_stack_c @@ -0,0 +1,34 @@ + - same as with core.c + - try forcing sysfs-object creation +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/stack.c 2009-01-22 14:36:34.000000000 +0100 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/stack.c 2011-07-20 16:43:13.224001559 +0200 +@@ -9,9 +9,9 @@ + #include "core.h" + + static LIST_HEAD(mISDN_stacklist); +-static rwlock_t stacklist_lock = RW_LOCK_UNLOCKED; ++static rwlock_t stacklist_lock = __RW_LOCK_UNLOCKED(old_style_rw_init); + static LIST_HEAD(mISDN_instlist); +-static rwlock_t instlist_lock = RW_LOCK_UNLOCKED; ++static rwlock_t instlist_lock = __RW_LOCK_UNLOCKED(old_style_rw_init); + + int + get_stack_cnt(void) +@@ -793,7 +793,7 @@ delete_stack(mISDNstack_t *st) + struct semaphore sem; + u_long flags; + +- init_MUTEX_LOCKED(&sem); ++ sema_init(&sem, 0); + + if (core_debug & DEBUG_CORE_FUNC) + printk(KERN_DEBUG "%s: st(%p:%08x)\n", __FUNCTION__, st, st->id); +@@ -1216,7 +1216,7 @@ clear_stack(mISDNstack_t *st, int wait) + + if (wait) { + struct semaphore sem; +- init_MUTEX_LOCKED(&sem); ++ sema_init(&sem, 0); + + hhe->data[0] = &sem; + _queue_message(st, skb); diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_inst_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_inst_c new file mode 100644 index 000000000..bdc1d1397 --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_inst_c @@ -0,0 +1,30 @@ + - see core.c +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/sysfs_inst.c 2009-06-09 10:09:20.000000000 +0200 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/sysfs_inst.c 2011-07-11 14:08:22.920000979 +0200 +@@ -82,7 +82,7 @@ static void release_mISDN_inst(struct de + #endif + if (core_debug & DEBUG_SYSFS) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +- printk(KERN_INFO "release instance class dev %s\n", dev->bus_id); ++ printk(KERN_INFO "release instance class dev %s\n", kobject_name(&dev->kobj)); + #else + printk(KERN_INFO "release instance class dev %s\n", dev->class_id); + #endif +@@ -99,7 +99,7 @@ static void release_mISDN_inst(struct cl + #endif + if (core_debug & DEBUG_SYSFS) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +- printk(KERN_INFO "release instance class dev %s\n", dev->bus_id); ++ printk(KERN_INFO "release instance class dev %s\n", kobject_name(&dev->kobj)); + #else + printk(KERN_INFO "release instance class dev %s\n", dev->class_id); + #endif +@@ -127,7 +127,7 @@ mISDN_register_sysfs_inst(mISDNinstance_ + + inst->class_dev.class = &inst_dev_class; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +- snprintf(inst->class_dev.bus_id, BUS_ID_SIZE, "inst-%08x", inst->id); ++ dev_set_name(&inst->class_dev, "inst-%08x", inst->id); + err = device_register(&inst->class_dev); + #else + snprintf(inst->class_dev.class_id, BUS_ID_SIZE, "inst-%08x", inst->id); diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_obj_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_obj_c new file mode 100644 index 000000000..80434a1ba --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_obj_c @@ -0,0 +1,33 @@ + - bus_id field is gone from struct device now +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/sysfs_obj.c 2009-06-09 08:20:29.000000000 +0200 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/sysfs_obj.c 2011-07-20 16:49:35.771001557 +0200 +@@ -136,7 +136,7 @@ mISDN_register_sysfs_obj(mISDNobject_t * + + obj->class_dev.class = &obj_dev_class; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) +- snprintf(obj->class_dev.bus_id, BUS_ID_SIZE, "obj-%d", obj->id); ++ dev_set_name(&obj->class_dev, "obj-%d", obj->id); + err = device_register(&obj->class_dev); + #else + snprintf(obj->class_dev.class_id, BUS_ID_SIZE, "obj-%d", obj->id); +@@ -181,6 +181,20 @@ out: + return(err); + } + ++void ++mISDN_unregister_sysfs_obj(mISDNobject_t *obj) { ++#ifdef SYSFS_SUPPORT ++ if (obj->owner) ++ sysfs_remove_link(&obj->class_dev.kobj, "module"); ++ sysfs_remove_group(&obj->class_dev.kobj, &DPROTO_group); ++ sysfs_remove_group(&obj->class_dev.kobj, &BPROTO_group); ++#endif ++ device_remove_file(&obj->class_dev, &dev_attr_refcnt); ++ device_remove_file(&obj->class_dev, &dev_attr_name); ++ device_remove_file(&obj->class_dev, &dev_attr_id); ++ device_unregister(&obj->class_dev); ++} ++ + int + mISDN_sysfs_init(void) { + int err; diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_st_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_st_c new file mode 100644 index 000000000..61d88e3fc --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_sysfs_st_c @@ -0,0 +1,18 @@ + yeah, same as always +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/sysfs_st.c 2009-06-09 10:10:16.000000000 +0200 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/sysfs_st.c 2011-07-11 14:10:50.061001669 +0200 +@@ -260,11 +260,11 @@ mISDN_register_sysfs_stack(mISDNstack_t + st->class_dev.class = &stack_dev_class; + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) + if (st->id & FLG_CHILD_STACK) +- snprintf(st->class_dev.bus_id, BUS_ID_SIZE, "chst-%08x", st->id); ++ dev_set_name(&st->class_dev, "chst-%08x", st->id); + else if (st->id & FLG_CLONE_STACK) +- snprintf(st->class_dev.bus_id, BUS_ID_SIZE, "clst-%08x", st->id); ++ dev_set_name(&st->class_dev, "clst-%08x", st->id); + else +- snprintf(st->class_dev.bus_id, BUS_ID_SIZE, "st-%08x", st->id); ++ dev_set_name(&st->class_dev, "st-%08x", st->id); + if (st->mgr) + st->class_dev.parent = st->mgr->class_dev.parent; + err = device_register(&st->class_dev); diff --git a/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_udevice_c b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_udevice_c new file mode 100644 index 000000000..468bd0dcb --- /dev/null +++ b/package/mISDN/patches/patch-drivers_isdn_hardware_mISDN_udevice_c @@ -0,0 +1,36 @@ + - same as with core.c +--- mISDN-1_1_9_2.orig/drivers/isdn/hardware/mISDN/udevice.c 2009-01-22 14:36:34.000000000 +0100 ++++ mISDN-1_1_9_2/drivers/isdn/hardware/mISDN/udevice.c 2011-07-11 13:54:44.650001546 +0200 +@@ -57,7 +57,7 @@ typedef struct entity_item { + } entity_item_t; + + static LIST_HEAD(mISDN_devicelist); +-static rwlock_t mISDN_device_lock = RW_LOCK_UNLOCKED; ++static rwlock_t mISDN_device_lock = __RW_LOCK_UNLOCKED(old_style_rw_init); + + static mISDNobject_t udev_obj; + static char MName[] = "UserDevice"; +@@ -1458,7 +1458,7 @@ init_device(u_int minor) { + init_waitqueue_head(&dev->wport.procq); + skb_queue_head_init(&dev->rport.queue); + skb_queue_head_init(&dev->wport.queue); +- init_MUTEX(&dev->io_sema); ++ sema_init(&dev->io_sema, 1); + INIT_LIST_HEAD(&dev->layerlist); + INIT_LIST_HEAD(&dev->stacklist); + INIT_LIST_HEAD(&dev->timerlist); +@@ -1557,12 +1557,12 @@ mISDN_open(struct inode *ino, struct fil + return(-ENOMEM); + dev->open_mode |= filep->f_mode & (FMODE_READ | FMODE_WRITE); + if (dev->open_mode & FMODE_READ){ +- dev->rport.lock = SPIN_LOCK_UNLOCKED; ++ dev->rport.lock = __SPIN_LOCK_UNLOCKED(old_style_spin_init); + dev->rport.maxqlen = DEFAULT_PORT_QUEUELEN; + test_and_set_bit(FLG_mISDNPORT_OPEN, &dev->rport.Flag); + } + if (dev->open_mode & FMODE_WRITE) { +- dev->wport.lock = SPIN_LOCK_UNLOCKED; ++ dev->wport.lock = __SPIN_LOCK_UNLOCKED(old_style_spin_init); + dev->wport.maxqlen = DEFAULT_PORT_QUEUELEN; + test_and_set_bit(FLG_mISDNPORT_OPEN, &dev->wport.Flag); + } |