__u16 *ptr; 
__le16 *ptr; 
static inline void hci_num_comp_pkts_evt(struct hci_dev *hdev, struct sk_buff *skb){	struct hci_ev_num_comp_pkts *ev = (struct hci_ev_num_comp_pkts *) skb->data;	__u16 *ptr;	int i;	skb_pull(skb, sizeof(*ev));	BT_DBG("%s num_hndl %d", hdev->name, ev->num_hndl);	if (skb->len < ev->num_hndl * 4) {		BT_DBG("%s bad parameters", hdev->name);		return;	}	tasklet_disable(&hdev->tx_task);	for (i = 0, ptr = (__u16 *) skb->data; i < ev->num_hndl; i++) {		struct hci_conn *conn;		__u16  handle, count;		handle = __le16_to_cpu(get_unaligned(ptr++));		count  = __le16_to_cpu(get_unaligned(ptr++));		conn = hci_conn_hash_lookup_handle(hdev, handle);		if (conn) {			conn->sent -= count;			if (conn->type == SCO_LINK) {				if ((hdev->sco_cnt += count) > hdev->sco_pkts)					hdev->sco_cnt = hdev->sco_pkts;			} else {				if ((hdev->acl_cnt += count) > hdev->acl_pkts)					hdev->acl_cnt = hdev->acl_pkts;			}		}	}	hci_sched_tx(hdev);	tasklet_enable(&hdev->tx_task);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1ebb92521d0bc2d4ef772730d29333c06b807191/hci_event.c/buggy/net/bluetooth/hci_event.c