Re: [PATCH] um: Rewrite host RNG driver.

From: Dark
Date: Thu Aug 29 2019 - 13:10:13 EST


> Well, it does not block but passing -EAGAIN directly back is not nice.
> Or does the hw_random framework handle this?

The framework is passing -EAGAIN to userspace which isn't very nice at
all. Luckily, handling it is pretty trival so I went ahead and made an
updated patch to address this. (I'm unsure of how to submit an update
to my patch so I'll need a bit of guidence on this.)

> Maybe our -EAGAIN handling is buggy.
> That said I'm all for changing the driver to use the right framework
> but please make sure that we don't drop useful stuff like -EAGAIN handling.

Most of the old code was pulled from the framework anyway so it's very
unlikely that anything else would be dropped here.

On Thu, 29 Aug 2019 17:30:59 +0200 (CEST), Richard Weinberger <richard@xxxxxx> wrote:

> ----- UrsprÃngliche Mail -----
> > Von: "Dark" <dark@xxxxxxxxxxx>
> > An: "Richard Weinberger" <richard.weinberger@xxxxxxxxx>, "linux-kernel" <linux-kernel@xxxxxxxxxxxxxxx>
> > CC: "richard" <richard@xxxxxx>, "anton ivanov" <anton.ivanov@xxxxxxxxxxxxxxxxxx>, "linux-um"
> > <linux-um@xxxxxxxxxxxxxxxxxxx>
> > Gesendet: Donnerstag, 29. August 2019 16:36:28
> > Betreff: Re: [PATCH] um: Rewrite host RNG driver.
>
> > On Thu, 29 Aug 2019 15:26:24 +0200, Richard Weinberger
> > <richard.weinberger@xxxxxxxxx> wrote:
> >> So, you removed -EAGAIN handling, made everything synchronous,
> >> and changed the interface.t
> >> I'm not sure if this really a much better option.
> >
> > I should have been more clear here that I'm using the interfaces
> > provided by `drivers/char/hw_random/core.c` for consistency with the
> > other hardware RNG drivers and to avoid reimplementing stuff that's
> > already there.
>
> I got this, and this is a good thing!
>
> > It might be a bit hard to see in the diff, but I pass the file
> > descriptor to `os_set_fd_async()` to prevent it from blocking.
>
> Well, it does not block but passing -EAGAIN directly back is not nice.
> Or does the hw_random framework handle this?
>
> > For the -EAGAIN handling, I'm passing it onto the caller. Since you
> > mentioned it, It would be better to handle it in the driver itself
> > so I'll update the patch to address that.
> >
> >> Rewriting the driver in a modern manner is a good thing, but throwing the
> >> old one way with a little hand weaving just because of a unspecified issue
> >> is a little harsh.
> >> Can you at lest provide more infos what problem you're facing with the
> >> old driver?
> >
> > Most of it boiled down to it silently breaking if /dev/random on the
> > host were to block for any reason, and there was the userspace tool
> > requirement to properly make use of it. With that said, the interface
> > was also inconsistent with the other hardware RNG drivers which would
> > require a rewrite to address anyway.
>
> Maybe our -EAGAIN handling is buggy.
> That said I'm all for changing the driver to use the right framework
> but please make sure that we don't drop useful stuff like -EAGAIN handling.
>
> Thanks,
> //richard