|
@@ -25,11 +25,13 @@
|
|
#define BUFFER_SIZE 2048 /* buffer for the variables */
|
|
#define BUFFER_SIZE 2048 /* buffer for the variables */
|
|
#define NUM_ENVP 32 /* number of env pointers */
|
|
#define NUM_ENVP 32 /* number of env pointers */
|
|
|
|
|
|
-#if defined(CONFIG_HOTPLUG) && defined(CONFIG_NET)
|
|
|
|
|
|
+#if defined(CONFIG_HOTPLUG)
|
|
u64 uevent_seqnum;
|
|
u64 uevent_seqnum;
|
|
char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug";
|
|
char uevent_helper[UEVENT_HELPER_PATH_LEN] = "/sbin/hotplug";
|
|
static DEFINE_SPINLOCK(sequence_lock);
|
|
static DEFINE_SPINLOCK(sequence_lock);
|
|
|
|
+#if defined(CONFIG_NET)
|
|
static struct sock *uevent_sock;
|
|
static struct sock *uevent_sock;
|
|
|
|
+#endif
|
|
|
|
|
|
static char *action_to_string(enum kobject_action action)
|
|
static char *action_to_string(enum kobject_action action)
|
|
{
|
|
{
|
|
@@ -155,6 +157,7 @@ void kobject_uevent(struct kobject *kobj, enum kobject_action action)
|
|
spin_unlock(&sequence_lock);
|
|
spin_unlock(&sequence_lock);
|
|
sprintf(seq_buff, "SEQNUM=%llu", (unsigned long long)seq);
|
|
sprintf(seq_buff, "SEQNUM=%llu", (unsigned long long)seq);
|
|
|
|
|
|
|
|
+#if defined(CONFIG_NET)
|
|
/* send netlink message */
|
|
/* send netlink message */
|
|
if (uevent_sock) {
|
|
if (uevent_sock) {
|
|
struct sk_buff *skb;
|
|
struct sk_buff *skb;
|
|
@@ -179,6 +182,7 @@ void kobject_uevent(struct kobject *kobj, enum kobject_action action)
|
|
netlink_broadcast(uevent_sock, skb, 0, 1, GFP_KERNEL);
|
|
netlink_broadcast(uevent_sock, skb, 0, 1, GFP_KERNEL);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
/* call uevent_helper, usually only enabled during early boot */
|
|
/* call uevent_helper, usually only enabled during early boot */
|
|
if (uevent_helper[0]) {
|
|
if (uevent_helper[0]) {
|
|
@@ -249,6 +253,7 @@ int add_uevent_var(char **envp, int num_envp, int *cur_index,
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(add_uevent_var);
|
|
EXPORT_SYMBOL_GPL(add_uevent_var);
|
|
|
|
|
|
|
|
+#if defined(CONFIG_NET)
|
|
static int __init kobject_uevent_init(void)
|
|
static int __init kobject_uevent_init(void)
|
|
{
|
|
{
|
|
uevent_sock = netlink_kernel_create(NETLINK_KOBJECT_UEVENT, 1, NULL,
|
|
uevent_sock = netlink_kernel_create(NETLINK_KOBJECT_UEVENT, 1, NULL,
|
|
@@ -264,5 +269,6 @@ static int __init kobject_uevent_init(void)
|
|
}
|
|
}
|
|
|
|
|
|
postcore_initcall(kobject_uevent_init);
|
|
postcore_initcall(kobject_uevent_init);
|
|
|
|
+#endif
|
|
|
|
|
|
#endif /* CONFIG_HOTPLUG */
|
|
#endif /* CONFIG_HOTPLUG */
|