if (skb->pkt_type == HCI_EVENT_PKT) { 
if (bt_cb(skb)->pkt_type == HCI_EVENT_PKT) { 
void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb){	struct sock *sk;	struct hlist_node *node;	BT_DBG("hdev %p len %d", hdev, skb->len);	read_lock(&hci_sk_list.lock);	sk_for_each(sk, node, &hci_sk_list.head) {		struct hci_filter *flt;		struct sk_buff *nskb;		if (sk->sk_state != BT_BOUND || hci_pi(sk)->hdev != hdev)			continue;		/* Don't send frame to the socket it came from */		if (skb->sk == sk)			continue;		/* Apply filter */		flt = &hci_pi(sk)->filter;		if (!test_bit((skb->pkt_type == HCI_VENDOR_PKT) ?				0 : (skb->pkt_type & HCI_FLT_TYPE_BITS), &flt->type_mask))			continue;		if (skb->pkt_type == HCI_EVENT_PKT) {			register int evt = (*(__u8 *)skb->data & HCI_FLT_EVENT_BITS);			if (!hci_test_bit(evt, &flt->event_mask))				continue;			if (flt->opcode && ((evt == HCI_EV_CMD_COMPLETE && 					flt->opcode != *(__u16 *)(skb->data + 3)) ||					(evt == HCI_EV_CMD_STATUS && 					flt->opcode != *(__u16 *)(skb->data + 4))))				continue;		}		if (!(nskb = skb_clone(skb, GFP_ATOMIC)))			continue;		/* Put type byte before the data */		memcpy(skb_push(nskb, 1), &nskb->pkt_type, 1);		if (sock_queue_rcv_skb(sk, nskb))			kfree_skb(nskb);	}	read_unlock(&hci_sk_list.lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0d48d93947dd9ea21c5cdc76a8581b06a4a39281/hci_sock.c/clean/net/bluetooth/hci_sock.c