From: Michael S. Tsirkin Date: Thu, 25 Nov 2021 18:00:17 +0000 (-0500) Subject: hwrng: virtio - unregister device before reset X-Git-Tag: v6.6.17~8368^2~40 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2076207128948b766ef1fe344e0444fc9271a847;p=platform%2Fkernel%2Flinux-rpi.git hwrng: virtio - unregister device before reset unregister after reset is clearly wrong - device can be used while it's reset. There's an attempt to protect against that using hwrng_removed but it seems racy since access can be in progress when the flag is set. Just unregister, then reset seems simpler and cleaner. NB: we might be able to drop hwrng_removed in a follow-up patch. Signed-off-by: Laurent Vivier Signed-off-by: Michael S. Tsirkin --- diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c index b2bf78b..e856df7 100644 --- a/drivers/char/hw_random/virtio-rng.c +++ b/drivers/char/hw_random/virtio-rng.c @@ -179,9 +179,9 @@ static void remove_common(struct virtio_device *vdev) vi->data_avail = 0; vi->data_idx = 0; complete(&vi->have_data); - virtio_reset_device(vdev); if (vi->hwrng_register_done) hwrng_unregister(&vi->hwrng); + virtio_reset_device(vdev); vdev->config->del_vqs(vdev); ida_simple_remove(&rng_index_ida, vi->index); kfree(vi);