1 --- a/include/linux/kobject.h
2 +++ b/include/linux/kobject.h
4 #define UEVENT_NUM_ENVP 32 /* number of env pointers */
5 #define UEVENT_BUFFER_SIZE 2048 /* buffer for the variables */
9 /* path to the userspace helper executed on an event */
10 extern char uevent_helper[];
12 @@ -208,6 +210,10 @@ int add_uevent_var(struct kobj_uevent_en
14 int kobject_action_type(const char *buf, size_t count,
15 enum kobject_action *type);
17 +int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
21 static inline int kobject_uevent(struct kobject *kobj,
22 enum kobject_action action)
23 @@ -224,6 +230,16 @@ static inline int add_uevent_var(struct
24 static inline int kobject_action_type(const char *buf, size_t count,
25 enum kobject_action *type)
28 +void kfree_skb(struct sk_buff *);
30 +static inline int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
39 #endif /* _KOBJECT_H_ */
40 --- a/lib/kobject_uevent.c
41 +++ b/lib/kobject_uevent.c
42 @@ -330,6 +330,27 @@ int add_uevent_var(struct kobj_uevent_en
43 EXPORT_SYMBOL_GPL(add_uevent_var);
45 #if defined(CONFIG_NET)
46 +int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
54 + return netlink_broadcast(uevent_sock, skb, pid, group, allocation);;
57 +int broadcast_uevent(struct sk_buff *skb, __u32 pid, __u32 group,
64 +EXPORT_SYMBOL_GPL(broadcast_uevent);
66 +#if defined(CONFIG_NET)
67 static int __init kobject_uevent_init(void)
69 uevent_sock = netlink_kernel_create(&init_net, NETLINK_KOBJECT_UEVENT,