Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5cc6e79 authored by Jim Quigley's avatar Jim Quigley Committed by Herbert Xu
Browse files

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



The patch for

commit: 5c062734
Author: Amit Shah <amit.shah@redhat.com>
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: default avatarLiam Merwick <Liam.Merwick@oracle.com>
Signed-off-by: default avatarJim Quigley <Jim.Quigley@oracle.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 747f6ec6
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -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;
		err = hwrng_register(&vi->hwrng);
		if (!err) {
			vi->hwrng_register_done = true;
			vi->hwrng_removed = false;
		}
	}

	return err;
}
#endif