summaryrefslogtreecommitdiff
path: root/target/linux/generic-2.4/patches/224-atm_hotplug.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/generic-2.4/patches/224-atm_hotplug.patch')
-rw-r--r--target/linux/generic-2.4/patches/224-atm_hotplug.patch96
1 files changed, 0 insertions, 96 deletions
diff --git a/target/linux/generic-2.4/patches/224-atm_hotplug.patch b/target/linux/generic-2.4/patches/224-atm_hotplug.patch
deleted file mode 100644
index b1238ed..0000000
--- a/target/linux/generic-2.4/patches/224-atm_hotplug.patch
+++ /dev/null
@@ -1,96 +0,0 @@
---- a/include/linux/atmdev.h
-+++ b/include/linux/atmdev.h
-@@ -400,6 +400,7 @@ extern rwlock_t vcc_sklist_lock;
- struct atm_dev *atm_dev_register(const char *type,const struct atmdev_ops *ops,
- int number,atm_dev_flags_t *flags); /* number == -1: pick first available */
- struct atm_dev *atm_dev_lookup(int number);
-+void atm_dev_set_link_status(struct atm_dev *dev, int status);
- void atm_dev_deregister(struct atm_dev *dev);
- void shutdown_atm_dev(struct atm_dev *dev);
- void vcc_insert_socket(struct sock *sk);
---- a/net/atm/resources.c
-+++ b/net/atm/resources.c
-@@ -10,6 +10,7 @@
- #include <linux/sonet.h>
- #include <linux/kernel.h> /* for barrier */
- #include <linux/module.h>
-+#include <linux/kmod.h>
- #include <linux/bitops.h>
- #include <net/sock.h> /* for struct sock */
- #include <asm/segment.h> /* for get_fs_long and put_fs_long */
-@@ -70,6 +71,44 @@ struct atm_dev *atm_dev_lookup(int numbe
- return dev;
- }
-
-+#ifdef CONFIG_HOTPLUG
-+static void atm_run_sbin_hotplug(struct atm_dev *dev, char *action)
-+{
-+ char *argv[3], *envp[5], ifname[12 + IFNAMSIZ], atmname[255], action_str[32];
-+ int i;
-+
-+ sprintf(ifname, "INTERFACE=atm%d", dev->number);
-+ sprintf(atmname, "ATMDRIVER=%s", dev->type);
-+ sprintf(action_str, "ACTION=%s", action);
-+
-+ i = 0;
-+ argv[i++] = hotplug_path;
-+ argv[i++] = "net";
-+ argv[i] = 0;
-+
-+ i = 0;
-+ /* minimal command environment */
-+ envp [i++] = "HOME=/";
-+ envp [i++] = "PATH=/sbin:/bin:/usr/sbin:/usr/bin";
-+ envp [i++] = ifname;
-+ envp [i++] = atmname;
-+ envp [i++] = action_str;
-+ envp [i] = 0;
-+
-+ return call_usermodehelper(argv [0], argv, envp);
-+}
-+#endif
-+
-+void atm_dev_set_link_status(struct atm_dev *dev, int status)
-+{
-+#ifdef CONFIG_HOTPLUG
-+ if (status)
-+ atm_run_sbin_hotplug(dev, "up");
-+ else
-+ atm_run_sbin_hotplug(dev, "down");
-+#endif
-+}
-+
- struct atm_dev *atm_dev_register(const char *type, const struct atmdev_ops *ops,
- int number, atm_dev_flags_t *flags)
- {
-@@ -123,7 +162,10 @@ struct atm_dev *atm_dev_register(const c
- }
- }
- #endif
--
-+#ifdef CONFIG_HOTPLUG
-+ atm_run_sbin_hotplug(dev, "register");
-+#endif
-+
- return dev;
- }
-
-@@ -131,6 +173,10 @@ struct atm_dev *atm_dev_register(const c
- void atm_dev_deregister(struct atm_dev *dev)
- {
- unsigned long warning_time;
-+
-+#ifdef CONFIG_HOTPLUG
-+ atm_run_sbin_hotplug(dev, "unregister");
-+#endif
-
- #ifdef CONFIG_PROC_FS
- if (dev->ops->proc_read)
-@@ -399,6 +445,7 @@ done:
- }
-
-
-+EXPORT_SYMBOL(atm_dev_set_link_status);
- EXPORT_SYMBOL(atm_dev_register);
- EXPORT_SYMBOL(atm_dev_deregister);
- EXPORT_SYMBOL(atm_dev_lookup);