return 0;
 }
 
-static ide_startstop_t ide_tape_callback(ide_drive_t *drive)
+static void ide_tape_callback(ide_drive_t *drive)
 {
        idetape_tape_t *tape = drive->driver_data;
        struct ide_atapi_pc *pc = tape->pc;
        }
 
        idetape_end_request(drive, uptodate, 0);
-
-       return ide_stopped;
 }
 
 static void idetape_init_pc(struct ide_atapi_pc *pc)
                if (tape->failed_pc == pc)
                        tape->failed_pc = NULL;
                /* Command finished - Call the callback function */
-               return pc->idetape_callback(drive);
+               pc->idetape_callback(drive);
+               return ide_stopped;
        }
 
        if (pc->flags & PC_FLAG_DMA_IN_PROGRESS) {
                        pc->error = IDETAPE_ERROR_GENERAL;
                }
                tape->failed_pc = NULL;
-               return pc->idetape_callback(drive);
+               pc->idetape_callback(drive);
+               return ide_stopped;
        }
        debug_log(DBG_SENSE, "Retry #%d, cmd = %02X\n", pc->retries, pc->c[0]);
 
                pc->error = IDETAPE_ERROR_GENERAL;
                tape->failed_pc = NULL;
        }
-       return pc->idetape_callback(drive);
+       pc->idetape_callback(drive);
+       return ide_stopped;
 }
 
 static void idetape_create_read_cmd(idetape_tape_t *tape,