public inbox for linuxppc-dev@ozlabs.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

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

Thread overview: 10+ 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  9:18 ` Sebastian Herbszt
2015-04-28 10:36   ` Alexey Kardashevskiy
2015-05-05 15:33 ` James Smart [this message]
2015-05-05 21:46   ` Sebastian Herbszt
2015-05-20  3:55     ` Alexey Kardashevskiy
2015-05-20 13:11       ` 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$(echo .)com \
    --cc=JBottomley@odin$(echo .)com \
    --cc=aik@ozlabs$(echo .)ru \
    --cc=herbszt@gmx$(echo .)de \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=linux-scsi@vger$(echo .)kernel.org \
    --cc=linuxppc-dev@lists$(echo .)ozlabs.org \
    --cc=paulus@samba$(echo .)org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox