}
 
        /* enqueue the command and wake up the control thread */
-       srb->scsi_done = done;
        chip->srb = srb;
        complete(&dev->cmnd_ready);
 
 
                /* indicate that the command is done */
                else if (chip->srb->result != DID_ABORT << 16) {
-                       chip->srb->scsi_done(chip->srb);
+                       scsi_done(chip->srb);
                } else {
 skip_for_abort:
                        dev_err(&dev->pci->dev, "scsi command aborted\n");
        if (chip->srb) {
                chip->srb->result = DID_NO_CONNECT << 16;
                scsi_lock(host);
-               chip->srb->scsi_done(dev->chip->srb);
+               scsi_done(dev->chip->srb);
                chip->srb = NULL;
                scsi_unlock(host);
        }