hostdata->sensing = NULL;
        }
 
-       cmd->scsi_done(cmd);
+       scsi_done(cmd);
 }
 
 /**
        case WRITE_10:
                shost_printk(KERN_DEBUG, instance, "WRITE attempted with NDEBUG_NO_WRITE set\n");
                cmd->result = (DID_ERROR << 16);
-               cmd->scsi_done(cmd);
+               scsi_done(cmd);
                return 0;
        }
 #endif /* (NDEBUG & NDEBUG_NO_WRITE) */
  * hostdata->connected will be set to cmd.
  * SELECT interrupt will be disabled.
  *
- * If failed (no target) : cmd->scsi_done() will be called, and the
+ * If failed (no target) : scsi_done() will be called, and the
  * cmd->result host byte set to DID_BAD_TARGET.
  */
 
                dsprintk(NDEBUG_ABORT, instance,
                         "abort: removed %p from issue queue\n", cmd);
                cmd->result = DID_ABORT << 16;
-               cmd->scsi_done(cmd); /* No tag or busy flag to worry about */
+               scsi_done(cmd); /* No tag or busy flag to worry about */
                goto out;
        }
 
        list_for_each_entry(ncmd, &hostdata->autosense, list) {
                struct scsi_cmnd *cmd = NCR5380_to_scmd(ncmd);
 
-               cmd->scsi_done(cmd);
+               scsi_done(cmd);
        }
        INIT_LIST_HEAD(&hostdata->autosense);
 
                struct scsi_cmnd *scmd = NCR5380_to_scmd(ncmd);
 
                scmd->result = DID_RESET << 16;
-               scmd->scsi_done(scmd);
+               scsi_done(scmd);
        }
        INIT_LIST_HEAD(&hostdata->unissued);