if (p->scb_data->scb_array[i]->kmalloc_ptr != NULL) kfree(p->scb_data->scb_array[i]->kmalloc_ptr); 
kfree(p->scb_data->scb_array[i]->kmalloc_ptr); 
aic7xxx_free(struct aic7xxx_host *p){  int i;  /*   * Free the allocated hardware SCB space.   */  if (p->scb_data != NULL)  {    struct aic7xxx_scb_dma *scb_dma = NULL;    if (p->scb_data->hscbs != NULL)    {      pci_free_consistent(p->pdev, p->scb_data->hscbs_dma_len,			  p->scb_data->hscbs, p->scb_data->hscbs_dma);      p->scb_data->hscbs = p->scb_data->hscb_kmalloc_ptr = NULL;    }    /*     * Free the driver SCBs.  These were allocated on an as-need     * basis.  We allocated these in groups depending on how many     * we could fit into a given amount of RAM.  The tail SCB for     * these allocations has a pointer to the alloced area.     */    for (i = 0; i < p->scb_data->numscbs; i++)    {      if (p->scb_data->scb_array[i]->scb_dma != scb_dma)      {	scb_dma = p->scb_data->scb_array[i]->scb_dma;	pci_free_consistent(p->pdev, scb_dma->dma_len,			    (void *)((unsigned long)scb_dma->dma_address                                     - scb_dma->dma_offset),			    scb_dma->dma_address);      }      if (p->scb_data->scb_array[i]->kmalloc_ptr != NULL)        kfree(p->scb_data->scb_array[i]->kmalloc_ptr);      p->scb_data->scb_array[i] = NULL;    }      /*     * Free the SCB data area.     */    kfree(p->scb_data);  }  pci_free_consistent(p->pdev, 3*256, (void *)p->untagged_scbs, p->fifo_dma);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c9475cb0c358ff0dd473544280d92482df491913/aic7xxx_old.c/clean/drivers/scsi/aic7xxx_old.c