All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Smart <james.smart@emulex.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: linux-scsi@vger.kernel.org,
	"James E . J . Bottomley" <JBottomley@odin.com>,
	linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
	linuxppc-dev@lists.ozlabs.org, Sebastian Herbszt <herbszt@gmx.de>
Subject: Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
Date: Tue, 05 May 2015 11:33:21 -0400	[thread overview]
Message-ID: <5548E2C1.3070209@emulex.com> (raw)
In-Reply-To: <1430209582-23925-1-git-send-email-aik@ozlabs.ru>

Reviewed-By: James Smart <james.smart@emulex.com>


Alexey, Sebastian,

Yes - this section needs to be reverted.  This patch is good.

-- james s




On 4/28/2015 4:26 AM, Alexey Kardashevskiy wrote:
> This reverts 4fbdf9cb is breaks LPFC on POWER7 machine, big endian kernel.
>
> This is the hardware used for verification:
> 0005:01:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
> 0005:01:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
>   drivers/scsi/lpfc/lpfc_scsi.c | 41 +++++++++++++++++++++--------------------
>   1 file changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
> index cb73cf9..c140f99 100644
> --- a/drivers/scsi/lpfc/lpfc_scsi.c
> +++ b/drivers/scsi/lpfc/lpfc_scsi.c
> @@ -1130,25 +1130,6 @@ lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb)
>   }
>   
>   /**
> - * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> - * @data: A pointer to the immediate command data portion of the IOCB.
> - * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> - *
> - * The routine copies the entire FCP command from @fcp_cmnd to @data while
> - * byte swapping the data to big endian format for transmission on the wire.
> - **/
> -static void
> -lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> -{
> -	int i, j;
> -
> -	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> -	     i += sizeof(uint32_t), j++) {
> -		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> -	}
> -}
> -
> -/**
>    * lpfc_scsi_prep_dma_buf_s3 - DMA mapping for scsi buffer to SLI3 IF spec
>    * @phba: The Hba for which this call is being executed.
>    * @lpfc_cmd: The scsi buffer which is going to be mapped.
> @@ -1283,7 +1264,6 @@ lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
>   	 * we need to set word 4 of IOCB here
>   	 */
>   	iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd);
> -	lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	return 0;
>   }
>   
> @@ -4147,6 +4127,24 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
>   }
>   
>   /**
> + * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> + * @data: A pointer to the immediate command data portion of the IOCB.
> + * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> + *
> + * The routine copies the entire FCP command from @fcp_cmnd to @data while
> + * byte swapping the data to big endian format for transmission on the wire.
> + **/
> +static void
> +lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> +{
> +	int i, j;
> +	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> +	     i += sizeof(uint32_t), j++) {
> +		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> +	}
> +}
> +
> +/**
>    * lpfc_scsi_prep_cmnd - Wrapper func for convert scsi cmnd to FCP info unit
>    * @vport: The virtual port for which this call is being executed.
>    * @lpfc_cmd: The scsi command which needs to send.
> @@ -4225,6 +4223,9 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
>   		fcp_cmnd->fcpCntl3 = 0;
>   		phba->fc4ControlRequests++;
>   	}
> +	if (phba->sli_rev == 3 &&
> +	    !(phba->sli3_options & LPFC_SLI3_BG_ENABLED))
> +		lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	/*
>   	 * Finish initializing those IOCB fields that are independent
>   	 * of the scsi_cmnd request_buffer

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

WARNING: multiple messages have this Message-ID (diff)
From: James Smart <james.smart@emulex.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: linux-scsi@vger.kernel.org,
	"James E . J . Bottomley" <JBottomley@odin.com>,
	linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>,
	linuxppc-dev@lists.ozlabs.org, Sebastian Herbszt <herbszt@gmx.de>
Subject: Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
Date: Tue, 05 May 2015 11:33:21 -0400	[thread overview]
Message-ID: <5548E2C1.3070209@emulex.com> (raw)
In-Reply-To: <1430209582-23925-1-git-send-email-aik@ozlabs.ru>

Reviewed-By: James Smart <james.smart@emulex.com>


Alexey, Sebastian,

Yes - this section needs to be reverted.  This patch is good.

-- james s




On 4/28/2015 4:26 AM, Alexey Kardashevskiy wrote:
> This reverts 4fbdf9cb is breaks LPFC on POWER7 machine, big endian kernel.
>
> This is the hardware used for verification:
> 0005:01:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
> 0005:01:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
>   drivers/scsi/lpfc/lpfc_scsi.c | 41 +++++++++++++++++++++--------------------
>   1 file changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
> index cb73cf9..c140f99 100644
> --- a/drivers/scsi/lpfc/lpfc_scsi.c
> +++ b/drivers/scsi/lpfc/lpfc_scsi.c
> @@ -1130,25 +1130,6 @@ lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb)
>   }
>   
>   /**
> - * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> - * @data: A pointer to the immediate command data portion of the IOCB.
> - * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> - *
> - * The routine copies the entire FCP command from @fcp_cmnd to @data while
> - * byte swapping the data to big endian format for transmission on the wire.
> - **/
> -static void
> -lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> -{
> -	int i, j;
> -
> -	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> -	     i += sizeof(uint32_t), j++) {
> -		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> -	}
> -}
> -
> -/**
>    * lpfc_scsi_prep_dma_buf_s3 - DMA mapping for scsi buffer to SLI3 IF spec
>    * @phba: The Hba for which this call is being executed.
>    * @lpfc_cmd: The scsi buffer which is going to be mapped.
> @@ -1283,7 +1264,6 @@ lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
>   	 * we need to set word 4 of IOCB here
>   	 */
>   	iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd);
> -	lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	return 0;
>   }
>   
> @@ -4147,6 +4127,24 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
>   }
>   
>   /**
> + * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> + * @data: A pointer to the immediate command data portion of the IOCB.
> + * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> + *
> + * The routine copies the entire FCP command from @fcp_cmnd to @data while
> + * byte swapping the data to big endian format for transmission on the wire.
> + **/
> +static void
> +lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> +{
> +	int i, j;
> +	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> +	     i += sizeof(uint32_t), j++) {
> +		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> +	}
> +}
> +
> +/**
>    * lpfc_scsi_prep_cmnd - Wrapper func for convert scsi cmnd to FCP info unit
>    * @vport: The virtual port for which this call is being executed.
>    * @lpfc_cmd: The scsi command which needs to send.
> @@ -4225,6 +4223,9 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
>   		fcp_cmnd->fcpCntl3 = 0;
>   		phba->fc4ControlRequests++;
>   	}
> +	if (phba->sli_rev == 3 &&
> +	    !(phba->sli3_options & LPFC_SLI3_BG_ENABLED))
> +		lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	/*
>   	 * Finish initializing those IOCB fields that are independent
>   	 * of the scsi_cmnd request_buffer

WARNING: multiple messages have this Message-ID (diff)
From: James Smart <james.smart@emulex.com>
To: Alexey Kardashevskiy <aik@ozlabs.ru>
Cc: linuxppc-dev@lists.ozlabs.org,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	"James E . J . Bottomley" <JBottomley@odin.com>,
	linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org,
	Sebastian Herbszt <herbszt@gmx.de>
Subject: Re: [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.")
Date: Tue, 05 May 2015 11:33:21 -0400	[thread overview]
Message-ID: <5548E2C1.3070209@emulex.com> (raw)
In-Reply-To: <1430209582-23925-1-git-send-email-aik@ozlabs.ru>

Reviewed-By: James Smart <james.smart@emulex.com>


Alexey, Sebastian,

Yes - this section needs to be reverted.  This patch is good.

-- james s




On 4/28/2015 4:26 AM, Alexey Kardashevskiy wrote:
> This reverts 4fbdf9cb is breaks LPFC on POWER7 machine, big endian kernel.
>
> This is the hardware used for verification:
> 0005:01:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
> 0005:01:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
>
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
>   drivers/scsi/lpfc/lpfc_scsi.c | 41 +++++++++++++++++++++--------------------
>   1 file changed, 21 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
> index cb73cf9..c140f99 100644
> --- a/drivers/scsi/lpfc/lpfc_scsi.c
> +++ b/drivers/scsi/lpfc/lpfc_scsi.c
> @@ -1130,25 +1130,6 @@ lpfc_release_scsi_buf(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb)
>   }
>   
>   /**
> - * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> - * @data: A pointer to the immediate command data portion of the IOCB.
> - * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> - *
> - * The routine copies the entire FCP command from @fcp_cmnd to @data while
> - * byte swapping the data to big endian format for transmission on the wire.
> - **/
> -static void
> -lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> -{
> -	int i, j;
> -
> -	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> -	     i += sizeof(uint32_t), j++) {
> -		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> -	}
> -}
> -
> -/**
>    * lpfc_scsi_prep_dma_buf_s3 - DMA mapping for scsi buffer to SLI3 IF spec
>    * @phba: The Hba for which this call is being executed.
>    * @lpfc_cmd: The scsi buffer which is going to be mapped.
> @@ -1283,7 +1264,6 @@ lpfc_scsi_prep_dma_buf_s3(struct lpfc_hba *phba, struct lpfc_scsi_buf *lpfc_cmd)
>   	 * we need to set word 4 of IOCB here
>   	 */
>   	iocb_cmd->un.fcpi.fcpi_parm = scsi_bufflen(scsi_cmnd);
> -	lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	return 0;
>   }
>   
> @@ -4147,6 +4127,24 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hba *phba, struct lpfc_iocbq *pIocbIn,
>   }
>   
>   /**
> + * lpfc_fcpcmd_to_iocb - copy the fcp_cmd data into the IOCB
> + * @data: A pointer to the immediate command data portion of the IOCB.
> + * @fcp_cmnd: The FCP Command that is provided by the SCSI layer.
> + *
> + * The routine copies the entire FCP command from @fcp_cmnd to @data while
> + * byte swapping the data to big endian format for transmission on the wire.
> + **/
> +static void
> +lpfc_fcpcmd_to_iocb(uint8_t *data, struct fcp_cmnd *fcp_cmnd)
> +{
> +	int i, j;
> +	for (i = 0, j = 0; i < sizeof(struct fcp_cmnd);
> +	     i += sizeof(uint32_t), j++) {
> +		((uint32_t *)data)[j] = cpu_to_be32(((uint32_t *)fcp_cmnd)[j]);
> +	}
> +}
> +
> +/**
>    * lpfc_scsi_prep_cmnd - Wrapper func for convert scsi cmnd to FCP info unit
>    * @vport: The virtual port for which this call is being executed.
>    * @lpfc_cmd: The scsi command which needs to send.
> @@ -4225,6 +4223,9 @@ lpfc_scsi_prep_cmnd(struct lpfc_vport *vport, struct lpfc_scsi_buf *lpfc_cmd,
>   		fcp_cmnd->fcpCntl3 = 0;
>   		phba->fc4ControlRequests++;
>   	}
> +	if (phba->sli_rev == 3 &&
> +	    !(phba->sli3_options & LPFC_SLI3_BG_ENABLED))
> +		lpfc_fcpcmd_to_iocb(iocb_cmd->unsli3.fcp_ext.icd, fcp_cmnd);
>   	/*
>   	 * Finish initializing those IOCB fields that are independent
>   	 * of the scsi_cmnd request_buffer


  parent reply	other threads:[~2015-05-05 15:33 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-28  8:26 [PATCH kernel] commit 4fbdf9cb ("lpfc: Fix for lun discovery issue with saturn adapter.") Alexey Kardashevskiy
2015-04-28  8:26 ` Alexey Kardashevskiy
2015-04-28  9:18 ` Sebastian Herbszt
2015-04-28  9:18   ` Sebastian Herbszt
2015-04-28 10:36   ` Alexey Kardashevskiy
2015-04-28 10:36     ` Alexey Kardashevskiy
2015-05-05 15:33 ` James Smart [this message]
2015-05-05 15:33   ` James Smart
2015-05-05 15:33   ` James Smart
2015-05-05 21:46   ` Sebastian Herbszt
2015-05-05 21:46     ` Sebastian Herbszt
2015-05-20  3:55     ` Alexey Kardashevskiy
2015-05-20  3:55       ` Alexey Kardashevskiy
2015-05-20 13:11       ` James Smart
2015-05-20 13:11         ` James Smart
2015-05-20 19:51         ` James Smart
2015-05-20 19:51           ` James Smart
2015-05-22 11:33       ` Sebastian Herbszt
2015-05-23  9:31         ` Sebastian Herbszt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5548E2C1.3070209@emulex.com \
    --to=james.smart@emulex.com \
    --cc=JBottomley@odin.com \
    --cc=aik@ozlabs.ru \
    --cc=herbszt@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.