compile mISDN for 3.13 / 3.14 kernels
Martin Bachem <[email protected]> Fri, 15 Aug 2014 09:51:38 +0200
| Newsgroups | gmane.linux.isdn.i4l.user |
|---|---|
| Message-ID | <[email protected]> |
Hi List, Hi Karsten, don't know if this does any good, this patch makes compile mISDN on 3.13 and 3.14 kernels anyway. I did not do any ISDN testing, just satisfied the compiler atm. basically it just adds three files to the current mISDN source tree: patches/convert_class_code_to_use_dev_group.patch patches/convert_create_proc_entry.patch series/series_3.13 series/series_3.14 cheers, Martin _______________________________________________ isdn4linux mailing list [email protected] https://www.isdn4linux.de/mailman/listinfo/isdn4linux
0001-compiles-for-kernel-3.13-and-3.14.patch
(text/x-patch, 8 KB)
From 14f44f2cfd1608453ae10dc46cb312a843d3b73a Mon Sep 17 00:00:00 2001 From: Martin Bachem <[email protected]> Date: Fri, 15 Aug 2014 09:28:13 +0200 Subject: [PATCH] compiles for kernel 3.13 and 3.14 compiles on ubuntu 14.04 amd64 using 3.13 compiles on debian testing (jessie)using 3.14 (atm) --- patches/convert_class_code_to_use_dev_group.patch | 160 ++++++++++++++++++++++ patches/convert_create_proc_entry.patch | 18 +++ series/series_3.13 | 2 + series/series_3.14 | 2 + 4 files changed, 182 insertions(+) create mode 100644 patches/convert_class_code_to_use_dev_group.patch create mode 100644 patches/convert_create_proc_entry.patch create mode 100644 series/series_3.13 create mode 100644 series/series_3.14 diff --git a/patches/convert_class_code_to_use_dev_group.patch b/patches/convert_class_code_to_use_dev_group.patch new file mode 100644 index 0000000..9700d2a --- /dev/null +++ b/patches/convert_class_code_to_use_dev_group.patch @@ -0,0 +1,160 @@ +From d98259cbf9f1c86e921caa1241aa8d229249e0b8 Mon Sep 17 00:00:00 2001 +From: Greg Kroah-Hartman <[email protected]> +Date: Wed, 24 Jul 2013 15:05:12 -0700 +Subject: ISDN: convert class code to use dev_groups + +The dev_attrs field of struct class is going away soon, dev_groups +should be used instead. This converts the mISDN class code to use the +correct field. + +Acked-by: Karsten Keil <[email protected]> +Signed-off-by: Greg Kroah-Hartman <[email protected]> + +diff --git a/drivers/isdn/mISDN/core.c b/drivers/isdn/mISDN/core.c +index da30c5c..faf5054 100644 +--- standalone.orig/drivers/isdn/mISDN/core.c ++++ standalone/drivers/isdn/mISDN/core.c +@@ -37,8 +37,8 @@ static void mISDN_dev_release(struct device *dev) + /* nothing to do: the device is part of its parent's data structure */ + } + +-static ssize_t _show_id(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t id_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + struct mISDNdevice *mdev = dev_to_mISDN(dev); + +@@ -46,9 +46,10 @@ static ssize_t _show_id(struct device *dev, + return -ENODEV; + return sprintf(buf, "%d\n", mdev->id); + } ++static DEVICE_ATTR_RO(id); + +-static ssize_t _show_nrbchan(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t nrbchan_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + struct mISDNdevice *mdev = dev_to_mISDN(dev); + +@@ -56,9 +57,10 @@ static ssize_t _show_nrbchan(struct device *dev, + return -ENODEV; + return sprintf(buf, "%d\n", mdev->nrbchan); + } ++static DEVICE_ATTR_RO(nrbchan); + +-static ssize_t _show_d_protocols(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t d_protocols_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + struct mISDNdevice *mdev = dev_to_mISDN(dev); + +@@ -66,9 +68,10 @@ static ssize_t _show_d_protocols(struct device *dev, + return -ENODEV; + return sprintf(buf, "%d\n", mdev->Dprotocols); + } ++static DEVICE_ATTR_RO(d_protocols); + +-static ssize_t _show_b_protocols(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t b_protocols_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + struct mISDNdevice *mdev = dev_to_mISDN(dev); + +@@ -76,9 +79,10 @@ static ssize_t _show_b_protocols(struct device *dev, + return -ENODEV; + return sprintf(buf, "%d\n", mdev->Bprotocols | get_all_Bprotocols()); + } ++static DEVICE_ATTR_RO(b_protocols); + +-static ssize_t _show_protocol(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t protocol_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + struct mISDNdevice *mdev = dev_to_mISDN(dev); + +@@ -86,17 +90,19 @@ static ssize_t _show_protocol(struct device *dev, + return -ENODEV; + return sprintf(buf, "%d\n", mdev->D.protocol); + } ++static DEVICE_ATTR_RO(protocol); + +-static ssize_t _show_name(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t name_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + strcpy(buf, dev_name(dev)); + return strlen(buf); + } ++static DEVICE_ATTR_RO(name); + + #if 0 /* hangs */ +-static ssize_t _set_name(struct device *dev, struct device_attribute *attr, +- const char *buf, size_t count) ++static ssize_t name_set(struct device *dev, struct device_attribute *attr, ++ const char *buf, size_t count) + { + int err = 0; + char *out = kmalloc(count + 1, GFP_KERNEL); +@@ -113,10 +119,11 @@ static ssize_t _set_name(struct device *dev, struct device_attribute *attr, + + return (err < 0) ? err : count; + } ++static DEVICE_ATTR_RW(name); + #endif + +-static ssize_t _show_channelmap(struct device *dev, +- struct device_attribute *attr, char *buf) ++static ssize_t channelmap_show(struct device *dev, ++ struct device_attribute *attr, char *buf) + { + struct mISDNdevice *mdev = dev_to_mISDN(dev); + char *bp = buf; +@@ -127,18 +134,19 @@ static ssize_t _show_channelmap(struct device *dev, + + return bp - buf; + } +- +-static struct device_attribute mISDN_dev_attrs[] = { +- __ATTR(id, S_IRUGO, _show_id, NULL), +- __ATTR(d_protocols, S_IRUGO, _show_d_protocols, NULL), +- __ATTR(b_protocols, S_IRUGO, _show_b_protocols, NULL), +- __ATTR(protocol, S_IRUGO, _show_protocol, NULL), +- __ATTR(channelmap, S_IRUGO, _show_channelmap, NULL), +- __ATTR(nrbchan, S_IRUGO, _show_nrbchan, NULL), +- __ATTR(name, S_IRUGO, _show_name, NULL), +-/* __ATTR(name, S_IRUGO | S_IWUSR, _show_name, _set_name), */ +- {} ++static DEVICE_ATTR_RO(channelmap); ++ ++static struct attribute *mISDN_attrs[] = { ++ &dev_attr_id.attr, ++ &dev_attr_d_protocols.attr, ++ &dev_attr_b_protocols.attr, ++ &dev_attr_protocol.attr, ++ &dev_attr_channelmap.attr, ++ &dev_attr_nrbchan.attr, ++ &dev_attr_name.attr, ++ NULL, + }; ++ATTRIBUTE_GROUPS(mISDN); + + static int mISDN_uevent(struct device *dev, struct kobj_uevent_env *env) + { +@@ -162,7 +170,7 @@ static struct class mISDN_class = { + .name = "mISDN", + .owner = THIS_MODULE, + .dev_uevent = mISDN_uevent, +- .dev_attrs = mISDN_dev_attrs, ++ .dev_groups = mISDN_groups, + .dev_release = mISDN_dev_release, + .class_release = mISDN_class_release, + }; +-- +cgit v0.10.1 + diff --git a/patches/convert_create_proc_entry.patch b/patches/convert_create_proc_entry.patch new file mode 100644 index 0000000..4936bb8 --- /dev/null +++ b/patches/convert_create_proc_entry.patch @@ -0,0 +1,18 @@ +diff --git a/drivers/isdn/mISDN/octvqe/octvqe_linux.c b/drivers/isdn/mISDN/octvqe/octvqe_linux.c +index fcf6c28..8d97229 100644 +--- standalone.orig/drivers/isdn/mISDN/octvqe/octvqe_linux.c ++++ standalone/drivers/isdn/mISDN/octvqe/octvqe_linux.c +@@ -1171,9 +1173,10 @@ static int octvqe_init(void) + } + + /* Try to create a proc entry under the /proc directory. */ +- proc_entry = create_proc_entry(DEV_NAME, 0, NULL); +- if (proc_entry) +- proc_entry->proc_fops = &octdev_proc_ops; ++ proc_entry = proc_create(DEV_NAME, 0, NULL, &octdev_proc_ops); ++ if (proc_entry == NULL) { ++ return -ENOMEM; ++ } + + printk(KERN_INFO "%s: %s. Using major %d, Default EC \"%s%s\" (Built on %s %s).\n", + DEV_NAME, OCTVQE_MODULE_VERSION, iMajor, ZAPTEL_ECHO_NAME, diff --git a/series/series_3.13 b/series/series_3.13 new file mode 100644 index 0000000..56c038c --- /dev/null +++ b/series/series_3.13 @@ -0,0 +1,2 @@ +convert_class_code_to_use_dev_group.patch +convert_create_proc_entry.patch diff --git a/series/series_3.14 b/series/series_3.14 new file mode 100644 index 0000000..56c038c --- /dev/null +++ b/series/series_3.14 @@ -0,0 +1,2 @@ +convert_class_code_to_use_dev_group.patch +convert_create_proc_entry.patch -- 2.0.1