]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
floppy: don't call alloc_ordered_workqueue inside the alloc_disk loop
authorHerton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Mon, 27 Aug 2012 23:56:51 +0000 (20:56 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Nov 2012 08:56:49 +0000 (09:56 +0100)
commit0de4380ecfc63f6f3940b9ec03c36c78f008ac12
treefca0668e3f684a82ee381a1ec4fa0b5f534ee378
parent636b755668eefd3537af58e7843ef8389c4d03b6
floppy: don't call alloc_ordered_workqueue inside the alloc_disk loop

commit b54e1f88897bcacc2cd359f48ea3b39eaf55f084 upstream.

Since commit 070ad7e ("floppy: convert to delayed work and single-thread
wq"), we end up calling alloc_ordered_workqueue multiple times inside
the loop, which shouldn't be intended. Besides the leak, other side
effect in the current code is if blk_init_queue fails, we would end up
calling unregister_blkdev even if we didn't call yet register_blkdev.

Just moved the allocation of floppy_wq before the loop, and adjusted the
code accordingly.

Acked-by: Vivek Goyal <vgoyal@redhat.com>
Reviewed-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/block/floppy.c