diff --git a/package/broadcom-diag/Makefile b/package/broadcom-diag/Makefile
index 7e4dbb977d3158bccb556f67ae61b94853b8a864..b4b91dba3d76c78522b99fd20f286739207fdd02 100644
--- a/package/broadcom-diag/Makefile
+++ b/package/broadcom-diag/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=broadcom-diag
-PKG_RELEASE:=8
+PKG_RELEASE:=9
 
 include $(INCLUDE_DIR)/package.mk
 
diff --git a/package/broadcom-diag/src/diag.c b/package/broadcom-diag/src/diag.c
index 3a2a69bb149e11911f9d520a13442f8a94cc86ad..766a906da055c66c4ce423a65ff31eb32889d7b8 100644
--- a/package/broadcom-diag/src/diag.c
+++ b/package/broadcom-diag/src/diag.c
@@ -30,8 +30,8 @@
 #include <linux/workqueue.h>
 #include <linux/skbuff.h>
 #include <linux/netlink.h>
+#include <linux/kobject.h>
 #include <net/sock.h>
-extern struct sock *uevent_sock;
 extern u64 uevent_next_seqnum(void);
 
 #include "gpio.h"
@@ -1169,9 +1169,6 @@ static void hotplug_button(struct work_struct *work)
 	struct event_t *event = container_of(work, struct event_t, wq);
 	char *s;
 
-	if (!uevent_sock)
-		return;
-
 	event->skb = alloc_skb(2048, GFP_KERNEL);
 
 	s = skb_put(event->skb, strlen(event->action) + 2);
@@ -1179,7 +1176,7 @@ static void hotplug_button(struct work_struct *work)
 	fill_event(event);
 
 	NETLINK_CB(event->skb).dst_group = 1;
-	netlink_broadcast(uevent_sock, event->skb, 0, 1, GFP_KERNEL);
+	broadcast_uevent(event->skb, 0, 1, GFP_KERNEL);
 
 	kfree(event);
 }