[PATCH 05/24] ide-tape: cleanup pipeline-specific code from idetape_init_read - Kernel

This is a discussion on [PATCH 05/24] ide-tape: cleanup pipeline-specific code from idetape_init_read - Kernel ; Also, remove idetape_kmalloc_stage() and idetape_add_stage_tail() since they've become unused, as a result. Signed-off-by: Borislav Petkov --- drivers/ide/ide-tape.c | 73 +++-------------------------------------------- 1 files changed, 5 insertions(+), 68 deletions(-) diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 4a064c1..6bca29b 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -1684,21 ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: [PATCH 05/24] ide-tape: cleanup pipeline-specific code from idetape_init_read

  1. [PATCH 05/24] ide-tape: cleanup pipeline-specific code from idetape_init_read

    Also, remove idetape_kmalloc_stage() and idetape_add_stage_tail() since they've
    become unused, as a result.

    Signed-off-by: Borislav Petkov
    ---
    drivers/ide/ide-tape.c | 73 +++--------------------------------------------
    1 files changed, 5 insertions(+), 68 deletions(-)

    diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
    index 4a064c1..6bca29b 100644
    --- a/drivers/ide/ide-tape.c
    +++ b/drivers/ide/ide-tape.c
    @@ -1684,21 +1684,6 @@ abort:
    return NULL;
    }

    -static idetape_stage_t *idetape_kmalloc_stage(idetape_tape_t *tape)
    -{
    - idetape_stage_t *cache_stage = tape->cache_stage;
    -
    - debug_log(DBG_PROCS, "Enter %s\n", __func__);
    -
    - if (tape->nr_stages >= tape->max_stages)
    - return NULL;
    - if (cache_stage != NULL) {
    - tape->cache_stage = NULL;
    - return cache_stage;
    - }
    - return __idetape_kmalloc_stage(tape, 0, 0);
    -}
    -
    static int idetape_copy_stage_from_user(idetape_tape_t *tape,
    const char __user *buf, int n)
    {
    @@ -1776,30 +1761,8 @@ static void idetape_init_merge_stage(idetape_tape_t *tape)
    }
    }

    -/* Add a new stage at the end of the pipeline. */
    -static void idetape_add_stage_tail(ide_drive_t *drive, idetape_stage_t *stage)
    -{
    - idetape_tape_t *tape = drive->driver_data;
    - unsigned long flags;
    -
    - debug_log(DBG_PROCS, "Enter %s\n", __func__);
    -
    - spin_lock_irqsave(&tape->lock, flags);
    - stage->next = NULL;
    - if (tape->last_stage != NULL)
    - tape->last_stage->next = stage;
    - else
    - tape->first_stage = stage;
    - tape->next_stage = stage;
    - tape->last_stage = stage;
    - if (tape->next_stage == NULL)
    - tape->next_stage = tape->last_stage;
    - tape->nr_stages++;
    - tape->nr_pending_stages++;
    - spin_unlock_irqrestore(&tape->lock, flags);
    -}
    -
    -/* Install a completion in a pending request and sleep until it is serviced. The
    +/*
    + * Install a completion in a pending request and sleep until it is serviced. The
    * caller should ensure that the request will not be serviced before we install
    * the completion (usually by disabling interrupts).
    */
    @@ -2318,17 +2281,12 @@ static void idetape_restart_speed_control(ide_drive_t *drive)
    static int idetape_init_read(ide_drive_t *drive, int max_stages)
    {
    idetape_tape_t *tape = drive->driver_data;
    - idetape_stage_t *new_stage;
    struct request rq;
    int bytes_read;
    u16 blocks = *(u16 *)&tape->caps[12];

    /* Initialize read operation */
    if (tape->chrdev_dir != IDETAPE_DIR_READ) {
    - if (tape->chrdev_dir == IDETAPE_DIR_WRITE) {
    - idetape_empty_write_pipeline(drive);
    - idetape_flush_tape_buffers(drive);
    - }
    if (tape->merge_stage || tape->merge_stage_size) {
    printk(KERN_ERR "ide-tape: merge_stage_size should be"
    " 0 now\n");
    @@ -2347,8 +2305,8 @@ static int idetape_init_read(ide_drive_t *drive, int max_stages)
    */
    if (drive->dsc_overlap) {
    bytes_read = idetape_queue_rw_tail(drive,
    - REQ_IDETAPE_READ, 0,
    - tape->merge_stage->bh);
    + REQ_IDETAPE_READ, 0,
    + tape->merge_stage->bh);
    if (bytes_read < 0) {
    __idetape_kfree_stage(tape->merge_stage);
    tape->merge_stage = NULL;
    @@ -2357,32 +2315,11 @@ static int idetape_init_read(ide_drive_t *drive, int max_stages)
    }
    }
    }
    - if (tape->restart_speed_control_req)
    - idetape_restart_speed_control(drive);
    idetape_init_rq(&rq, REQ_IDETAPE_READ);
    rq.sector = tape->first_frame;
    rq.nr_sectors = blocks;
    rq.current_nr_sectors = blocks;
    - if (!test_bit(IDETAPE_FLAG_PIPELINE_ERR, &tape->flags) &&
    - tape->nr_stages < max_stages) {
    - new_stage = idetape_kmalloc_stage(tape);
    - while (new_stage != NULL) {
    - new_stage->rq = rq;
    - idetape_add_stage_tail(drive, new_stage);
    - if (tape->nr_stages >= max_stages)
    - break;
    - new_stage = idetape_kmalloc_stage(tape);
    - }
    - }
    - if (!test_bit(IDETAPE_FLAG_PIPELINE_ACTIVE, &tape->flags)) {
    - if (tape->nr_pending_stages >= 3 * max_stages / 4) {
    - tape->measure_insert_time = 1;
    - tape->insert_time = jiffies;
    - tape->insert_size = 0;
    - tape->insert_speed = 0;
    - idetape_plug_pipeline(drive);
    - }
    - }
    +
    return 0;
    }

    --
    1.5.4.1

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [PATCH 05/24] ide-tape: cleanup pipeline-specific code from idetape_init_read

    On Saturday 01 March 2008, Borislav Petkov wrote:
    > Also, remove idetape_kmalloc_stage() and idetape_add_stage_tail() since they've
    > become unused, as a result.


    I wonder whether some of these changes should be done before patch #2 or #3?

    It could be that it would make patches #2-4 obvious, ie.

    > - if (!test_bit(IDETAPE_FLAG_PIPELINE_ERR, &tape->flags) &&
    > - tape->nr_stages < max_stages) {
    > - new_stage = idetape_kmalloc_stage(tape);
    > - while (new_stage != NULL) {
    > - new_stage->rq = rq;
    > - idetape_add_stage_tail(drive, new_stage);
    > - if (tape->nr_stages >= max_stages)
    > - break;
    > - new_stage = idetape_kmalloc_stage(tape);
    > - }
    > - }


    I can see now that after this change ->first_stage will be always NULL
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread