*
  * Returns pointer to (locked) TIPC port, or NULL if unable to create it
  */
-struct tipc_port *tipc_createport(void *usr_handle,
+struct tipc_port *tipc_createport(struct sock *sk,
                        u32 (*dispatcher)(struct tipc_port *, struct sk_buff *),
                        void (*wakeup)(struct tipc_port *),
                        const u32 importance)
                return NULL;
        }
 
-       p_ptr->usr_handle = usr_handle;
+       p_ptr->sk = sk;
        p_ptr->max_pkt = MAX_PKT_DEFAULT;
        p_ptr->ref = ref;
        INIT_LIST_HEAD(&p_ptr->wait_list);
 
 
 /**
  * struct tipc_port - TIPC port structure
- * @usr_handle: pointer to additional user-defined information about port
+ * @sk: pointer to socket handle
  * @lock: pointer to spinlock for controlling access to port
  * @connected: non-zero if port is currently connected to a peer port
  * @conn_type: TIPC type used when connection was established
  * @subscription: "node down" subscription used to terminate failed connections
  */
 struct tipc_port {
-       void *usr_handle;
+       struct sock *sk;
        spinlock_t *lock;
        int connected;
        u32 conn_type;
 /*
  * TIPC port manipulation routines
  */
-struct tipc_port *tipc_createport(void *usr_handle,
+struct tipc_port *tipc_createport(struct sock *sk,
                u32 (*dispatcher)(struct tipc_port *, struct sk_buff *),
                void (*wakeup)(struct tipc_port *), const u32 importance);
 
 
  */
 static u32 dispatch(struct tipc_port *tport, struct sk_buff *buf)
 {
-       struct sock *sk = (struct sock *)tport->usr_handle;
+       struct sock *sk = tport->sk;
        u32 res;
 
        /*
  */
 static void wakeupdispatch(struct tipc_port *tport)
 {
-       struct sock *sk = (struct sock *)tport->usr_handle;
+       struct sock *sk = tport->sk;
 
        sk->sk_write_space(sk);
 }