[lkml]   [2016]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Subjectdisfunctional floppy driver in kernels 4.5, 4.6 and 4.7

up to vanilla kernel 4.4.13 floppy functionality performs like it should.
(On an x86 PC that is. With a 1.44MB diskette drive.)
From kernel 4.5* and up it changed to barely usable.

After a virgin start (cold or warm boot) with an empty diskette drive and
then loaded with a standard 720K diskette you may run 'mdir' (from mtools)
and it shows the directory fine.
The first time you load a standard 1.44MB diskette (wether it is a virgin
start or after a 720K disktette) and you run mdir, it says literally:

plain_io: Input/output error
init A: could not read boot sector
Cannot initialize 'A:'

After this, all subsequent runs of mdir will do fine on both floppies.
However, most of my floppies are in a different format. (1.6MB)
I rely on 'setfdprm' (from fdutils) to set the correct parameters.

setfdprm /dev/fd0 1600/1440
/dev/fd0: Invalid argument

Strace shows me:
open(/dev/fd0, O_ACCMODE) = -1

So this actually means that 'invalid argument' refers to O_ACCMODE.

At all kernels I see no changed rights in:
ls -al /dev/fd0
brw-rw---- 1 root disk 2, 0 May 13 16:43 /dev/fd0

It looks to me that the code in floppy.c is quite old; no changes here.
So the bug is elsewhere in the kernel.

Could someone please explain and repair the magic that is happening here?

Thanks in advance, Wim Osterholt.

----- -----

 \ /
  Last update: 2016-06-11 01:21    [W:0.236 / U:0.216 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site