diff options
Diffstat (limited to 'libs/dahdi-linux/patches/140-Use-proc_ops-on-kernels-5.6.patch')
| -rw-r--r-- | libs/dahdi-linux/patches/140-Use-proc_ops-on-kernels-5.6.patch | 478 |
1 files changed, 0 insertions, 478 deletions
diff --git a/libs/dahdi-linux/patches/140-Use-proc_ops-on-kernels-5.6.patch b/libs/dahdi-linux/patches/140-Use-proc_ops-on-kernels-5.6.patch deleted file mode 100644 index 33a35cf..0000000 --- a/libs/dahdi-linux/patches/140-Use-proc_ops-on-kernels-5.6.patch +++ /dev/null @@ -1,478 +0,0 @@ -From 34b9c77c9ab2794d4e912461e4c1080c4b1f6184 Mon Sep 17 00:00:00 2001 -From: Shaun Ruffell <sruffell@sruffell.net> -Date: Sun, 23 Feb 2020 19:39:24 -0600 -Subject: [PATCH 05/12] Use proc_ops on kernels >= 5.6 - -In commit (d56c0d45f0e27 "proc: decouple proc from VFS with "struct proc_ops"") -[1], proc_create_data no longer takes a file_operations structure, but instead -takes a struct proc_ops in order to conserve memory in the kernel. - -This change is necessary for DAHDI to work with kernels >= 5.6 - -[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d56c0d45f0e27f814e87a1676b6bd - -Signed-off-by: Shaun Ruffell <sruffell@sruffell.net> ---- - drivers/dahdi/dahdi-base.c | 9 +++++ - drivers/dahdi/dahdi_dynamic_ethmf.c | 18 +++++++-- - drivers/dahdi/xpp/card_bri.c | 23 ++++++++--- - drivers/dahdi/xpp/card_fxo.c | 25 +++++++++--- - drivers/dahdi/xpp/card_fxs.c | 35 +++++++++++++--- - drivers/dahdi/xpp/xbus-core.c | 62 ++++++++++++++++++++++++----- - drivers/dahdi/xpp/xpp_dahdi.c | 23 ++++++++--- - drivers/dahdi/xpp/xpp_usb.c | 26 +++++++++--- - include/dahdi/kernel.h | 11 +++-- - 9 files changed, 187 insertions(+), 45 deletions(-) - ---- a/drivers/dahdi/dahdi-base.c -+++ b/drivers/dahdi/dahdi-base.c -@@ -1015,6 +1015,14 @@ static int dahdi_proc_open(struct inode - return single_open(file, dahdi_seq_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops dahdi_proc_ops = { -+ .proc_open = dahdi_proc_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations dahdi_proc_ops = { - .owner = THIS_MODULE, - .open = dahdi_proc_open, -@@ -1022,6 +1030,7 @@ static const struct file_operations dahd - .llseek = seq_lseek, - .release = single_release, - }; -+#endif /* DAHDI_HAVE_PROC_OPS */ - - #endif - ---- a/drivers/dahdi/dahdi_dynamic_ethmf.c -+++ b/drivers/dahdi/dahdi_dynamic_ethmf.c -@@ -733,12 +733,22 @@ static int ztdethmf_proc_open(struct ino - return single_open(file, ztdethmf_proc_show, NULL); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops ztdethmf_proc_fops = { -+ .proc_open = ztdethmf_proc_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = seq_release, -+}; -+#else - static const struct file_operations ztdethmf_proc_fops = { -- .open = ztdethmf_proc_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = seq_release, -+ .owner = THIS_MODULE, -+ .open = ztdethmf_proc_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = seq_release, - }; -+#endif /* DAHDI_HAVE_PROC_OPS */ - #endif - - static int __init ztdethmf_init(void) ---- a/drivers/dahdi/xpp/card_bri.c -+++ b/drivers/dahdi/xpp/card_bri.c -@@ -153,8 +153,12 @@ static int write_state_register(xpd_t *x - static bool bri_packet_is_valid(xpacket_t *pack); - static void bri_packet_dump(const char *msg, xpacket_t *pack); - #ifdef CONFIG_PROC_FS -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_bri_info_ops; -+#else - static const struct file_operations proc_bri_info_ops; - #endif -+#endif - static int bri_spanconfig(struct file *file, struct dahdi_span *span, - struct dahdi_lineconfig *lc); - static int bri_chanconfig(struct file *file, struct dahdi_chan *chan, -@@ -1740,13 +1744,22 @@ static int proc_bri_info_open(struct ino - return single_open(file, proc_bri_info_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_bri_info_ops = { -+ .proc_open = proc_bri_info_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations proc_bri_info_ops = { -- .owner = THIS_MODULE, -- .open = proc_bri_info_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = single_release, -+ .owner = THIS_MODULE, -+ .open = proc_bri_info_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = single_release, - }; -+#endif /* DAHDI_HAVE_PROC_OPS */ - #endif - - static int bri_xpd_probe(struct device *dev) ---- a/drivers/dahdi/xpp/card_fxo.c -+++ b/drivers/dahdi/xpp/card_fxo.c -@@ -107,9 +107,13 @@ enum fxo_leds { - static bool fxo_packet_is_valid(xpacket_t *pack); - static void fxo_packet_dump(const char *msg, xpacket_t *pack); - #ifdef CONFIG_PROC_FS -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_fxo_info_ops; -+#else - static const struct file_operations proc_fxo_info_ops; -+#endif - #ifdef WITH_METERING --static const struct file_operations proc_xpd_metering_ops; -+static const struct proc_ops proc_xpd_metering_ops; - #endif - #endif - static void dahdi_report_battery(xpd_t *xpd, lineno_t chan); -@@ -1484,13 +1488,22 @@ static int proc_fxo_info_open(struct ino - return single_open(file, proc_fxo_info_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_fxo_info_ops = { -+ .proc_open = proc_fxo_info_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations proc_fxo_info_ops = { -- .owner = THIS_MODULE, -- .open = proc_fxo_info_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = single_release, -+ .owner = THIS_MODULE, -+ .open = proc_fxo_info_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = single_release, - }; -+#endif - - #ifdef WITH_METERING - static int proc_xpd_metering_show(struct seq_file *sfile, void *not_used) ---- a/drivers/dahdi/xpp/card_fxs.c -+++ b/drivers/dahdi/xpp/card_fxs.c -@@ -160,11 +160,19 @@ enum neon_state { - static bool fxs_packet_is_valid(xpacket_t *pack); - static void fxs_packet_dump(const char *msg, xpacket_t *pack); - #ifdef CONFIG_PROC_FS -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_fxs_info_ops; -+#else - static const struct file_operations proc_fxs_info_ops; -+#endif - #ifdef WITH_METERING -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_xpd_metering_ops; -+#else - static const struct file_operations proc_xpd_metering_ops; - #endif - #endif -+#endif - static void start_stop_vm_led(xbus_t *xbus, xpd_t *xpd, lineno_t pos); - - #define PROC_FXS_INFO_FNAME "fxs_info" -@@ -2115,13 +2123,22 @@ static int proc_fxs_info_open(struct ino - return single_open(file, proc_fxs_info_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_fxs_info_ops = { -+ .proc_open = proc_fxs_info_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations proc_fxs_info_ops = { -- .owner = THIS_MODULE, -- .open = proc_fxs_info_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = single_release, -+ .owner = THIS_MODULE, -+ .open = proc_fxs_info_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = single_release, - }; -+#endif - - #ifdef WITH_METERING - static ssize_t proc_xpd_metering_write(struct file *file, -@@ -2165,12 +2182,20 @@ static int proc_xpd_metering_open(struct - file->private_data = PDE_DATA(inode); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_xpd_metering_ops = { -+ .proc_open = proc_xpd_metering_open, -+ .proc_write = proc_xpd_metering_write, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations proc_xpd_metering_ops = { - .owner = THIS_MODULE, - .open = proc_xpd_metering_open, - .write = proc_xpd_metering_write, - .release = single_release, - }; -+#endif /* DAHDI_HAVE_PROC_OPS */ - #endif - #endif - ---- a/drivers/dahdi/xpp/xbus-core.c -+++ b/drivers/dahdi/xpp/xbus-core.c -@@ -51,8 +51,15 @@ static const char rcsid[] = "$Id$"; - #ifdef PROTOCOL_DEBUG - #ifdef CONFIG_PROC_FS - #define PROC_XBUS_COMMAND "command" -+ -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_xbus_command_ops; -+#else - static const struct file_operations proc_xbus_command_ops; -+#endif /* DAHDI_HAVE_PROC_OPS */ -+ - #endif -+ - #endif - - /* Command line parameters */ -@@ -66,8 +73,15 @@ static DEF_PARM_BOOL(dahdi_autoreg, 0, 0 - "Register devices automatically (1) or not (0). UNUSED."); - - #ifdef CONFIG_PROC_FS -+ -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops xbus_read_proc_ops; -+#else - static const struct file_operations xbus_read_proc_ops; --#endif -+#endif /* DAHDI_HAVE_PROC_OPS */ -+ -+#endif /* CONFIG_PROC_FS */ -+ - static void transport_init(xbus_t *xbus, struct xbus_ops *ops, - ushort max_send_size, - struct device *transport_device, void *priv); -@@ -1831,13 +1845,22 @@ static int xbus_read_proc_open(struct in - return single_open(file, xbus_proc_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops xbus_read_proc_ops = { -+ .proc_open = xbus_read_proc_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations xbus_read_proc_ops = { -- .owner = THIS_MODULE, -- .open = xbus_read_proc_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = single_release, -+ .owner = THIS_MODULE, -+ .open = xbus_read_proc_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = single_release, - }; -+#endif /* DAHDI_HAVE_PROC_OPS */ - - #ifdef PROTOCOL_DEBUG - static ssize_t proc_xbus_command_write(struct file *file, -@@ -1930,11 +1953,19 @@ static int proc_xbus_command_open(struct - return 0; - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops proc_xbus_command_ops = { -+ .proc_open = proc_xbus_command_open, -+ .proc_write = proc_xbus_command_write, -+}; -+#else - static const struct file_operations proc_xbus_command_ops = { - .owner = THIS_MODULE, - .open = proc_xbus_command_open, - .write = proc_xbus_command_write, - }; -+#endif /* DAHDI_HAVE_PROC_OPS */ -+ - #endif - - static int xpp_proc_read_show(struct seq_file *sfile, void *data) -@@ -1964,13 +1995,22 @@ static int xpp_proc_read_open(struct ino - return single_open(file, xpp_proc_read_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops xpp_proc_read_ops = { -+ .proc_open = xpp_proc_read_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations xpp_proc_read_ops = { -- .owner = THIS_MODULE, -- .open = xpp_proc_read_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = single_release, -+ .owner = THIS_MODULE, -+ .open = xpp_proc_read_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = single_release, - }; -+#endif /* DAHDI_HAVE_PROC_OPS */ - - #endif - ---- a/drivers/dahdi/xpp/xpp_dahdi.c -+++ b/drivers/dahdi/xpp/xpp_dahdi.c -@@ -103,8 +103,12 @@ int total_registered_spans(void) - } - - #ifdef CONFIG_PROC_FS -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops xpd_read_proc_ops; -+#else - static const struct file_operations xpd_read_proc_ops; - #endif -+#endif - - /*------------------------- XPD Management -------------------------*/ - -@@ -392,13 +396,22 @@ static int xpd_read_proc_open(struct ino - return single_open(file, xpd_read_proc_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops xpd_read_proc_ops = { -+ .proc_open = xpd_read_proc_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations xpd_read_proc_ops = { -- .owner = THIS_MODULE, -- .open = xpd_read_proc_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = single_release, -+ .owner = THIS_MODULE, -+ .open = xpd_read_proc_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = single_release, - }; -+#endif - - #endif - ---- a/drivers/dahdi/xpp/xpp_usb.c -+++ b/drivers/dahdi/xpp/xpp_usb.c -@@ -232,9 +232,14 @@ static void xpp_receive_callback(struct - static int xusb_probe(struct usb_interface *interface, - const struct usb_device_id *id); - static void xusb_disconnect(struct usb_interface *interface); --#ifdef CONFIG_PROC_FS -+ -+#ifdef CONFIG_PROC_FS -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops xusb_read_proc_ops; -+#else - static const struct file_operations xusb_read_proc_ops; - #endif -+#endif - - /*------------------------------------------------------------------*/ - -@@ -1113,13 +1118,22 @@ static int xusb_read_proc_open(struct in - return single_open(file, xusb_read_proc_show, PDE_DATA(inode)); - } - -+#ifdef DAHDI_HAVE_PROC_OPS -+static const struct proc_ops xusb_read_proc_ops = { -+ .proc_open = xusb_read_proc_open, -+ .proc_read = seq_read, -+ .proc_lseek = seq_lseek, -+ .proc_release = single_release, -+}; -+#else - static const struct file_operations xusb_read_proc_ops = { -- .owner = THIS_MODULE, -- .open = xusb_read_proc_open, -- .read = seq_read, -- .llseek = seq_lseek, -- .release = single_release, -+ .owner = THIS_MODULE, -+ .open = xusb_read_proc_open, -+ .read = seq_read, -+ .llseek = seq_lseek, -+ .release = single_release, - }; -+#endif - - - #endif ---- a/include/dahdi/kernel.h -+++ b/include/dahdi/kernel.h -@@ -68,6 +68,8 @@ - #define HAVE_NET_DEVICE_OPS - #endif - -+#define DAHDI_HAVE_PROC_OPS -+ - /* __dev* were removed in 3.8. They still have effect in 2.6.18. */ - #ifndef __devinit - # define __devinit -@@ -1375,6 +1377,10 @@ static inline short dahdi_txtone_nextsam - /*! Maximum audio mask */ - #define DAHDI_FORMAT_AUDIO_MASK ((1 << 16) - 1) - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0) -+ -+#undef DAHDI_HAVE_PROC_OPS -+ - #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0) - - #ifndef TIMER_DATA_TYPE -@@ -1485,14 +1491,13 @@ static inline void *PDE_DATA(const struc - #endif /* 4.10.0 */ - #endif /* 4.11.0 */ - #endif /* 4.13.0 */ --#else /* >= 4.15.0 */ -+#endif /* 4.15.0 */ -+#endif /* 5.6 */ - - #ifndef TIMER_DATA_TYPE - #define TIMER_DATA_TYPE struct timer_list * - #endif - --#endif /* 4.15.0 */ -- - #ifndef dahdi_ktime_equal - static inline int dahdi_ktime_equal(const ktime_t cmp1, const ktime_t cmp2) - { |
