diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-22 16:30:03 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-09-22 16:30:03 +0200 |
commit | d84a2b0d6fecbb6e29875dd9dc97cdcdaa15744a (patch) | |
tree | ea756d49395ac4a08d6cdff98d74e60384a322a6 /drivers/char/hw_random/virtio-rng.c | |
parent | Staging: rtl8192e: Fix __constant_htons to htons style warning (diff) | |
parent | Linux 3.17-rc6 (diff) | |
download | linux-d84a2b0d6fecbb6e29875dd9dc97cdcdaa15744a.tar.xz linux-d84a2b0d6fecbb6e29875dd9dc97cdcdaa15744a.zip |
Merge 3.17-rc6 into staging-next.
We want the fixes in there, and it resolves a merge issue with
drivers/iio/accel/bma180.c
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/char/hw_random/virtio-rng.c')
-rw-r--r-- | drivers/char/hw_random/virtio-rng.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/char/hw_random/virtio-rng.c b/drivers/char/hw_random/virtio-rng.c index 2e3139eda93b..132c9ccfdc62 100644 --- a/drivers/char/hw_random/virtio-rng.c +++ b/drivers/char/hw_random/virtio-rng.c @@ -36,6 +36,7 @@ struct virtrng_info { int index; bool busy; bool hwrng_register_done; + bool hwrng_removed; }; @@ -68,6 +69,9 @@ static int virtio_read(struct hwrng *rng, void *buf, size_t size, bool wait) int ret; struct virtrng_info *vi = (struct virtrng_info *)rng->priv; + if (vi->hwrng_removed) + return -ENODEV; + if (!vi->busy) { vi->busy = true; init_completion(&vi->have_data); @@ -137,6 +141,9 @@ static void remove_common(struct virtio_device *vdev) { struct virtrng_info *vi = vdev->priv; + vi->hwrng_removed = true; + vi->data_avail = 0; + complete(&vi->have_data); vdev->config->reset(vdev); vi->busy = false; if (vi->hwrng_register_done) |