 memset(vhci, 0, sizeof(struct vhci_data)); 
static int vhci_open(struct inode *inode, struct file *file){	struct vhci_data *vhci;	struct hci_dev *hdev;	vhci = kmalloc(sizeof(struct vhci_data), GFP_KERNEL);	if (!vhci)		return -ENOMEM;	memset(vhci, 0, sizeof(struct vhci_data));	skb_queue_head_init(&vhci->readq);	init_waitqueue_head(&vhci->read_wait);	hdev = hci_alloc_dev();	if (!hdev) {		kfree(vhci);		return -ENOMEM;	}	vhci->hdev = hdev;	hdev->type = HCI_VHCI;	hdev->driver_data = vhci;	SET_HCIDEV_DEV(hdev, vhci_miscdev.dev);	hdev->open     = vhci_open_dev;	hdev->close    = vhci_close_dev;	hdev->flush    = vhci_flush;	hdev->send     = vhci_send_frame;	hdev->destruct = vhci_destruct;	hdev->owner = THIS_MODULE;	if (hci_register_dev(hdev) < 0) {		BT_ERR("Can't register HCI device");		kfree(vhci);		hci_free_dev(hdev);		return -EBUSY;	}	file->private_data = vhci;	return nonseekable_open(inode, file);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/089b1dbbde28f0f641c20beabba28fa89ab4fab9/hci_vhci.c/clean/drivers/bluetooth/hci_vhci.c