setting = __le16_to_cpu(get_unaligned((__u16 *) sent)); 
setting = __le16_to_cpu(get_unaligned((__le16 *) sent)); 
static void hci_cc_host_ctl(struct hci_dev *hdev, __u16 ocf, struct sk_buff *skb){	__u8 status, param;	__u16 setting;	struct hci_rp_read_voice_setting *vs;	void *sent;	BT_DBG("%s ocf 0x%x", hdev->name, ocf);	switch (ocf) {	case OCF_RESET:		status = *((__u8 *) skb->data);		hci_req_complete(hdev, status);		break;	case OCF_SET_EVENT_FLT:		status = *((__u8 *) skb->data);		if (status) {			BT_DBG("%s SET_EVENT_FLT failed %d", hdev->name, status);		} else {			BT_DBG("%s SET_EVENT_FLT succeseful", hdev->name);		}		break;	case OCF_WRITE_AUTH_ENABLE:		sent = hci_sent_cmd_data(hdev, OGF_HOST_CTL, OCF_WRITE_AUTH_ENABLE);		if (!sent)			break;		status = *((__u8 *) skb->data);		param  = *((__u8 *) sent);		if (!status) {			if (param == AUTH_ENABLED)				set_bit(HCI_AUTH, &hdev->flags);			else				clear_bit(HCI_AUTH, &hdev->flags);		}		hci_req_complete(hdev, status);		break;	case OCF_WRITE_ENCRYPT_MODE:		sent = hci_sent_cmd_data(hdev, OGF_HOST_CTL, OCF_WRITE_ENCRYPT_MODE);		if (!sent)			break;		status = *((__u8 *) skb->data);		param  = *((__u8 *) sent);		if (!status) {			if (param)				set_bit(HCI_ENCRYPT, &hdev->flags);			else				clear_bit(HCI_ENCRYPT, &hdev->flags);		}		hci_req_complete(hdev, status);		break;	case OCF_WRITE_CA_TIMEOUT:		status = *((__u8 *) skb->data);		if (status) {			BT_DBG("%s OCF_WRITE_CA_TIMEOUT failed %d", hdev->name, status);		} else {			BT_DBG("%s OCF_WRITE_CA_TIMEOUT succeseful", hdev->name);		}		break;	case OCF_WRITE_PG_TIMEOUT:		status = *((__u8 *) skb->data);		if (status) {			BT_DBG("%s OCF_WRITE_PG_TIMEOUT failed %d", hdev->name, status);		} else {			BT_DBG("%s: OCF_WRITE_PG_TIMEOUT succeseful", hdev->name);		}		break;	case OCF_WRITE_SCAN_ENABLE:		sent = hci_sent_cmd_data(hdev, OGF_HOST_CTL, OCF_WRITE_SCAN_ENABLE);		if (!sent)			break;		status = *((__u8 *) skb->data);		param  = *((__u8 *) sent);		BT_DBG("param 0x%x", param);		if (!status) {			clear_bit(HCI_PSCAN, &hdev->flags);			clear_bit(HCI_ISCAN, &hdev->flags);			if (param & SCAN_INQUIRY) 				set_bit(HCI_ISCAN, &hdev->flags);			if (param & SCAN_PAGE) 				set_bit(HCI_PSCAN, &hdev->flags);		}		hci_req_complete(hdev, status);		break;	case OCF_READ_VOICE_SETTING:		vs = (struct hci_rp_read_voice_setting *) skb->data;		if (vs->status) {			BT_DBG("%s READ_VOICE_SETTING failed %d", hdev->name, vs->status);			break;		}		setting = __le16_to_cpu(vs->voice_setting);		if (hdev->voice_setting != setting ) {			hdev->voice_setting = setting;			BT_DBG("%s: voice setting 0x%04x", hdev->name, setting);			if (hdev->notify) {				tasklet_disable(&hdev->tx_task);				hdev->notify(hdev, HCI_NOTIFY_VOICE_SETTING);				tasklet_enable(&hdev->tx_task);			}		}		break;	case OCF_WRITE_VOICE_SETTING:		sent = hci_sent_cmd_data(hdev, OGF_HOST_CTL, OCF_WRITE_VOICE_SETTING);		if (!sent)			break;		status = *((__u8 *) skb->data);		setting = __le16_to_cpu(get_unaligned((__u16 *) sent));		if (!status && hdev->voice_setting != setting) {			hdev->voice_setting = setting;			BT_DBG("%s: voice setting 0x%04x", hdev->name, setting);			if (hdev->notify) {				tasklet_disable(&hdev->tx_task);				hdev->notify(hdev, HCI_NOTIFY_VOICE_SETTING);				tasklet_enable(&hdev->tx_task);			}		}		hci_req_complete(hdev, status);		break;	case OCF_HOST_BUFFER_SIZE:		status = *((__u8 *) skb->data);		if (status) {			BT_DBG("%s OCF_BUFFER_SIZE failed %d", hdev->name, status);			hci_req_complete(hdev, status);		}		break;	default:		BT_DBG("%s Command complete: ogf HOST_CTL ocf %x", hdev->name, ocf);		break;	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/1ebb92521d0bc2d4ef772730d29333c06b807191/hci_event.c/buggy/net/bluetooth/hci_event.c