]> git.karo-electronics.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)
committerJiri Kosina <jkosina@suse.cz>
Mon, 3 Sep 2012 13:53:35 +0000 (15:53 +0200)
commitbcb54c938a5ff4a0820ec095c999ec1d68e14236
treef99abaaecc5636b8008280ee4be4a8f301a6a091
parent155e36d40cf31c17f2b629fc2f2f5527e4cfc324
floppy: don't call alloc_ordered_workqueue inside the alloc_disk loop

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.

Cc: stable@vger.kernel.org # 3.5+
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>
drivers/block/floppy.c