• Jiri Kosina's avatar
    floppy: destroy floppy workqueue before cleaning up the queue · eac7cc52
    Jiri Kosina authored
    We need to first destroy the floppy_wq workqueue before cleaning up
    the queue. Otherwise we might race with still pending work with the
    workqueue, but all the block queue already gone. This might lead to
    various oopses, such as
    
     CPU 0
     Pid: 6, comm: kworker/u:0 Not tainted 3.7.0-rc4 #1 Bochs Bochs
     RIP: 0010:[<ffffffff8134eef5>]  [<ffffffff8134eef5>] blk_peek_request+0xd5/0x1c0
     RSP: 0000:ffff88000dc7dd88  EFLAGS: 00010092
     RAX: 0000000000000001 RBX: 0000000000000000 RCX: 0000000000000000
     RDX: ffff88000f602688 RSI: ffffffff81fd95d8 RDI: 6b6b6b6b6b6b6b6b
     RBP: ffff88000dc7dd98 R08: ffffffff81fd95c8 R09: 0000000000000000
     R10: ffffffff81fd9480 R11: 0000000000000001 R12: 6b6b6b6b6b6b6b6b
     R13: ffff88000dc7dfd8 R14: ffff88000dc7dfd8 R15: 0000000000000000
     FS:  0000000000000000(0000) GS:ffffffff81e21000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
     CR2: 0000000000000000 CR3: 0000000001e11000 CR4: 00000000000006f0...
    eac7cc52
floppy.c 117 KB