• Amit Shah's avatar
    virtio: rng: delay hwrng_register() till driver is ready · 5590b04b
    Amit Shah authored
    commit 5c062734 upstream.
    
    Instead of calling hwrng_register() in the probe routing, call it in the
    scan routine.  This ensures that when hwrng_register() is successful,
    and it requests a few random bytes to seed the kernel's pool at init,
    we're ready to service that request.
    
    This will also enable us to remove the workaround added previously to
    check whether probe was completed, and only then ask for data from the
    host.  The revert follows in the next commit.
    
    There's a slight behaviour change here on unsuccessful hwrng_register().
    Previously, when hwrng_register() failed, the probe() routine would
    fail, and the vqs would be torn down, and driver would be marked not
    initialized.  Now, the vqs will remain initialized, driver would be
    marked initialized as well, but won't be available in the list of RNGs
    available to hwrng core.  To fix the failures, the procedure remains the
    same, i.e. unload and re-load the module, and hope things succeed the
    next time around.
    Signed-off-by: default avatarAmit Shah <amit.shah@redhat.com>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    5590b04b
virtio-rng.c 4.78 KB