struct list_head *lpfc_iocb_list = &phba->lpfc_iocb_list; 
lpfc_gen_req(struct lpfc_hba *phba, struct lpfc_dmabuf *bmp,	     struct lpfc_dmabuf *inp, struct lpfc_dmabuf *outp,	     void (*cmpl) (struct lpfc_hba *, struct lpfc_iocbq *,		     struct lpfc_iocbq *),	     struct lpfc_nodelist *ndlp, uint32_t usr_flg, uint32_t num_entry,	     uint32_t tmo){	struct lpfc_sli *psli = &phba->sli;	struct lpfc_sli_ring *pring = &psli->ring[LPFC_ELS_RING];	struct list_head *lpfc_iocb_list = &phba->lpfc_iocb_list;	IOCB_t *icmd;	struct lpfc_iocbq *geniocb = NULL;	/* Allocate buffer for  command iocb */	spin_lock_irq(phba->host->host_lock);	list_remove_head(lpfc_iocb_list, geniocb, struct lpfc_iocbq, list);	spin_unlock_irq(phba->host->host_lock);	if (geniocb == NULL)		return 1;	icmd = &geniocb->iocb;	icmd->un.genreq64.bdl.ulpIoTag32 = 0;	icmd->un.genreq64.bdl.addrHigh = putPaddrHigh(bmp->phys);	icmd->un.genreq64.bdl.addrLow = putPaddrLow(bmp->phys);	icmd->un.genreq64.bdl.bdeFlags = BUFF_TYPE_BDL;	icmd->un.genreq64.bdl.bdeSize = (num_entry * sizeof (struct ulp_bde64));	if (usr_flg)		geniocb->context3 = NULL;	else		geniocb->context3 = (uint8_t *) bmp;	/* Save for completion so we can release these resources */	geniocb->context1 = (uint8_t *) inp;	geniocb->context2 = (uint8_t *) outp;	/* Fill in payload, bp points to frame payload */	icmd->ulpCommand = CMD_GEN_REQUEST64_CR;	/* Fill in rest of iocb */	icmd->un.genreq64.w5.hcsw.Fctl = (SI | LA);	icmd->un.genreq64.w5.hcsw.Dfctl = 0;	icmd->un.genreq64.w5.hcsw.Rctl = FC_UNSOL_CTL;	icmd->un.genreq64.w5.hcsw.Type = FC_COMMON_TRANSPORT_ULP;	if (!tmo)		tmo = (2 * phba->fc_ratov) + 1;	icmd->ulpTimeout = tmo;	icmd->ulpBdeCount = 1;	icmd->ulpLe = 1;	icmd->ulpClass = CLASS3;	icmd->ulpContext = ndlp->nlp_rpi;	/* Issue GEN REQ IOCB for NPORT <did> */	lpfc_printf_log(phba, KERN_INFO, LOG_ELS,			"%d:0119 Issue GEN REQ IOCB for NPORT x%x "			"Data: x%x x%x\n", phba->brd_no, icmd->un.ulpWord[5],			icmd->ulpIoTag, phba->hba_state);	geniocb->iocb_cmpl = cmpl;	geniocb->drvrTimeout = icmd->ulpTimeout + LPFC_DRVR_TIMEOUT;	spin_lock_irq(phba->host->host_lock);	if (lpfc_sli_issue_iocb(phba, pring, geniocb, 0) == IOCB_ERROR) {		lpfc_sli_release_iocbq(phba, geniocb);		spin_unlock_irq(phba->host->host_lock);		return 1;	}	spin_unlock_irq(phba->host->host_lock);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/0bd4ca25ad2ace4aa717c83dbd4ed21c53c953cb/lpfc_ct.c/buggy/drivers/scsi/lpfc/lpfc_ct.c