From: Bastien Nocera <hadess@hadess.net>
To: Oliver Neukum <oneukum@suse.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Peter Hutterer <peter.hutterer@who-t.net>,
linux-usb@vger.kernel.org, Alan Stern <stern@rowland.harvard.edu>,
Benjamin Tissoires <benjamin.tissoires@redhat.com>
Subject: Re: [RFC v1] USB: core: add USBDEVFS_REVOKE ioctl
Date: Tue, 26 Apr 2022 12:07:32 +0200 [thread overview]
Message-ID: <d49aeb3cd8f67674eb87bf4bc93f617937649bc7.camel@hadess.net> (raw)
In-Reply-To: <fcb10f35-3064-851b-8f53-e88a3b51c930@suse.com>
On Tue, 2022-04-26 at 10:46 +0200, Oliver Neukum wrote:
>
>
> On 26.04.22 09:21, Greg Kroah-Hartman wrote:
> > Yes, but, it's not so simple. Many people have asked for revoke()
> > to be
> > added as a syscall like is in the BSDs, but the BSDs only allow
> > that for
> > a very small subset of file descriptor types, and doing it in a
> > generic
> > fashion seems very difficult (I tried a few years ago and gave up,
> > but
> > my knowledge of the vfs layer is minimal.)
> Well, then we should go for the minimalist approach and just
> add a hook to VFS. Multiple different ioctl()s are definitely a bad
> idea.
> An frevoke() looks much easier to do than one based on paths.
> If I understand the issue behind the proposal correctly the caller
> has opened the device.
Doesn't look like FreeBSD at least has an frevoke() syscall anymore, it
had an FREVOKE flag, which is now a define for the O_VERIFY option
which has quite different semantics:
https://www.freebsd.org/cgi/man.cgi?sektion=2&query=open
"O_VERIFY may be used to indicate to the kernel that the contents of
the file should be verified before allowing the open to proceed. The
details of what "verified" means is implementation specific. The run-
time linker (rtld) uses this flag to ensure shared objects have been
verified before operating on them."
The AIX frevoke() also has different semantics:
https://www.ibm.com/docs/en/aix/7.3?topic=f-frevoke-subroutine
"All accesses to the file are revoked, except through the file
descriptor specified by the FileDescriptor parameter to the frevoke
subroutine."
and:
"Currently the frevoke subroutine works only on terminal devices."
The point of USBDEVFS_REVOKE, and the other variants is to revoke
access to the device, not to the file descriptor itself.
If you're reticent to adding new ioctls, we could try and do that
exclusively through BPF. The only thing that didn't look like the BPF
codepath could do was wake up the fd so that fd could be poll()ed and
error out immediately.
next prev parent reply other threads:[~2022-04-26 10:28 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-25 13:23 [RFC v1] USB: core: add USBDEVFS_REVOKE ioctl Bastien Nocera
2022-04-25 13:28 ` Bastien Nocera
2022-04-25 13:49 ` Oliver Neukum
2022-04-25 14:25 ` Bastien Nocera
2022-04-25 14:45 ` Bastien Nocera
2022-04-25 14:10 ` Greg Kroah-Hartman
2022-04-25 14:28 ` Bastien Nocera
2022-04-25 15:00 ` Greg Kroah-Hartman
2022-04-25 15:17 ` Bastien Nocera
2022-04-25 15:45 ` Greg Kroah-Hartman
2022-04-26 2:27 ` Peter Hutterer
2022-04-26 7:14 ` Oliver Neukum
2022-04-26 7:21 ` Greg Kroah-Hartman
2022-04-26 8:46 ` Oliver Neukum
2022-04-26 10:07 ` Bastien Nocera [this message]
2022-04-26 10:30 ` Greg Kroah-Hartman
2022-04-26 10:37 ` Bastien Nocera
2022-04-26 11:10 ` Greg Kroah-Hartman
2022-04-28 10:28 ` Oliver Neukum
2022-04-28 11:21 ` Bastien Nocera
2022-04-26 10:07 ` Bastien Nocera
2022-04-26 10:07 ` Bastien Nocera
2022-04-25 16:14 ` Alan Stern
2022-04-25 17:09 ` Benjamin Tissoires
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=d49aeb3cd8f67674eb87bf4bc93f617937649bc7.camel@hadess.net \
--to=hadess@hadess.net \
--cc=benjamin.tissoires@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-usb@vger.kernel.org \
--cc=oneukum@suse.com \
--cc=peter.hutterer@who-t.net \
--cc=stern@rowland.harvard.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox