All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Hounschell <markh@compro.net>
To: Jiri Kosina <jikos@kernel.org>
Cc: Linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: Resend: Another 4.4 to 4.5 floppy issue
Date: Mon, 11 Jul 2016 13:05:36 -0400	[thread overview]
Message-ID: <5783D1E0.4040503@compro.net> (raw)
In-Reply-To: <alpine.LNX.2.00.1607111734300.24757@cbobk.fhfr.pm>

On 07/11/2016 11:36 AM, Jiri Kosina wrote:
> On Tue, 5 Jul 2016, Mark Hounschell wrote:
>
>> From: Jiri Kosina <jkosina@suse.cz>
>>
>> Commit 09954bad4 ("floppy: refactor open() flags handling"), as a
>> side-effect, causes open(/dev/fdX, O_ACCMODE) to fail. It turns out that
>> this is being used setfdprm userspace for ioctl-only open().
>>
>> Reintroduce back the original behavior wrt !(FMODE_READ|FMODE_WRITE)
>> modes, while still keeping the original O_NDELAY bug fixed.
>>
>> Cc: stable@vger.kernel.org # v4.5+
>> Reported-by: Wim Osterholt <wim@djo.tudelft.nl>
>> Tested-by: Wim Osterholt <wim@djo.tudelft.nl>
>> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
>> ---
> [ ... snip ... ]
>>
>> But this does not completely fix all the problems induced by the original
>> changes from 4.4 to 4.5. The following is what we use to open the floppy.
>>
>> fd = open(device,  O_RDWR | O_NDELAY);
>>
>> The FMODE_NDELAY check that was removed now prevents one from doing an open of
>> the device with no media inserted. It also prevents one from doing an open of
>> the device with media inserted that is not already formatted in a "standard"
>> format.  I do both of these things a lot. I deal with a few very non-standard
>> formats and this change prevents me from doing what I've been doing for YEARS.
>> Could we please get the original behavior back in the floppy driver.
>
> Hi Mark,
>
> thanks for the regression report.
>
> For my better understanding of your issue -- what behavior/semantics
> exactly does your userspace think it'll be getting from opening /dev/fd0
> with O_NDELAY?
>
> Thanks,
>

Hi Jiri.

Well, all that was specified in my original post. I can no longer open 
the floppy drive with no floppy media inserted. Worse, I can also no 
longer open a floppy with media inserted that is not a "linux" 
recognized format. A floppy drive is a removable media device and should 
be treated as such. The original implementation of the O_NDELAY flag 
allowed it to be.

Any removable media device should be capable of being opened with no, or 
even unrecognizable media installed. The kernel and its utilities should 
not "assume" to much when it comes to removable media. Consider a SCSI 
tape drive or even a removable media SCSI disk drive. How would you 
explain an open failure to someone trying to open a SCSI tape drive that 
had no tape or even a "non-tar" formatted tape media in it???
Or better yet, trying to open a removable media device the was write 
protected but didn't include O_RDONLY in the open?

The original behavior of the floppy driver was correct. I have no idea 
what BUG these changes were supposed to fix but the "fix" obviously 
broke user land. Was this bug reported by some new ROBOT test or 
something? The kernel floppy driver has been stable for years now so I 
am really confused as to why these changes were induced.

As for the "O_RDONLY | O_WRONLY" thing you decided to change back, which 
I'm happy to see, was wrong. Almost ALL removable media devices have W/R 
protection built into the media. For ever, I understood that it was MY 
responsibility to write protect my removable media. An open of a 
removable device should never even care about that stuff. It is the 
users responsibility.

We use extensively, the FDRAWCMD ioctl API. It is totally borked now for 
us without maintaining our own kernel patch that reverts the changes 
from 4.4 to 4.5.

Regards
Mark

  reply	other threads:[~2016-07-11 17:05 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-05 20:28 Resend: Another 4.4 to 4.5 floppy issue Mark Hounschell
2016-07-11 15:36 ` Jiri Kosina
2016-07-11 17:05   ` Mark Hounschell [this message]
2016-07-12  8:54     ` Jiri Kosina
2016-07-13 12:14       ` Mark Hounschell
2016-08-02  9:44         ` Jiri Kosina
2016-08-03 14:20           ` Mark Hounschell
2016-08-11 13:24             ` Jiri Kosina
2016-08-11 17:38               ` Mark Hounschell
2016-08-12  9:37                 ` Jiri Kosina
2016-08-12 11:59                   ` Mark Hounschell
2016-08-12 12:09                     ` Jiri Kosina
2016-08-23 17:01       ` Mark Hounschell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5783D1E0.4040503@compro.net \
    --to=markh@compro.net \
    --cc=jikos@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.