if (!scmd->device->hostdata) {
                scmd->result = (DID_NO_CONNECT << 16);
-               scmd->scsi_done(scmd);
+               scsi_done(scmd);
                return 0;
        }
 
        switch (scmd->cmnd[0]) {
        case REPORT_LUNS:
                scsi_build_sense(scmd, 0, ILLEGAL_REQUEST, 0x20, 0x0);
-               scmd->scsi_done(scmd);
+               scsi_done(scmd);
                return 0;
        case MODE_SENSE:
                if (scmd->device->channel >= cs->ctlr_info->physchan_present) {
                                myrs_mode_sense(cs, scmd, ldev_info);
                                scmd->result = (DID_OK << 16);
                        }
-                       scmd->scsi_done(scmd);
+                       scsi_done(scmd);
                        return 0;
                }
                break;
                        if (WARN_ON(!hw_sgl)) {
                                scsi_dma_unmap(scmd);
                                scmd->result = (DID_ERROR << 16);
-                               scmd->scsi_done(scmd);
+                               scsi_done(scmd);
                                return 0;
                        }
                        hw_sgl->sge_addr = (u64)sg_dma_address(sgl);
                scmd->result = (DID_BAD_TARGET << 16);
        else
                scmd->result = (DID_OK << 16) | status;
-       scmd->scsi_done(scmd);
+       scsi_done(scmd);
 }
 
 static void myrs_handle_cmdblk(struct myrs_hba *cs, struct myrs_cmdblk *cmd_blk)