From: Borislav Petkov <bbpetkov@xxxxxxxx> tape->speed_ctl is set to 1 in idetape_setup(), but, in calculate_speeds() its value is tested for being 0, 1, or 2. Remove the if-branches where tape->speed_ctl != 1 since they are never executed. Also, rename calculate_speeds() by adding driver's prefix as is with the other function names. Signed-off-by: Borislav Petkov <bbpetkov@xxxxxxxx> --- drivers/ide/ide-tape.c | 23 +++++++++-------------- 1 files changed, 9 insertions(+), 14 deletions(-) diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 31edb0c..eab552e 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -61,7 +61,8 @@ * the optimum value or until we reach MAX. * * Setting the following parameter to 0 is illegal: the pipelined mode - * cannot be disabled (calculate_speeds() divides by tape->max_stages.) + * cannot be disabled (idetape_calculate_speeds() divides by + * tape->max_stages.) */ #define IDETAPE_MIN_PIPELINE_STAGES 1 #define IDETAPE_MAX_PIPELINE_STAGES 400 @@ -1462,10 +1463,9 @@ static void idetape_create_mode_sense_cmd (idetape_pc_t *pc, u8 page_code) pc->callback = &idetape_pc_callback; } -static void calculate_speeds(ide_drive_t *drive) +static void idetape_calculate_speeds(ide_drive_t *drive) { idetape_tape_t *tape = drive->driver_data; - int full = 125, empty = 75; if (time_after(jiffies, tape->ctl_pipe_htime + 120 * HZ)) { tape->ctl_prev_pipe_h = tape->ctl_last_pipe_h; @@ -1497,9 +1497,8 @@ static void calculate_speeds(ide_drive_t *drive) tape->unctl_pipe_htime = jiffies; } tape->pipe_hspeed = max(tape->unctl_pipe_hspeed, tape->pipe_ctl_hspeed); - if (tape->speed_ctl == 0) { - tape->max_ins_speed = 5000; - } else if (tape->speed_ctl == 1) { + + if (tape->speed_ctl == 1) { if (tape->nr_pending_stages >= tape->max_stages / 2) tape->max_ins_speed = tape->pipe_hspeed + (1100 - tape->pipe_hspeed) * 2 * @@ -1511,13 +1510,9 @@ static void calculate_speeds(ide_drive_t *drive) tape->nr_pending_stages / tape->max_stages; if (tape->nr_pending_stages >= tape->max_stages * 99 / 100) tape->max_ins_speed = 5000; - } else if (tape->speed_ctl == 2) { - tape->max_ins_speed = tape->pipe_hspeed * empty / 100 + - (tape->pipe_hspeed * full / 100 - tape->pipe_hspeed * - empty / 100) * tape->nr_pending_stages - / tape->max_stages; } else tape->max_ins_speed = tape->speed_ctl; + tape->max_ins_speed = max(tape->max_ins_speed, 500); } @@ -1696,7 +1691,7 @@ static ide_startstop_t idetape_do_request(ide_drive_t *drive, if (time_after(jiffies, tape->ins_time)) tape->ins_speed = tape->ins_size / 1024 * HZ / (jiffies - tape->ins_time); - calculate_speeds(drive); + idetape_calculate_speeds(drive); if (!test_and_clear_bit(IDETAPE_IGNORE_DSC, &tape->flags) && (stat & SEEK_STAT) == 0) { if (postponed_rq == NULL) { @@ -2416,7 +2411,7 @@ static int idetape_add_chrdev_write_request (ide_drive_t *drive, int blocks) idetape_switch_buffers(tape, new_stage); idetape_add_stage_tail(drive, new_stage); tape->pipeline_head++; - calculate_speeds(drive); + idetape_calculate_speeds(drive); /* * Estimate whether the tape has stopped writing by checking @@ -2658,7 +2653,7 @@ static int idetape_add_chrdev_read_request (ide_drive_t *drive,int blocks) idetape_remove_stage_head(drive); spin_unlock_irqrestore(&tape->que_lock, flags); tape->pipeline_head++; - calculate_speeds(drive); + idetape_calculate_speeds(drive); } if (bytes_read > blocks * tape->blk_sz) { printk(KERN_ERR "ide-tape: bug: trying to return more bytes than requested\n"); -- 1.5.3.7 - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html