The check "if (disks[dr]->queue)" check is bogus, if we reach there for each dr should exist an queue allocated (note that we decrement dr first on entering the loop).
Signed-off-by: Herton Ronaldo Krzesinski <[email protected]> --- drivers/block/floppy.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c index 3eafe93..438ffc9 100644 --- a/drivers/block/floppy.c +++ b/drivers/block/floppy.c @@ -4332,15 +4332,13 @@ out_unreg_blkdev: out_put_disk: while (dr--) { del_timer_sync(&motor_off_timer[dr]); - if (disks[dr]->queue) { - blk_cleanup_queue(disks[dr]->queue); - /* - * put_disk() is not paired with add_disk() and - * will put queue reference one extra time. fix it. - */ - if (!disk_registered[dr]) - disks[dr]->queue = NULL; - } + blk_cleanup_queue(disks[dr]->queue); + /* + * put_disk() is not paired with add_disk() and + * will put queue reference one extra time. fix it. + */ + if (!disk_registered[dr]) + disks[dr]->queue = NULL; put_disk(disks[dr]); } destroy_workqueue(floppy_wq); -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

