From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932296AbcFJXJj (ORCPT ); Fri, 10 Jun 2016 19:09:39 -0400 Received: from x127155.tudelft.net ([131.180.127.155]:41110 "EHLO djo.tudelft.nl" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751943AbcFJXJi (ORCPT ); Fri, 10 Jun 2016 19:09:38 -0400 X-Greylist: delayed 400 seconds by postgrey-1.27 at vger.kernel.org; Fri, 10 Jun 2016 19:09:37 EDT Date: Sat, 11 Jun 2016 01:02:55 +0200 From: Wim Osterholt To: jikos@kernel.org Cc: Wim Osterholt , linux-kernel@vger.kernel.org Subject: disfunctional floppy driver in kernels 4.5, 4.6 and 4.7 Message-ID: <20160610230255.GA27770@djo.tudelft.nl> Reply-To: wim@djo.tudelft.nl MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org L.S. 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. ----- wim@djo.tudelft.nl -----