|
@@ -39,6 +39,7 @@
|
|
#include <linux/in.h>
|
|
#include <linux/in.h>
|
|
#include <linux/igmp.h>
|
|
#include <linux/igmp.h>
|
|
#include <linux/delay.h>
|
|
#include <linux/delay.h>
|
|
|
|
+#include <linux/kthread.h>
|
|
#include <net/arp.h>
|
|
#include <net/arp.h>
|
|
#include <net/ip.h>
|
|
#include <net/ip.h>
|
|
|
|
|
|
@@ -1259,7 +1260,6 @@ lcs_register_mc_addresses(void *data)
|
|
struct in_device *in4_dev;
|
|
struct in_device *in4_dev;
|
|
|
|
|
|
card = (struct lcs_card *) data;
|
|
card = (struct lcs_card *) data;
|
|
- daemonize("regipm");
|
|
|
|
|
|
|
|
if (!lcs_do_run_thread(card, LCS_SET_MC_THREAD))
|
|
if (!lcs_do_run_thread(card, LCS_SET_MC_THREAD))
|
|
return 0;
|
|
return 0;
|
|
@@ -1753,11 +1753,10 @@ lcs_start_kernel_thread(struct work_struct *work)
|
|
struct lcs_card *card = container_of(work, struct lcs_card, kernel_thread_starter);
|
|
struct lcs_card *card = container_of(work, struct lcs_card, kernel_thread_starter);
|
|
LCS_DBF_TEXT(5, trace, "krnthrd");
|
|
LCS_DBF_TEXT(5, trace, "krnthrd");
|
|
if (lcs_do_start_thread(card, LCS_RECOVERY_THREAD))
|
|
if (lcs_do_start_thread(card, LCS_RECOVERY_THREAD))
|
|
- kernel_thread(lcs_recovery, (void *) card, SIGCHLD);
|
|
|
|
|
|
+ kthread_run(lcs_recovery, card, "lcs_recover");
|
|
#ifdef CONFIG_IP_MULTICAST
|
|
#ifdef CONFIG_IP_MULTICAST
|
|
if (lcs_do_start_thread(card, LCS_SET_MC_THREAD))
|
|
if (lcs_do_start_thread(card, LCS_SET_MC_THREAD))
|
|
- kernel_thread(lcs_register_mc_addresses,
|
|
|
|
- (void *) card, SIGCHLD);
|
|
|
|
|
|
+ kthread_run(lcs_register_mc_addresses, card, "regipm");
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2269,7 +2268,6 @@ lcs_recovery(void *ptr)
|
|
int rc;
|
|
int rc;
|
|
|
|
|
|
card = (struct lcs_card *) ptr;
|
|
card = (struct lcs_card *) ptr;
|
|
- daemonize("lcs_recover");
|
|
|
|
|
|
|
|
LCS_DBF_TEXT(4, trace, "recover1");
|
|
LCS_DBF_TEXT(4, trace, "recover1");
|
|
if (!lcs_do_run_thread(card, LCS_RECOVERY_THREAD))
|
|
if (!lcs_do_run_thread(card, LCS_RECOVERY_THREAD))
|