Bug 43120

Summary: Floppy keeps spinning forever after access, until disk is removed.
Product: IO/Storage Reporter: Linards Ticmanis (ticmanis)
Component: OtherAssignee: io_other
Status: NEW ---    
Severity: normal CC: alan, corti, jikos, szg00000, ticmanis
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.4.0-rc3 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: kernel messages

Description Linards Ticmanis 2012-04-18 15:59:18 UTC
The floppy disk drive's motor keeps running forever as soon as the floppy is accessed (say, by doing a "mdir a:" or a "fdformat /dev/fd0", or a "dd if=/dev/fd0 ..." ), and the floppy drive's activity LED stays lit. Only when the disk is removed from the drive, the drive stops. I'd expect the drive to stop spinning a few seconds after the access is finished.

The accessing command returns normally and I can still access the drive normally by giving another command afterwards. The problem is purely the failure to deselect the drive and/or turn off the drive motor line.

This is a standard IRQ6/DMA2 floppy drive connected directly to the motherboard's built in FDC with a standard 34-wire ribbon floppy cable. The bug happens both with a normal 1.44MB drive and with a 1.2MB (5.25 inch) drive. The drives do not exhibit this problem in DOS or Windows running on the same physical hardware. My motherboard is an ASUS P5B, if that is important. There was no second drive connected as my motherboard supports only one floppy.

The bug first occured after upgrading my Ubuntu system to Ubuntu Precise (12.04) Beta 2, but I have tested with a mainline 3.4.0-rc3 kernel (though with Ubuntu specific configuration) which I got from here:

http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.4-rc3-precise/

The specific package I tested with was called "linux-image-3.4.0-030400rc3-generic_3.4.0-030400rc3.201204152235_amd64.deb"

The bug was still there in that mainline kernel.

I hope this is the right subsystem for this bug, if not please feel free to move it and/or to point out where it should go. This is the first kernel bug I'm reporting upstream so please excuse me if some vital information is missing. Please just tell me what more info you need. Thanks!

My original Ubuntu bug report can be found here:

https://bugs.launchpad.net/bugs/983681
Comment 1 Linards Ticmanis 2012-04-18 16:02:38 UTC
The kernel where I first noticed the bug is the Ubuntu specific 3.2.0. Currently "uname -a" gives "Linux linards 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux".
Comment 2 Szőgyényi Gábor 2017-03-06 20:29:51 UTC
Please try to reproduce this bug with latest kernel image.
Comment 3 Christian Corti 2019-02-14 09:29:09 UTC
The problem still persists. I've tried kernel 4.19.16 from Debian testing. The bug somehow lies in the logic for detecting a disk change. If I access the floppy the motor won't turn off. But if I force a disk change (ejecting and immediately inserting the floppy again) the motor turns off within about two seconds - as it should.
Also, if I practically disable the disk change checks with "floppycontrol -C 2147483647" the motor turns off normally. So I suspect that frequently checking for disk changes without the floppy being changed keeps the motor in its current state.
Comment 4 Christian Corti 2019-02-14 10:52:18 UTC
Created attachment 281133 [details]
kernel messages

The following kernel messages are repeated every two seconds (after which the motor should be turned off) when loading the module with floppy=debug