skb_set_owner_w(skb, sk); 
int llc_establish_connection(struct sock *sk, u8 *lmac, u8 *dmac, u8 dsap){	int rc = -EISCONN;	struct llc_addr laddr, daddr;	struct sk_buff *skb;	struct llc_sock *llc = llc_sk(sk);	struct sock *existing;	laddr.lsap = llc->sap->laddr.lsap;	daddr.lsap = dsap;	memcpy(daddr.mac, dmac, sizeof(daddr.mac));	memcpy(laddr.mac, lmac, sizeof(laddr.mac));	existing = llc_lookup_established(llc->sap, &daddr, &laddr);	if (existing) {		if (existing->sk_state == TCP_ESTABLISHED) {			sk = existing;			goto out_put;		} else			sock_put(existing);	}	sock_hold(sk);	rc = -ENOMEM;	skb = alloc_skb(0, GFP_ATOMIC);	if (skb) {		struct llc_conn_state_ev *ev = llc_conn_ev(skb);		ev->type      = LLC_CONN_EV_TYPE_PRIM;		ev->prim      = LLC_CONN_PRIM;		ev->prim_type = LLC_PRIM_TYPE_REQ;		rc = llc_conn_state_process(sk, skb);	}out_put:	sock_put(sk);	return rc;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/d389424e00f9097cd24b3df4ca0ab7221f140eeb/llc_if.c/clean/net/llc/llc_if.c