Re: virtio:rng: Virtio RNG devices need to be re-registered after suspend/resume

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jim,

Minor comment below.

On 3 November 2017 at 15:27, Jim Quigley <Jim.Quigley@xxxxxxxxxx> wrote:
> The patch for
>
> commit: 5c06273401f2eb7b290cadbae18ee00f8f65e893
> Author: Amit Shah <amit.shah@xxxxxxxxxx>
> Date:   Sun Jul 27 07:34:01 2014 +0930
>
>     virtio: rng: delay hwrng_register() till driver is ready
>
> moved the call to hwrng_register() out of the probe routine into the scan
> routine. We need to call hwrng_register() after a suspend/restore cycle
> to re-register the device, but the scan function is not invoked for the
> restore. Add the call to hwrng_register() to virtio_restore().
>
> Reviewed-by: Liam Merwick <Liam.Merwick@xxxxxxxxxx>
> Signed-off-by: Jim Quigley <Jim.Quigley@xxxxxxxxxx>
> ---
>  drivers/char/hw_random/virtio-rng.c | 21 ++++++++++++++++++++-
>  1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c
> index 3fa2f8a..b89df66 100644
> --- a/drivers/char/hw_random/virtio-rng.c
> +++ b/drivers/char/hw_random/virtio-rng.c
> @@ -184,7 +184,26 @@ static int virtrng_freeze(struct virtio_device *vdev)
>
>  static int virtrng_restore(struct virtio_device *vdev)
>  {
> -       return probe_common(vdev);
> +       int err;
> +
> +       err = probe_common(vdev);
> +       if (!err) {
> +               struct virtrng_info *vi = vdev->priv;
> +
> +               /*
> +                * Set hwrng_removed to ensure that virtio_read()
> +                * does not block waiting for data before the
> +                * registration is complete.
> +                */
> +               vi->hwrng_removed = true;

Hwrng core does not call read method till hwrng_register has finished.
Is this really required? I think it has no effect.

> +               err = hwrng_register(&vi->hwrng);
> +               if (!err) {
> +                       vi->hwrng_register_done = true;
> +                       vi->hwrng_removed = false;
> +               }
> +       }
> +
> +       return err;
>  }
>  #endif
>
> --
> 1.8.3.1
>

I am fine with this change as is. Reviewed-by: PrasannaKumar
Muralidharan <prasannatsmkumar@xxxxxxxxx>

Regards,
PrasannaKumar



[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]

  Powered by Linux