static int __devexit hvc_remove(struct vio_dev *dev) 
int __devexit hvc_remove(struct hvc_struct *hp) 
static int __devexit hvc_remove(struct vio_dev *dev){	struct hvc_struct *hp = dev->dev.driver_data;	unsigned long flags;	struct kobject *kobjp;	struct tty_struct *tty;	spin_lock_irqsave(&hp->lock, flags);	tty = hp->tty;	kobjp = &hp->kobj;	if (hp->index < MAX_NR_HVC_CONSOLES)		vtermnos[hp->index] = -1;	/* Don't whack hp->irq because tty_hangup() will need to free the irq. */	spin_unlock_irqrestore(&hp->lock, flags);	/*	 * We 'put' the instance that was grabbed when the kobject instance	 * was intialized using kobject_init().  Let the last holder of this	 * kobject cause it to be removed, which will probably be the tty_hangup	 * below.	 */	kobject_put(kobjp);	/*	 * This function call will auto chain call hvc_hangup.  The tty should	 * always be valid at this time unless a simultaneous tty close already	 * cleaned up the hvc_struct.	 */	if (tty)		tty_hangup(tty);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/acad9559f1054487292eb10d7bb81f256e9d8f2d/hvc_console.c/buggy/drivers/char/hvc_console.c