On Tue, Mar 11, 2008 at 12:24:51AM +0100, Bartlomiej Zolnierkiewicz wrote: > On Sunday 09 March 2008, Borislav Petkov wrote: > > Prior to allocating a new pipeline stage, the code checked for the existence of > > a cached pipeline stage to use. Do away with and stick to normal pipeline > > stages only. > > > > Signed-off-by: Borislav Petkov <petkovbb@xxxxxxxxx> > > I modified it slightly while merging since AFAICS we still need to check > 'tape->nr_stages >= tape_max_stages' for idetape_add_chrdev_write_request(). Yep, thanks for spotting that landmine. By the way this driver is full of it :). > From: Borislav Petkov <petkovbb@xxxxxxxxxxxxxx> > Subject: [PATCH 1/4] ide-tape: remove tape->cache_stage > > Prior to allocating a new pipeline stage, the code checked for the existence of > a cached pipeline stage to use. Do away with and stick to normal pipeline > stages only. > > [bart: keep idetape_kmalloc_stage() for now] > > Signed-off-by: Borislav Petkov <petkovbb@xxxxxxxxx> > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> > --- > drivers/ide/ide-tape.c | 13 +------------ > 1 file changed, 1 insertion(+), 12 deletions(-) > > Index: b/drivers/ide/ide-tape.c > =================================================================== > --- a/drivers/ide/ide-tape.c > +++ b/drivers/ide/ide-tape.c > @@ -365,8 +365,6 @@ typedef struct ide_tape_obj { > idetape_stage_t *next_stage; > /* New requests will be added to the pipeline here */ > idetape_stage_t *last_stage; > - /* Optional free stage which we can use */ > - idetape_stage_t *cache_stage; > int pages_per_stage; > /* Wasted space in each stage */ > int excess_bh_size; > @@ -1686,16 +1684,10 @@ abort: > > 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); > } > > @@ -3245,10 +3237,7 @@ static int idetape_chrdev_release(struct > else > idetape_wait_for_pipeline(drive); > } > - if (tape->cache_stage != NULL) { > - __idetape_kfree_stage(tape->cache_stage); > - tape->cache_stage = NULL; > - } > + > if (minor < 128 && test_bit(IDETAPE_FLAG_MEDIUM_PRESENT, &tape->flags)) > (void) idetape_rewind_tape(drive); > if (tape->chrdev_dir == IDETAPE_DIR_NONE) { -- Regards/Gruß, Boris. -- 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