if (mp) kfree(mp); 
kfree(mp); 
lpfc_read_sparam(struct lpfc_hba * phba, LPFC_MBOXQ_t * pmb){	struct lpfc_dmabuf *mp;	MAILBOX_t *mb;	struct lpfc_sli *psli;	psli = &phba->sli;	mb = &pmb->mb;	memset(pmb, 0, sizeof (LPFC_MBOXQ_t));	mb->mbxOwner = OWN_HOST;	/* Get a buffer to hold the HBAs Service Parameters */	if (((mp = kmalloc(sizeof (struct lpfc_dmabuf), GFP_KERNEL)) == 0) ||	    ((mp->virt = lpfc_mbuf_alloc(phba, 0, &(mp->phys))) == 0)) {		if (mp)			kfree(mp);		mb->mbxCommand = MBX_READ_SPARM64;		/* READ_SPARAM: no buffers */		lpfc_printf_log(phba,			        KERN_WARNING,			        LOG_MBOX,			        "%d:0301 READ_SPARAM: no buffers\n",			        phba->brd_no);		return (1);	}	INIT_LIST_HEAD(&mp->list);	mb->mbxCommand = MBX_READ_SPARM64;	mb->un.varRdSparm.un.sp64.tus.f.bdeSize = sizeof (struct serv_parm);	mb->un.varRdSparm.un.sp64.addrHigh = putPaddrHigh(mp->phys);	mb->un.varRdSparm.un.sp64.addrLow = putPaddrLow(mp->phys);	/* save address for completion */	pmb->context1 = mp;	return (0);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/c9475cb0c358ff0dd473544280d92482df491913/lpfc_mbox.c/buggy/drivers/scsi/lpfc/lpfc_mbox.c