TRACE_L("tty=%x, PID=%d, disc_data=%x", (int)tty, current->pid, (int)tty->disc_data); 
TRACE_L("tty=%p, PID=%d, disc_data=%p", tty, current->pid, tty->disc_data); 
static int r3964_open(struct tty_struct *tty){   struct r3964_info *pInfo;      TRACE_L("open");   TRACE_L("tty=%x, PID=%d, disc_data=%x",           (int)tty, current->pid, (int)tty->disc_data);      pInfo=kmalloc(sizeof(struct r3964_info), GFP_KERNEL);    TRACE_M("r3964_open - info kmalloc %x",(int)pInfo);   if(!pInfo)   {      printk(KERN_ERR "r3964: failed to alloc info structure\n");      return -ENOMEM;   }   pInfo->rx_buf = kmalloc(RX_BUF_SIZE, GFP_KERNEL);   TRACE_M("r3964_open - rx_buf kmalloc %x",(int)pInfo->rx_buf);   if(!pInfo->rx_buf)   {      printk(KERN_ERR "r3964: failed to alloc receive buffer\n");      kfree(pInfo);      TRACE_M("r3964_open - info kfree %x",(int)pInfo);      return -ENOMEM;   }      pInfo->tx_buf = kmalloc(TX_BUF_SIZE, GFP_KERNEL);   TRACE_M("r3964_open - tx_buf kmalloc %x",(int)pInfo->tx_buf);   if(!pInfo->tx_buf)   {      printk(KERN_ERR "r3964: failed to alloc transmit buffer\n");      kfree(pInfo->rx_buf);      TRACE_M("r3964_open - rx_buf kfree %x",(int)pInfo->rx_buf);      kfree(pInfo);      TRACE_M("r3964_open - info kfree %x",(int)pInfo);      return -ENOMEM;   }   spin_lock_init(&pInfo->lock);   pInfo->tty = tty;   init_waitqueue_head (&pInfo->read_wait);   pInfo->priority = R3964_MASTER;   pInfo->rx_first = pInfo->rx_last = NULL;   pInfo->tx_first = pInfo->tx_last = NULL;   pInfo->rx_position = 0;   pInfo->tx_position = 0;   pInfo->last_rx = 0;   pInfo->blocks_in_rx_queue = 0;   pInfo->firstClient=NULL;   pInfo->state=R3964_IDLE;   pInfo->flags = R3964_DEBUG;   pInfo->nRetry = 0;      tty->disc_data = pInfo;   init_timer(&pInfo->tmr);   pInfo->tmr.data = (unsigned long)pInfo;   pInfo->tmr.function = on_timeout;   return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/87e0f3dbd3693bc4583474ab191cbdd5e3d9d0fa/n_r3964.c/clean/drivers/char/n_r3964.c