• A
    virtio: rng: delay hwrng_register() till driver is ready · 5c062734
    Amit Shah 提交于
    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: NAmit Shah <amit.shah@redhat.com>
    Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
    5c062734
virtio-rng.c 4.8 KB