static int sx_setup_port(struct specialix_board *bp, struct specialix_port *port){	unsigned long flags;	func_enter();	if (port->flags & ASYNC_INITIALIZED) {		func_exit();		return 0;	}		if (!port->xmit_buf) {		/* We may sleep in get_zeroed_page() */		unsigned long tmp;				if (!(tmp = get_zeroed_page(GFP_KERNEL))) {			func_exit();			return -ENOMEM;		}		if (port->xmit_buf) {			free_page(tmp);			func_exit();			return -ERESTARTSYS;		}		port->xmit_buf = (unsigned char *) tmp;	}			spin_lock_irqsave(&port->lock, flags);	if (port->tty) 		clear_bit(TTY_IO_ERROR, &port->tty->flags);	port->xmit_cnt = port->xmit_head = port->xmit_tail = 0;	sx_change_speed(bp, port);	port->flags |= ASYNC_INITIALIZED;	spin_unlock_irqrestore(&port->lock, flags);			func_exit();	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d61780c0d384939ef31c46b47442854d5def4623/specialix.c/buggy/drivers/char/specialix.c