linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: James Smart <James.Smart@Emulex.Com>
To: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: "James.Bottomley@hansenpartnership.com"
	<James.Bottomley@hansenpartnership.com>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: Re: [PATCH 1/5] scsi: Deprecate SCSI_PROT_*_CONVERT operations
Date: Fri, 18 Sep 2009 19:16:54 -0400	[thread overview]
Message-ID: <4AB414E6.1050703@emulex.com> (raw)
In-Reply-To: <1252696852-17091-2-git-send-email-martin.petersen@oracle.com>

lpfc mods look fine.

Acked-by: James Smart <james.smart@emulex.com>
Acked-by: Ihab Hamadi<Ihab.Hamadi@Emulex.Com>

-- james s

Martin K. Petersen wrote:
> The checksum format is orthogonal to whether the protection information
> is being passed on beyond the HBA or not.  It is perfectly valid to use
> a non-T10 CRC with WRITE_STRIP and READ_INSERT.
>
> Consequently it no longer makes sense to explicitly refer to the
> conversion in the protection operation.  Update sd_dif and lpfc
> accordingly.
>
> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
> ---
>  drivers/scsi/lpfc/lpfc_scsi.c |   15 +++------------
>  drivers/scsi/sd_dif.c         |   20 ++++----------------
>  include/scsi/scsi_cmnd.h      |    4 ----
>  3 files changed, 7 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
> index da59c4f..ad75e19 100644
> --- a/drivers/scsi/lpfc/lpfc_scsi.c
> +++ b/drivers/scsi/lpfc/lpfc_scsi.c
> @@ -56,8 +56,6 @@ static char *dif_op_str[] = {
>  	"SCSI_PROT_WRITE_INSERT",
>  	"SCSI_PROT_READ_PASS",
>  	"SCSI_PROT_WRITE_PASS",
> -	"SCSI_PROT_READ_CONVERT",
> -	"SCSI_PROT_WRITE_CONVERT"
>  };
>  static void
>  lpfc_release_scsi_buf_s4(struct lpfc_hba *phba, struct lpfc_scsi_buf *psb);
> @@ -1131,13 +1129,11 @@ lpfc_sc_to_sli_prof(struct scsi_cmnd *sc)
>  			ret_prof = LPFC_PROF_A1;
>  			break;
>  
> -		case SCSI_PROT_READ_CONVERT:
> -		case SCSI_PROT_WRITE_CONVERT:
> +		case SCSI_PROT_READ_PASS:
> +		case SCSI_PROT_WRITE_PASS:
>  			ret_prof = LPFC_PROF_AST1;
>  			break;
>  
> -		case SCSI_PROT_READ_PASS:
> -		case SCSI_PROT_WRITE_PASS:
>  		case SCSI_PROT_NORMAL:
>  		default:
>  			printk(KERN_ERR "Bad op/guard:%d/%d combination\n",
> @@ -1157,8 +1153,6 @@ lpfc_sc_to_sli_prof(struct scsi_cmnd *sc)
>  			ret_prof = LPFC_PROF_C1;
>  			break;
>  
> -		case SCSI_PROT_READ_CONVERT:
> -		case SCSI_PROT_WRITE_CONVERT:
>  		case SCSI_PROT_READ_INSERT:
>  		case SCSI_PROT_WRITE_STRIP:
>  		case SCSI_PROT_NORMAL:
> @@ -1209,8 +1203,7 @@ lpfc_get_cmd_dif_parms(struct scsi_cmnd *sc, uint16_t *apptagmask,
>  	static int cnt;
>  
>  	if (protcnt && (op == SCSI_PROT_WRITE_STRIP ||
> -				op == SCSI_PROT_WRITE_PASS ||
> -				op == SCSI_PROT_WRITE_CONVERT)) {
> +				op == SCSI_PROT_WRITE_PASS)) {
>  
>  		cnt++;
>  		spt = page_address(sg_page(scsi_prot_sglist(sc))) +
> @@ -1501,8 +1494,6 @@ lpfc_prot_group_type(struct lpfc_hba *phba, struct scsi_cmnd *sc)
>  	case SCSI_PROT_WRITE_STRIP:
>  	case SCSI_PROT_READ_PASS:
>  	case SCSI_PROT_WRITE_PASS:
> -	case SCSI_PROT_WRITE_CONVERT:
> -	case SCSI_PROT_READ_CONVERT:
>  		ret = LPFC_PG_TYPE_DIF_BUF;
>  		break;
>  	default:
> diff --git a/drivers/scsi/sd_dif.c b/drivers/scsi/sd_dif.c
> index 82f14a9..84224dd 100644
> --- a/drivers/scsi/sd_dif.c
> +++ b/drivers/scsi/sd_dif.c
> @@ -364,15 +364,9 @@ void sd_dif_config_host(struct scsi_disk *sdkp)
>   */
>  void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsigned int type)
>  {
> -	int csum_convert, prot_op;
> +	int prot_op;
>  
> -	prot_op = 0;
> -
> -	/* Convert checksum? */
> -	if (scsi_host_get_guard(scmd->device->host) != SHOST_DIX_GUARD_CRC)
> -		csum_convert = 1;
> -	else
> -		csum_convert = 0;
> +	prot_op = SCSI_PROT_NORMAL;
>  
>  	BUG_ON(dif && (scmd->cmnd[0] == READ_6 || scmd->cmnd[0] == WRITE_6));
>  
> @@ -382,10 +376,7 @@ void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsig
>  	case READ_12:
>  	case READ_16:
>  		if (dif && dix)
> -			if (csum_convert)
> -				prot_op = SCSI_PROT_READ_CONVERT;
> -			else
> -				prot_op = SCSI_PROT_READ_PASS;
> +			prot_op = SCSI_PROT_READ_PASS;
>  		else if (dif && !dix)
>  			prot_op = SCSI_PROT_READ_STRIP;
>  		else if (!dif && dix)
> @@ -398,10 +389,7 @@ void sd_dif_op(struct scsi_cmnd *scmd, unsigned int dif, unsigned int dix, unsig
>  	case WRITE_12:
>  	case WRITE_16:
>  		if (dif && dix)
> -			if (csum_convert)
> -				prot_op = SCSI_PROT_WRITE_CONVERT;
> -			else
> -				prot_op = SCSI_PROT_WRITE_PASS;
> +			prot_op = SCSI_PROT_WRITE_PASS;
>  		else if (dif && !dix)
>  			prot_op = SCSI_PROT_WRITE_INSERT;
>  		else if (!dif && dix)
> diff --git a/include/scsi/scsi_cmnd.h b/include/scsi/scsi_cmnd.h
> index 3878d1d..a5e885a 100644
> --- a/include/scsi/scsi_cmnd.h
> +++ b/include/scsi/scsi_cmnd.h
> @@ -229,10 +229,6 @@ enum scsi_prot_operations {
>  	/* OS-HBA: Protected, HBA-Target: Protected */
>  	SCSI_PROT_READ_PASS,
>  	SCSI_PROT_WRITE_PASS,
> -
> -	/* OS-HBA: Protected, HBA-Target: Protected, checksum conversion */
> -	SCSI_PROT_READ_CONVERT,
> -	SCSI_PROT_WRITE_CONVERT,
>  };
>  
>  static inline void scsi_set_prot_op(struct scsi_cmnd *scmd, unsigned char op)
>   

  reply	other threads:[~2009-09-18 23:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-11 19:20 DIF/DIX updates for 2.6.32 Martin K. Petersen
2009-09-11 19:20 ` [PATCH 1/5] scsi: Deprecate SCSI_PROT_*_CONVERT operations Martin K. Petersen
2009-09-18 23:16   ` James Smart [this message]
2009-09-11 19:20 ` [PATCH 2/5] sd: Detach DIF from block integrity infrastructure Martin K. Petersen
2009-09-11 19:20 ` [PATCH 3/5] scsi: Fix protection scsi_data_buffer leak Martin K. Petersen
2009-09-13  9:36   ` Boaz Harrosh
2009-09-11 19:20 ` [PATCH 4/5] sd: Support disks formatted with DIF Type 2 Martin K. Petersen
2009-09-13  9:37   ` Boaz Harrosh
2009-09-11 19:20 ` [PATCH 5/5] scsi_debug: Implement support for " Martin K. Petersen
2009-09-11 23:06   ` Douglas Gilbert
  -- strict thread matches above, loose matches on Subject: below --
2009-09-18 21:32 Final DIF/DIX patches for 2.6.32 Martin K. Petersen
2009-09-18 21:32 ` [PATCH 1/5] scsi: Deprecate SCSI_PROT_*_CONVERT operations Martin K. Petersen

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=4AB414E6.1050703@emulex.com \
    --to=james.smart@emulex.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).