Re: [PATCH 6/7] firmware_class: add "fd" input file

Greg Kroah-Hartman
2014-07-21T17:43:22Z

On Mon, Jul 21, 2014 at 10:27:33AM -0700, Kees Cook wrote:
> On Mon, Jul 21, 2014 at 9:36 AM, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> > On Mon, Jul 21, 2014 at 08:43:07AM -0700, Kees Cook wrote:
> >> On Mon, Jul 21, 2014 at 08:26:35AM -0700, Greg Kroah-Hartman wrote:
> >> > On Mon, Jul 21, 2014 at 08:08:16AM -0700, Kees Cook wrote:
> >> > > Perhaps it would be easier if I also sent the patch to udev's helper,
> >> > > so you could see how I propose handling the userspace change to using
> >> > > the new interface?
> >> >
> >> > As there is no more "udev firmware helper", I don't know what you would
> >> > be patching here. Firmware should always be loaded by the kernel
> >> > directly, udev isn't involved anyore at all.
> >> >
> >> > confused,
> >> >
> >> > greg k-h
> >>
> >> The kernel _can_ load directly (when the paths are configured correctly),
> >> but I'm not sure why you say udev isn't involved any more. It's been like
> >> this for years, and even the latest systemd shows the udev rule is still in
> >> place:
> >> http://cgit.freedesktop.org/systemd/systemd/tree/rules/50-firmware.rules
> >> and that the firmware loader is still in the source tree:
> >> http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-firmware.c
> >
> > Ah, I thought that I had seen patches to delete this code on the systemd
> > mailing list in the past, I didn't realize they hadn't been accepted
> > yet.
> >
> > But, with my current tree, in linux-next, it's really hard to select the
> > "external firmware loader" on purpose, as we want people to use the
> > in-kernel one if at all possible, and only fall back to the "legacy"
> > udev userspace loader if they are running on old userspace systems.
>
> Heh. Where non-legacy means running a userspace with unaccepted
> systemd patches? That's some serious time-travel. :)

Don't be so sure, I don't think that all distros enable the firmware
option of udev today, so it might be more "real" than you think.

> >> Here's the patch for the new interface...
> >
> > I'd really not like to add a new interface for this model when we are
> > trying to delete it entirely. Why not just rely on the in-kernel loader
> > instead for this new feature?
>
> Yeah, I see what you're saying. Obviously if the udev loader is going
> to vanish entirely, it makes no sense to add the "fd" interface. I'll
> keep the last 3 patches in the series in my tree for backporting
> purposes, but since the LSM hook is still useful for origin/content
> validation, I'd still like to see those go in. Though it sounds like I
> should do that through the security-next tree?
>
> applied:
> doc: fix minor typos in firmware_class README
> test: add firmware_class loader test
>
> hopefully for security-next:
> security: introduce kernel_fw_from_file hook
> firmware_class: perform new LSM checks
>
> I'll keep these external for backporting to "legacy" kernels/userspace:
> firmware_class: extract start loading logic
> firmware_class: add "fd" input file
> test: add "fd" firmware loading test to selftests
>
> Does that look okay?

That's fine with me, or I can take the "security-next" patches through
my tree, if that makes merging with the other firmware patches in my
tree easier (today it's just a line diff, which git can handle easily).

I'll go ack that patch now if James wants to pick it up.

thanks,

greg k-h