[PATCH 06/17] lpfc: NVME Initiator: Base modifications Part E

Hannes Reinecke hare at suse.de
Tue Jan 17 23:34:21 PST 2017


On 01/18/2017 02:20 AM, James Smart wrote:
> 
> NVME Initiator: Base modifications
> 
> This is part E of parts A..F.
> 
> Part E is limited to lpfc_sli.c. This is the location of most of changes
> for the following:
> - sli3 ring vs sli4 wq splits
> - io abort interfaces
> - actual queuing routines and use of dma and sgl pools
> - service routines to create/delete queues
> 
> *********
> 
> Refer to Part A for a description of base modifications
> 
> Signed-off-by: Dick Kennedy <dick.kennedy at broadcom.com>
> Signed-off-by: James Smart <james.smart at broadcom.com>
> ---
>  drivers/scsi/lpfc/lpfc_sli.c | 1508 ++++++++++++++++++++++++++++++------------
>  1 file changed, 1093 insertions(+), 415 deletions(-)
> 
[ .. ]
> @@ -3696,6 +3740,51 @@ lpfc_sli_flush_fcp_rings(struct lpfc_hba *phba)
>  }
>  
>  /**
> + * lpfc_sli_flush_nvme_rings - flush all wqes in the nvme rings
> + * @phba: Pointer to HBA context object.
> + *
> + * This function flushes all wqes in the nvme rings and frees all resources
> + * in the txcmplq. This function does not issue abort wqes for the IO
> + * commands in txcmplq, they will just be returned with
> + * IOERR_SLI_DOWN. This function is invoked with EEH when device's PCI
> + * slot has been permanently disabled.
> + **/
> +void
> +lpfc_sli_flush_nvme_rings(struct lpfc_hba *phba)
> +{
> +	LIST_HEAD(txcmplq);
> +	struct lpfc_sli_ring  *pring;
> +	uint32_t i;
> +
> +	if (phba->sli_rev < LPFC_SLI_REV4)
> +		return;
> +
> +	/* Hint to other driver operations that a flush is in progress. */
> +	spin_lock_irq(&phba->hbalock);
> +	phba->hba_flag |= HBA_NVME_IOQ_FLUSH;
> +	spin_unlock_irq(&phba->hbalock);
> +
Is this ever reset?
I don't see it here ...

[ .. ]
> @@ -4380,9 +4469,12 @@ lpfc_sli_chipset_init(struct lpfc_hba *phba)
>   * configured.
>   **/
>  int
> -lpfc_sli_hbq_count(void)
> +lpfc_sli_hbq_count(struct lpfc_hba *phba)
>  {
> -	return ARRAY_SIZE(lpfc_hbq_defs);
> +	int i;
> +
> +	i = ARRAY_SIZE(lpfc_hbq_defs);
> +	return i;
>  }
>  
>  /**
The point of this change being ...?

Other than that:

Reviewed-by: Hannes Reinecke <hare at suse.com>

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare at suse.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)



More information about the Linux-nvme mailing list