diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
index 24d949c8943afcd5ffc06b235e773acf4b21675c..9713d622efb864c5b6ab069ff836b855704bc623 100644
--- a/net/tipc/bcast.c
+++ b/net/tipc/bcast.c
@@ -114,12 +114,12 @@ static inline u32 buf_seqno(struct sk_buff *buf)
 
 static inline u32 bcbuf_acks(struct sk_buff *buf)
 {
-	return (u32)TIPC_SKB_CB(buf)->handle;
+	return (u32)(unsigned long)TIPC_SKB_CB(buf)->handle;
 }
 
 static inline void bcbuf_set_acks(struct sk_buff *buf, u32 acks)
 {
-	TIPC_SKB_CB(buf)->handle = (void *)acks;
+	TIPC_SKB_CB(buf)->handle = (void *)(unsigned long)acks;
 }
 
 static inline void bcbuf_decr_acks(struct sk_buff *buf)
diff --git a/net/tipc/port.c b/net/tipc/port.c
index bb9404661df36e022fdef4392c26820ad637ca13..66caca7abe92215cddba264ecd8d1408150e4f04 100644
--- a/net/tipc/port.c
+++ b/net/tipc/port.c
@@ -1234,7 +1234,8 @@ int tipc_connect2port(u32 ref, struct tipc_portid const *peer)
 	p_ptr->publ.connected = 1;
 	k_start_timer(&p_ptr->timer, p_ptr->probing_interval);
 
-	nodesub_subscribe(&p_ptr->subscription,peer->node, (void *)ref,
+	nodesub_subscribe(&p_ptr->subscription,peer->node,
+			  (void *)(unsigned long)ref,
 			  (net_ev_handler)port_handle_node_down);
 	res = TIPC_OK;
 exit:
diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
index 451d875befcba22e8cad24e67f20c2e98811ab50..80e219ba527d92504103ef0325b4b789c2ce5b59 100644
--- a/net/tipc/subscr.c
+++ b/net/tipc/subscr.c
@@ -329,9 +329,10 @@ static void subscr_conn_shutdown_event(void *usr_handle,
 				       unsigned int size,
 				       int reason)
 {
-	struct subscriber *subscriber = ref_lock((u32)usr_handle);
+	struct subscriber *subscriber;
 	spinlock_t *subscriber_lock;
 
+	subscriber = ref_lock((u32)(unsigned long)usr_handle);
 	if (subscriber == NULL)
 		return;
 
@@ -350,9 +351,10 @@ static void subscr_conn_msg_event(void *usr_handle,
 				  const unchar *data,
 				  u32 size)
 {
-	struct subscriber *subscriber = ref_lock((u32)usr_handle);
+	struct subscriber *subscriber;
 	spinlock_t *subscriber_lock;
 
+	subscriber = ref_lock((u32)(unsigned long)usr_handle);
 	if (subscriber == NULL)
 		return;
 
@@ -409,7 +411,7 @@ static void subscr_named_msg_event(void *usr_handle,
 	/* Establish a connection to subscriber */
 
 	tipc_createport(topsrv.user_ref,
-			(void *)subscriber->ref,
+			(void *)(unsigned long)subscriber->ref,
 			importance,
 			0,
 			0,