On Wed, 18 Apr 2018, Johannes Thumshirn wrote:

> diff --git a/drivers/scsi/NCR5380.c b/drivers/scsi/NCR5380.c
> index d670cfe4d0e7..a0b79899bce3 100644
> --- a/drivers/scsi/NCR5380.c
> +++ b/drivers/scsi/NCR5380.c
> @@ -548,7 +548,8 @@ static int NCR5380_queue_command(struct Scsi_Host 
> *instance,
>       case WRITE_6:
>       case WRITE_10:
>               shost_printk(KERN_DEBUG, instance, "WRITE attempted with 
> NDEBUG_NO_WRITE set\n");
> -             cmd->result = (DID_ERROR << 16);
> +             cmd->result = 0;
> +             set_host_byte(cmd, DID_ERROR);
>               cmd->scsi_done(cmd);
>               return 0;
>       }
> @@ -1118,7 +1119,8 @@ static struct scsi_cmnd *NCR5380_select(struct 
> Scsi_Host *instance,
>               NCR5380_write(SELECT_ENABLE_REG, hostdata->id_mask);
>               /* Can't touch cmd if it has been reclaimed by the scsi ML */
>               if (hostdata->selecting) {
> -                     cmd->result = DID_BAD_TARGET << 16;
> +                     cmd->result = 0;
> +                     set_host_byte(cmd, DID_BAD_TARGET);
>                       complete_cmd(instance, cmd);
>                       dsprintk(NDEBUG_SELECTION, instance, "target did not 
> respond within 250ms\n");
>                       cmd = NULL;
> @@ -1168,7 +1170,8 @@ static struct scsi_cmnd *NCR5380_select(struct 
> Scsi_Host *instance,
>       NCR5380_transfer_pio(instance, &phase, &len, &data);
>       if (len) {
>               NCR5380_write(INITIATOR_COMMAND_REG, ICR_BASE);
> -             cmd->result = DID_ERROR << 16;
> +             cmd->result = 0;
> +             set_host_byte(cmd, DID_ERROR);
>               complete_cmd(instance, cmd);
>               dsprintk(NDEBUG_SELECTION, instance, "IDENTIFY message transfer 
> failed\n");
>               cmd = NULL;
> @@ -1708,7 +1711,8 @@ static void NCR5380_information_transfer(struct 
> Scsi_Host *instance)
>                               shost_printk(KERN_DEBUG, instance, 
> "NDEBUG_NO_DATAOUT set, attempted DATAOUT aborted\n");
>                               sink = 1;
>                               do_abort(instance);
> -                             cmd->result = DID_ERROR << 16;
> +                             cmd->result = 0;
> +                             set_host_byte(cmd, DID_ERROR);
>                               complete_cmd(instance, cmd);
>                               hostdata->connected = NULL;
>                               return;
> @@ -1757,7 +1761,8 @@ static void NCR5380_information_transfer(struct 
> Scsi_Host *instance)
>                                               cmd->device->borken = 1;
>                                               sink = 1;
>                                               do_abort(instance);
> -                                             cmd->result = DID_ERROR << 16;
> +                                             cmd->result = 0;
> +                                             set_host_byte(cmd, DID_ERROR);
>                                               /* XXX - need to source or sink 
> data here, as appropriate */
>                                       }
>                               } else {
> @@ -1951,7 +1956,8 @@ static void NCR5380_information_transfer(struct 
> Scsi_Host *instance)
>                               NCR5380_transfer_pio(instance, &phase, &len, 
> &data);
>                               if (msgout == ABORT) {
>                                       hostdata->connected = NULL;
> -                                     cmd->result = DID_ERROR << 16;
> +                                     cmd->result = 0;
> +                                     set_host_byte(cmd, DID_ERROR);
>                                       complete_cmd(instance, cmd);
>                                       maybe_release_dma_irq(instance);
>                                       NCR5380_write(SELECT_ENABLE_REG, 
> hostdata->id_mask);
> @@ -2228,7 +2234,8 @@ static int NCR5380_abort(struct scsi_cmnd *cmd)
>       if (list_del_cmd(&hostdata->unissued, cmd)) {
>               dsprintk(NDEBUG_ABORT, instance,
>                        "abort: removed %p from issue queue\n", cmd);
> -             cmd->result = DID_ABORT << 16;
> +             cmd->result = 0;
> +             set_host_byte(cmd, DID_ABORT);
>               cmd->scsi_done(cmd); /* No tag or busy flag to worry about */
>               goto out;
>       }
> @@ -2237,7 +2244,8 @@ static int NCR5380_abort(struct scsi_cmnd *cmd)
>               dsprintk(NDEBUG_ABORT, instance,
>                        "abort: cmd %p == selecting\n", cmd);
>               hostdata->selecting = NULL;
> -             cmd->result = DID_ABORT << 16;
> +             cmd->result = 0;
> +             set_host_byte(cmd, DID_ABORT);
>               complete_cmd(instance, cmd);
>               goto out;
>       }
> @@ -2327,12 +2335,13 @@ static int NCR5380_host_reset(struct scsi_cmnd *cmd)
>        */
>  
>       if (list_del_cmd(&hostdata->unissued, cmd)) {
> -             cmd->result = DID_RESET << 16;
> +             cmd->result = 0;
> +             set_host_byte(cmd, DID_RESET);
>               cmd->scsi_done(cmd);
>       }
>  
>       if (hostdata->selecting) {
> -             hostdata->selecting->result = DID_RESET << 16;
> +             set_host_byte(hostdata->selecting, DID_RESET);
>               complete_cmd(instance, hostdata->selecting);
>               hostdata->selecting = NULL;
>       }

Every hunk except the last one looks to be equivalent. Not sure why
the last one is treated differently.

Also, I think using two assignments instead of one is a step backwards. Is 
there a better helper for this?

-- 

Reply via email to