mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-06 19:07:52 +00:00
block: floppy: fix rmmod lockup
Floppy rmmod locks up when no such hardware was initialized, since there is nobody to wake the remove code up. Remove the completion, because release is called during platform_unregister anyway. Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Cc: Jens Axboe <jens.axboe@oracle.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
bd0e88e517
commit
f2005e1777
1 changed files with 0 additions and 5 deletions
|
@ -217,7 +217,6 @@ static int use_virtual_dma;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static DEFINE_SPINLOCK(floppy_lock);
|
static DEFINE_SPINLOCK(floppy_lock);
|
||||||
static struct completion device_release;
|
|
||||||
|
|
||||||
static unsigned short virtual_dma_port = 0x3f0;
|
static unsigned short virtual_dma_port = 0x3f0;
|
||||||
irqreturn_t floppy_interrupt(int irq, void *dev_id);
|
irqreturn_t floppy_interrupt(int irq, void *dev_id);
|
||||||
|
@ -4144,7 +4143,6 @@ DEVICE_ATTR(cmos,S_IRUGO,floppy_cmos_show,NULL);
|
||||||
|
|
||||||
static void floppy_device_release(struct device *dev)
|
static void floppy_device_release(struct device *dev)
|
||||||
{
|
{
|
||||||
complete(&device_release);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct platform_device floppy_device[N_DRIVE];
|
static struct platform_device floppy_device[N_DRIVE];
|
||||||
|
@ -4539,7 +4537,6 @@ void cleanup_module(void)
|
||||||
{
|
{
|
||||||
int drive;
|
int drive;
|
||||||
|
|
||||||
init_completion(&device_release);
|
|
||||||
blk_unregister_region(MKDEV(FLOPPY_MAJOR, 0), 256);
|
blk_unregister_region(MKDEV(FLOPPY_MAJOR, 0), 256);
|
||||||
unregister_blkdev(FLOPPY_MAJOR, "fd");
|
unregister_blkdev(FLOPPY_MAJOR, "fd");
|
||||||
|
|
||||||
|
@ -4564,8 +4561,6 @@ void cleanup_module(void)
|
||||||
|
|
||||||
/* eject disk, if any */
|
/* eject disk, if any */
|
||||||
fd_eject(0);
|
fd_eject(0);
|
||||||
|
|
||||||
wait_for_completion(&device_release);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module_param(floppy, charp, 0);
|
module_param(floppy, charp, 0);
|
||||||
|
|
Loading…
Reference in a new issue