hp->ops = ops; 
struct hvc_struct __devinit *hvc_alloc(uint32_t vtermno, int irq){	struct hvc_struct *hp;	int i;	hp = kmalloc(sizeof(*hp), GFP_KERNEL);	if (!hp)		return ERR_PTR(-ENOMEM);	memset(hp, 0x00, sizeof(*hp));	hp->vtermno = vtermno;	hp->irq = irq;	kobject_init(&hp->kobj);	hp->kobj.ktype = &hvc_kobj_type;	spin_lock_init(&hp->lock);	spin_lock(&hvc_structs_lock);	/*	 * find index to use:	 * see if this vterm id matches one registered for console.	 */	for (i=0; i < MAX_NR_HVC_CONSOLES; i++)		if (vtermnos[i] == hp->vtermno)			break;	/* no matching slot, just use a counter */	if (i >= MAX_NR_HVC_CONSOLES)		i = ++last_hvc;	hp->index = i;	list_add_tail(&(hp->next), &hvc_structs);	spin_unlock(&hvc_structs_lock);	return hp;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/030ffad23fb28fc29608a3bc21f0c3b88bf28592/hvc_console.c/buggy/drivers/char/hvc_console.c