From: Andy Lutomirski <luto@amacapital.net>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: "Kweh, Hock Leong" <hock.leong.kweh@intel.com>,
Peter Jones <pjones@redhat.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Matt Fleming <matt@codeblueprint.co.uk>,
Ming Lei <ming.lei@canonical.com>,
"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>,
Roy Franz <roy.franz@linaro.org>, Borislav Petkov <bp@alien8.de>,
Al Viro <viro@zeniv.linux.org.uk>,
Linux FS Devel <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH v4 2/2] efi: an sysfs interface for user to update efi firmware
Date: Mon, 27 Apr 2015 15:40:28 -0700 [thread overview]
Message-ID: <CALCETrXeh+y1XZrdDyhEmy+GK6z7-swZNPYGZybnqzppWAE+Wg@mail.gmail.com> (raw)
In-Reply-To: <1430174136.2314.49.camel@HansenPartnership.com>
On Mon, Apr 27, 2015 at 3:35 PM, James Bottomley
<James.Bottomley@hansenpartnership.com> wrote:
> On Mon, 2015-04-27 at 14:59 -0700, Andy Lutomirski wrote:
>> On Fri, Apr 24, 2015 at 8:16 AM, James Bottomley
>> <James.Bottomley@hansenpartnership.com> wrote:
>> > On Fri, 2015-04-24 at 02:14 +0000, Kweh, Hock Leong wrote:
>> >> > -----Original Message-----
>> >> > From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com]
>> >> > Sent: Thursday, April 23, 2015 10:10 PM
>> >> >
>> >> > On Thu, 2015-04-23 at 08:30 +0000, Kweh, Hock Leong wrote:
>> >> > > > -----Original Message-----
>> >> > > > From: James Bottomley
>> >> > [mailto:James.Bottomley@HansenPartnership.com]
>> >> > > > Sent: Wednesday, April 22, 2015 11:19 PM
>> >> > > >
>> >> > > >
>> >> > > > Yes, I think we've all agreed we can do it ... it's now a question of whether
>> >> > we
>> >> > > > can stomach the ick factor of actually initiating a transaction in close ... I'm
>> >> > still
>> >> > > > feeling queasy.
>> >> > >
>> >> > > The file "close" here can I understand that the file system will call the
>> >> > "release"
>> >> > > function at the file_operations struct?
>> >> > > http://lxr.free-electrons.com/source/include/linux/fs.h#L1538
>> >> > >
>> >> > > So, James you are meaning that we could initiating the update transaction
>> >> > > inside the f_ops->release() and return the error code if update failed in this
>> >> > > function?
>> >> >
>> >> > Well, that's what I was thinking. However the return value of ->release
>> >> > doesn't get propagated in sys_close (or indeed anywhere ... no idea why
>> >> > it returns an int) thanks to the task work additions, so we'd actually
>> >> > have to use the operation whose value is propagated in sys_close() which
>> >> > turns out to be flush.
>> >> >
>> >> > James
>> >> >
>> >>
>> >> Okay, I think I got you. Just to double check for in case: you are meaning
>> >> to implement it at f_ops->flush() instead of f_ops->release().
>> >
>> > Well, what I'm saying is that the only way to propagate an error to
>> > close is by returning one from the flush file_operation.
>> >
>> > Let's cc fsdevel to see if they have any brighter ideas.
>> >
>> > The problem is we need to update firmware (several megabytes of it) via
>> > standard system tools. We're thinking cat to a device. The problem is
>> > that we need an error code back once the update goes through (which it
>> > can't until we've fed all the firmware data into the system). To use
>> > standard unix tools, we have to trigger off the standard system calls
>> > cat uses and since write() will happen in chunks, the only way to commit
>> > the transaction is in close().
>> >
>> > We initially through of initiating the transaction in f_ops->release and
>> > returning the error code there, but that doesn't work because its value
>> > isn't actually propagated, so we're now thinking of initiating the
>> > transaction in f_ops->flush instead (this is a device, not a file, so it
>> > won't get any other flushers). Are there any other ways for us to
>> > propagate error on close?
>> >
>>
>> I think we may end up wanting to support both UpdateCapsule and
>> QueryCapsuleCapabilities, in which case this gets awkward. Maybe we
>> really should do a misc device + ioctl.
>
> To be honest, I hate ioctls ... especially the "have to use special
> tools" part.
>
> Would we ever want to support QueryCapsuleUpdate()? The return codes on
> error are the same as UpdateCapsule() but the query call does nothing on
> success (and the update call updates, obviously), so it seems a bit
> pointless if someone's gone to the trouble of getting a capsule ... they
> obviously want to apply it rather than know if it could be applied.
I can imagine a UI that would try to validate a transaction consisting
of several of these things, tell the user whether it'll work and
whether a reboot is needed, and then do it.
>
> Assuming we do, we could just use the same error on close mechanism, but
> use sysfs binary attributes ... or probably something new like a binary
> transaction attribute that does all the transaction on close magic for
> us.
Yeah, but now we have both input and output, so as ugly as ioctl is,
it's a pretty good match.
Sigh. This is all more complicated than it deserves to me.
--Andy
next prev parent reply other threads:[~2015-04-27 22:40 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
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
2015-04-14 16:18 ` Borislav Petkov
2015-04-15 10:14 ` Matt Fleming
2015-04-15 10:18 ` Borislav Petkov
2015-04-15 11:09 ` Matt Fleming
2015-04-15 13:15 ` Greg Kroah-Hartman
2015-04-15 15:53 ` Andy Lutomirski
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
2015-04-14 14:09 ` Greg Kroah-Hartman
2015-04-14 15:52 ` Andy Lutomirski
2015-04-15 13:20 ` Greg Kroah-Hartman
2015-04-15 15:45 ` Andy Lutomirski
2015-04-16 0:19 ` Roy Franz
2015-04-17 13:50 ` Greg KH
2015-04-15 11:32 ` Kweh, Hock Leong
2015-04-15 13:19 ` Greg Kroah-Hartman
2015-04-16 9:42 ` Kweh, Hock Leong
2015-04-17 13:49 ` Greg Kroah-Hartman
2015-04-17 14:36 ` Matt Fleming
2015-04-20 3:28 ` Kweh, Hock Leong
2015-04-20 14:43 ` Greg Kroah-Hartman
2015-04-21 3:23 ` Kweh, Hock Leong
2015-04-21 7:56 ` Greg Kroah-Hartman
2015-04-22 1:21 ` James Bottomley
2015-04-22 1:58 ` Andy Lutomirski
2015-04-22 2:20 ` James Bottomley
2015-04-22 3:24 ` Andy Lutomirski
2015-04-22 4:51 ` James Bottomley
2015-04-22 16:50 ` Andy Lutomirski
2015-04-22 17:34 ` James Bottomley
2015-04-22 17:45 ` Andy Lutomirski
2015-04-22 13:27 ` Peter Jones
2015-04-22 15:18 ` James Bottomley
2015-04-22 15:24 ` One Thousand Gnomes
2015-04-23 8:30 ` Kweh, Hock Leong
2015-04-23 14:09 ` James Bottomley
2015-04-24 2:14 ` Kweh, Hock Leong
2015-04-24 15:16 ` James Bottomley
2015-04-27 21:59 ` Andy Lutomirski
2015-04-27 22:35 ` James Bottomley
2015-04-27 22:40 ` Andy Lutomirski [this message]
2015-04-27 22:51 ` James Bottomley
2015-04-29 11:23 ` Kweh, Hock Leong
2015-04-29 18:40 ` Andy Lutomirski
2015-04-29 21:37 ` James Bottomley
2015-04-30 9:17 ` Kweh, Hock Leong
2015-04-30 17:55 ` Andy Lutomirski
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
2015-04-22 15:35 ` James Bottomley
2015-04-22 15:46 ` Greg Kroah-Hartman
2015-04-22 16:11 ` James Bottomley
2015-04-23 9:50 ` Greg Kroah-Hartman
2015-04-23 16:14 ` James Bottomley
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=CALCETrXeh+y1XZrdDyhEmy+GK6z7-swZNPYGZybnqzppWAE+Wg@mail.gmail.com \
--to=luto@amacapital.net \
--cc=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-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matt@codeblueprint.co.uk \
--cc=ming.lei@canonical.com \
--cc=pjones@redhat.com \
--cc=roy.franz@linaro.org \
--cc=semen.protsenko@linaro.org \
--cc=viro@zeniv.linux.org.uk \
/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).