From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "Kweh, Hock Leong" <hock.leong.kweh@intel.com>,
Ming Lei <ming.lei@canonical.com>,
Matt Fleming <matt@console-pimps.org>,
"Ong, Boon Leong" <boon.leong.ong@intel.com>,
LKML <linux-kernel@vger.kernel.org>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
Sam Protsenko <semen.protsenko@linaro.org>,
Peter Jones <pjones@redhat.com>,
Andy Lutomirski <luto@amacapital.net>,
Roy Franz <roy.franz@linaro.org>, Borislav Petkov <bp@alien8.de>
Subject: Re: [PATCH v4 2/2] efi: an sysfs interface for user to update efi firmware
Date: Mon, 20 Apr 2015 10:59:08 -0700 [thread overview]
Message-ID: <1429552748.2222.49.camel@HansenPartnership.com> (raw)
In-Reply-To: <20150417134924.GB19794@kroah.com>
On Fri, 2015-04-17 at 15:49 +0200, Greg Kroah-Hartman wrote:
> On Thu, Apr 16, 2015 at 09:42:31AM +0000, Kweh, Hock Leong wrote:
> > > -----Original Message-----
> > > From: Greg Kroah-Hartman [mailto:gregkh@linuxfoundation.org]
> > > Sent: Wednesday, April 15, 2015 9:19 PM
> > >
> > > On Wed, Apr 15, 2015 at 11:32:29AM +0000, Kweh, Hock Leong wrote:
> > > > > -----Original Message-----
> > > > > From: Greg Kroah-Hartman [mailto:gregkh@linuxfoundation.org]
> > > > > Sent: Tuesday, April 14, 2015 10:09 PM
> > > > >
> > > > > On Tue, Apr 14, 2015 at 05:44:56PM +0800, Kweh, Hock Leong wrote:
> > > > > > From: "Kweh, Hock Leong" <hock.leong.kweh@intel.com>
> > > > > >
> > > > > > Introducing a kernel module to expose capsule loader interface
> > > > > > for user to upload capsule binaries. This module leverage the
> > > > > > request_firmware_direct_full_path() to obtain the binary at a
> > > > > > specific path input by user.
> > > > > >
> > > > > > Example method to load the capsule binary:
> > > > > > echo -n "/path/to/capsule/binary" >
> > > > > /sys/devices/platform/efi_capsule_loader/capsule_loader
> > > > >
> > > > > Ick, why not just have the firmware file location present, and copy it
> > > > > to the sysfs file directly from userspace, instead of this two-step
> > > > > process?
> > > >
> > > > Err .... I may not catch your meaning correctly. Are you trying to say
> > > > that you would prefer the user to perform:
> > > >
> > > > cat file.bin > /sys/.../capsule_loader
> > > >
> > > > instead of
> > > >
> > > > echo -n "/path/to/binary" > /sys/..../capsule_laoder
> > >
> > > Yes. What's the namespace of your /path/to/binary/ and how do you know
> > > the kernel has the same one when it does the firmware load call? By
> > > just copying the data with 'cat', you don't have to worry about
> > > namespace issues at all.
> >
> > Hi Greg,
> >
> > Let me double confirm that I understand your concern correctly. You are
> > trying to tell that some others module may use a 'same' namespace to
> > request the firmware but never release it. Then when our module trying
> > to request the firmware by passing in the 'same' namespace, I will get the
> > previous data instead of the current binary data from the path I want.
>
> Yes.
>
> > Hmm .... I believe this concern also apply to all the current request_firmware
> > APIs right? And I believe the coincidence to have 'same' file name namespace
> > would be higher than full path namespace.
>
> Not really, the kernel namespace is what matters at that point in time.
>
> And maybe it does matter, I haven't thought through all of the issues.
> But passing a path from userspace, to the kernel, to have the kernel
> turn around again and use that path is full of nasty consequences at
> times due to namespaces, let's avoid all of that please.
So just to clarify this, namespaces are designed not to cause a problem
here, provided the operation is handled correctly (this is key; it is
easy do design operations which will screw up no end if done wrongly).
The file name to object translation is handled by the mount name space,
which is the operative one of the process doing the echo. For a
longstanding object (i.e. one which will exist beyond the call to the
system of the current process) you need either to convert to the actual
underlying object (usually a file descriptor) which has an existence
independent of the namespace (and perform all the necessary security
validations before returning control back to userspace, so they occur
within all the namespace constraints of the calling process), or store
sufficient information to redo whatever operation you need to within the
namespace (the former is by far preferred for long lived operations).
James
next prev parent reply other threads:[~2015-04-20 17:59 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-14 9:44 [PATCH v4 0/2] Enable capsule loader interface for efi firmware updating Kweh, Hock Leong
[not found] ` <1429004697-28320-1-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-04-14 9:44 ` [PATCH v4 1/2] firmware_loader: introduce new API - request_firmware_direct_full_path() Kweh, Hock Leong
2015-04-14 14:08 ` Greg Kroah-Hartman
2015-04-14 15:56 ` Andy Lutomirski
[not found] ` <CALCETrW_aXJ1iiXCa6aTE3r3J3EF_Njn5bb9=At_3ajCzPFSPg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-14 16:18 ` Borislav Petkov
[not found] ` <20150414161833.GE14069-fF5Pk5pvG8Y@public.gmane.org>
2015-04-15 10:14 ` Matt Fleming
[not found] ` <20150415101455.GB4804-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2015-04-15 10:18 ` Borislav Petkov
[not found] ` <20150415101805.GC2282-fF5Pk5pvG8Y@public.gmane.org>
2015-04-15 11:09 ` Matt Fleming
2015-04-15 13:15 ` Greg Kroah-Hartman
2015-04-15 15:53 ` Andy Lutomirski
[not found] ` <1429004697-28320-2-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-04-15 12:48 ` Matt Fleming
2015-04-14 9:44 ` [PATCH v4 2/2] efi: an sysfs interface for user to update efi firmware Kweh, Hock Leong
[not found] ` <1429004697-28320-3-git-send-email-hock.leong.kweh-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-04-14 14:09 ` Greg Kroah-Hartman
[not found] ` <20150414140914.GE5989-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-14 15:52 ` Andy Lutomirski
[not found] ` <CALCETrWeW8Gp9QFGCVhPmNo_Z+xsCJN7LYMPD6XNc92_dKMz3g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-15 13:20 ` Greg Kroah-Hartman
[not found] ` <20150415132000.GD21491-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-15 15:45 ` Andy Lutomirski
[not found] ` <CALCETrWUTjTLmwPZAwXrj06SwYaSX_7+XSTsVun2+HYC4wsqZQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-16 0:19 ` Roy Franz
[not found] ` <CAFECyb-bthi74VwkF8fpZg8ZpoyORmE5X+8dbRGG1uTP8RUm_A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-17 13:50 ` Greg KH
2015-04-15 11:32 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2B8D2AEA-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-15 13:19 ` Greg Kroah-Hartman
2015-04-16 9:42 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2B8D2E74-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-17 13:49 ` Greg Kroah-Hartman
2015-04-17 14:36 ` Matt Fleming
[not found] ` <20150417143640.GB3671-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>
2015-04-20 3:28 ` Kweh, Hock Leong
2015-04-20 14:43 ` Greg Kroah-Hartman
[not found] ` <20150420144323.GA7261-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-21 3:23 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2CC11869-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-21 7:56 ` Greg Kroah-Hartman
[not found] ` <20150421075620.GA11000-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-22 1:21 ` James Bottomley
[not found] ` <1429665679.2207.44.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 1:58 ` Andy Lutomirski
2015-04-22 2:20 ` James Bottomley
[not found] ` <1429669228.2207.46.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 3:24 ` Andy Lutomirski
[not found] ` <CALCETrVsmQxoJ6WxVnW03Q9Hq8oH=zuv662S6TJxFwb26d=erQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-22 4:51 ` James Bottomley
[not found] ` <1429678269.18798.9.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 16:50 ` Andy Lutomirski
[not found] ` <CALCETrU5u5nUJB4i0KRPZGvXgohW5ojxxOOv-_pR2OLmypvXyw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-22 17:34 ` James Bottomley
[not found] ` <1429724049.2195.44.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 17:45 ` Andy Lutomirski
[not found] ` <CALCETrX9GZmWnfkm-CwKW-2mPvRbNcRaY6tUY=8e0THsPBKMcA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-22 13:27 ` Peter Jones
2015-04-22 15:18 ` James Bottomley
[not found] ` <1429715913.2195.22.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 15:24 ` One Thousand Gnomes
2015-04-23 8:30 ` Kweh, Hock Leong
2015-04-23 14:09 ` James Bottomley
[not found] ` <1429798187.2170.3.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-24 2:14 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2CC12798-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-24 15:16 ` James Bottomley
[not found] ` <1429888575.2182.20.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-27 21:59 ` Andy Lutomirski
[not found] ` <CALCETrU2G10uGvdB6kVyfMPA=biuZwK7BAeqmKuY=jvN38K2wA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-27 22:35 ` James Bottomley
[not found] ` <1430174136.2314.49.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-27 22:40 ` Andy Lutomirski
[not found] ` <CALCETrXeh+y1XZrdDyhEmy+GK6z7-swZNPYGZybnqzppWAE+Wg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-27 22:51 ` James Bottomley
[not found] ` <1430175112.2314.56.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-29 11:23 ` Kweh, Hock Leong
2015-04-29 18:40 ` Andy Lutomirski
[not found] ` <CALCETrXBFBqwZ=A+zoC5Lj0Zr2_2hEkSBX0hrLZJRjyDWqjucA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-04-29 21:37 ` James Bottomley
2015-04-30 9:17 ` Kweh, Hock Leong
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2CC142E1-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-30 17:55 ` Andy Lutomirski
[not found] ` <F54AEECA5E2B9541821D670476DAE19C2CC13F37-j2khPEwRog0FyVwBAnZdSLfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2015-04-29 21:35 ` James Bottomley
2015-04-29 21:36 ` Andy Lutomirski
2015-04-29 21:39 ` James Bottomley
2015-04-29 21:42 ` Andy Lutomirski
2015-04-20 17:59 ` James Bottomley [this message]
[not found] ` <20150415131906.GC21491-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-22 15:35 ` James Bottomley
[not found] ` <1429716954.2195.28.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-22 15:46 ` Greg Kroah-Hartman
[not found] ` <20150422154620.GA32576-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2015-04-22 16:11 ` James Bottomley
[not found] ` <1429719077.2195.37.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-23 9:50 ` Greg Kroah-Hartman
2015-04-23 16:14 ` James Bottomley
[not found] ` <1429805658.6624.2.camel-d9PhHud1JfjCXq6kfMZ53/egYHeGw8Jk@public.gmane.org>
2015-04-23 20:38 ` Greg Kroah-Hartman
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=1429552748.2222.49.camel@HansenPartnership.com \
--to=james.bottomley@hansenpartnership.com \
--cc=boon.leong.ong@intel.com \
--cc=bp@alien8.de \
--cc=gregkh@linuxfoundation.org \
--cc=hock.leong.kweh@intel.com \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=matt@console-pimps.org \
--cc=ming.lei@canonical.com \
--cc=pjones@redhat.com \
--cc=roy.franz@linaro.org \
--cc=semen.protsenko@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).