Re: dell_rbu: Select CONFIG_FW_LOADER_USER_HELPER explicitly

Takashi Iwai
2013-07-08T17:51:34Z

At Mon, 8 Jul 2013 09:49:33 -0700,
Greg KH wrote:
>
> On Mon, Jul 08, 2013 at 11:05:20AM +0200, Takashi Iwai wrote:
> > The reason is that dell_rbu driver requires it. Without the kconfig
> > option, this driver won't work at all. So, it's a right fix for
> > dell_rbu.
> >
> > AFAIK, the consensus in the kernel side is that this too long fw
> > loading time is basically a regression of user-space (udev or
> > whatever). There is no change in the kernel behavior. The problem
> > must exist even with the older kernels.
> >
> > But, looking at the development, we can't expect that udev will be
> > fixed soon, and this breakage persists already way too long. Maybe a
> > better solution is to kill the fallback to udev for normal f/w loading
> > (i.e. for distro kernels).
>
> I thought udev was already fixed for this issue, so why would a "modern"
> distro need to worry about this?

Hm, I expected Dave is using the udev "modern" enough. If it's about
an old udev behavior, we don't have to care so much...

> > The patch below is an untested quick hack. It adds a new Kconfig and
> > a new function request_firmware_via_user_helper(). Distro kernels may
> > set CONFIG_FW_LOADER_USER_HELPER_FALLBACK=n for avoiding 60 seconds
> > stall for non-existing firmware file access -- as distributions know
> > that the firmware files should be placed in the right path.
> >
> > Thoughts?
>
> There's no way we can just fix up the driver instead of doing this in
> the firmware core?

The problem is that this non-udev-hotplug firmware loading mechanism
was introduced exactly for this driver. Thus, we can't change the
driver (thus ABI) without breaking user-space.

Though, there are only two users of this interface. So, once when the
user-space side is fixed, we can easily fix the kernel side, too,
e.g. rewrite these drivers without abusing firmware interface.

Takashi