search for: hwrng_init

Displaying 20 results from an estimated 62 matches for "hwrng_init".

2014 Sep 18
2
[PATCH v2 3/6] hw_random: use reference counts on each struct hwrng.
...* > + * Hold rng_mutex here so we serialize in case they set_current_rng > + * on rng again immediately. > + */ > + mutex_lock(&rng_mutex); > + if (rng) > + kref_put(&rng->ref, cleanup_rng); > + mutex_unlock(&rng_mutex); > +} > + > static inline int hwrng_init(struct hwrng *rng) > { > if (rng->init) { > @@ -113,12 +167,6 @@ static inline int hwrng_init(struct hwrng *rng) > return 0; > } > > -static inline void hwrng_cleanup(struct hwrng *rng) > -{ > - if (rng && rng->cleanup) > - rng->cleanup(rng);...
2014 Sep 18
2
[PATCH v2 3/6] hw_random: use reference counts on each struct hwrng.
...* > + * Hold rng_mutex here so we serialize in case they set_current_rng > + * on rng again immediately. > + */ > + mutex_lock(&rng_mutex); > + if (rng) > + kref_put(&rng->ref, cleanup_rng); > + mutex_unlock(&rng_mutex); > +} > + > static inline int hwrng_init(struct hwrng *rng) > { > if (rng->init) { > @@ -113,12 +167,6 @@ static inline int hwrng_init(struct hwrng *rng) > return 0; > } > > -static inline void hwrng_cleanup(struct hwrng *rng) > -{ > - if (rng && rng->cleanup) > - rng->cleanup(rng);...
2014 Oct 20
0
[PATCH v2 3/6] hw_random: use reference counts on each struct hwrng.
Amos Kong <akong at redhat.com> writes: > We got a warning in boot stage when above set_current_rng() is executed, > it can be fixed by init rng->ref in hwrng_init(). > > > @@ -166,6 +169,8 @@ static inline int hwrng_init(struct hwrng *rng) > if (current_quality > 0 && !hwrng_fill) > start_khwrngd(); > > + kref_init(&rng->ref); > + > return 0; > } OK, I folded this fix o...
2014 Oct 20
0
[PATCH v2 3/6] hw_random: use reference counts on each struct hwrng.
Amos Kong <akong at redhat.com> writes: > We got a warning in boot stage when above set_current_rng() is executed, > it can be fixed by init rng->ref in hwrng_init(). > > > @@ -166,6 +169,8 @@ static inline int hwrng_init(struct hwrng *rng) > if (current_quality > 0 && !hwrng_fill) > start_khwrngd(); > > + kref_init(&rng->ref); > + > return 0; > } OK, I folded this fix o...
2014 Sep 18
9
[PATCH v2 0/6] fix hw_random stuck
When I hotunplug a busy virtio-rng device or try to access hwrng attributes in non-smp guest, it gets stuck. My original was pain, Rusty posted a real fix. This patchset fixed two issue in v1, and tested by my 6+ cases. | test 0: | hotunplug rng device from qemu monitor | | test 1: | guest) # dd if=/dev/hwrng of=/dev/null & | hotunplug rng device from qemu monitor | | test 2: |
2014 Sep 18
9
[PATCH v2 0/6] fix hw_random stuck
When I hotunplug a busy virtio-rng device or try to access hwrng attributes in non-smp guest, it gets stuck. My original was pain, Rusty posted a real fix. This patchset fixed two issue in v1, and tested by my 6+ cases. | test 0: | hotunplug rng device from qemu monitor | | test 1: | guest) # dd if=/dev/hwrng of=/dev/null & | hotunplug rng device from qemu monitor | | test 2: |
2014 Sep 18
0
[PATCH 2/5] hw_random: use reference counts on each struct hwrng.
...} + +static void put_rng(struct hwrng *rng) +{ + /* + * Hold rng_mutex here so we serialize in case they set_current_rng + * on rng again immediately. + */ + mutex_lock(&rng_mutex); + if (rng) + kref_put(&rng->ref, cleanup_rng); + mutex_unlock(&rng_mutex); +} + static inline int hwrng_init(struct hwrng *rng) { if (rng->init) { @@ -113,12 +167,6 @@ static inline int hwrng_init(struct hwrng *rng) return 0; } -static inline void hwrng_cleanup(struct hwrng *rng) -{ - if (rng && rng->cleanup) - rng->cleanup(rng); -} - static int rng_dev_open(struct inode *inode,...
2014 Sep 18
0
[PATCH v2 3/6] hw_random: use reference counts on each struct hwrng.
...} + +static void put_rng(struct hwrng *rng) +{ + /* + * Hold rng_mutex here so we serialize in case they set_current_rng + * on rng again immediately. + */ + mutex_lock(&rng_mutex); + if (rng) + kref_put(&rng->ref, cleanup_rng); + mutex_unlock(&rng_mutex); +} + static inline int hwrng_init(struct hwrng *rng) { if (rng->init) { @@ -113,12 +167,6 @@ static inline int hwrng_init(struct hwrng *rng) return 0; } -static inline void hwrng_cleanup(struct hwrng *rng) -{ - if (rng && rng->cleanup) - rng->cleanup(rng); -} - static int rng_dev_open(struct inode *inode,...
2014 Jul 09
1
[PATCH v2 2/2] virtio: rng: ensure reads happen after successful probe
...ys We have the opportunity to make the third option suck less if we can get this right. > virtio's probe() has to finish before communication with the host can > start. If a virtio-rng device is the only hwrng in the system (very > likely in a guest), it's almost guaranteed that hwrng_init() won't be > called after hwrng_register() completes (as it would have already been > called and the virtio-rng device will have become the current_rng). Well, I'm confused. virtio-rng has no init function defined. So hwrng_init() will just return zero. I think the basic question...
2014 Jul 09
1
[PATCH v2 2/2] virtio: rng: ensure reads happen after successful probe
...ys We have the opportunity to make the third option suck less if we can get this right. > virtio's probe() has to finish before communication with the host can > start. If a virtio-rng device is the only hwrng in the system (very > likely in a guest), it's almost guaranteed that hwrng_init() won't be > called after hwrng_register() completes (as it would have already been > called and the virtio-rng device will have become the current_rng). Well, I'm confused. virtio-rng has no init function defined. So hwrng_init() will just return zero. I think the basic question...
2014 Nov 03
1
[PATCH v4 3/6] hw_random: use reference counts on each struct hwrng.
...} + +static void put_rng(struct hwrng *rng) +{ + /* + * Hold rng_mutex here so we serialize in case they set_current_rng + * on rng again immediately. + */ + mutex_lock(&rng_mutex); + if (rng) + kref_put(&rng->ref, cleanup_rng); + mutex_unlock(&rng_mutex); +} + static inline int hwrng_init(struct hwrng *rng) { if (rng->init) { @@ -110,13 +170,9 @@ static inline int hwrng_init(struct hwrng *rng) if (current_quality > 0 && !hwrng_fill) start_khwrngd(); - return 0; -} + kref_init(&rng->ref); -static inline void hwrng_cleanup(struct hwrng *rng) -{ - if (r...
2014 Nov 03
1
[PATCH v4 3/6] hw_random: use reference counts on each struct hwrng.
...} + +static void put_rng(struct hwrng *rng) +{ + /* + * Hold rng_mutex here so we serialize in case they set_current_rng + * on rng again immediately. + */ + mutex_lock(&rng_mutex); + if (rng) + kref_put(&rng->ref, cleanup_rng); + mutex_unlock(&rng_mutex); +} + static inline int hwrng_init(struct hwrng *rng) { if (rng->init) { @@ -110,13 +170,9 @@ static inline int hwrng_init(struct hwrng *rng) if (current_quality > 0 && !hwrng_fill) start_khwrngd(); - return 0; -} + kref_init(&rng->ref); -static inline void hwrng_cleanup(struct hwrng *rng) -{ - if (r...
2014 Jul 15
2
[PATCH v3 0/2] hwrng, virtio-rng: init-time fixes
...t their randomness added to the system each > > time they're switched in, but devices that don't have the init > > callback don't contribute to system randomness more than once. The > > weirdness is resolved here by using the randomness each time > > hwrng_init() is attempted, irrespective of the existence of the > > device's ->init() callback. > > All applied to crypto. Thanks! Thanks, Herbert. I didn't mention it, but pls queue it up for 3.16. Amit
2014 Jul 15
2
[PATCH v3 0/2] hwrng, virtio-rng: init-time fixes
...t their randomness added to the system each > > time they're switched in, but devices that don't have the init > > callback don't contribute to system randomness more than once. The > > weirdness is resolved here by using the randomness each time > > hwrng_init() is attempted, irrespective of the existence of the > > device's ->init() callback. > > All applied to crypto. Thanks! Thanks, Herbert. I didn't mention it, but pls queue it up for 3.16. Amit
2014 Dec 06
7
[PATCH v5 0/6] fix hw_random stuck
When I hotunplug a busy virtio-rng device or try to access hwrng attributes in non-smp guest, it gets stuck. My hotplug tests: | test 0: | hotunplug rng device from qemu monitor | | test 1: | guest) # dd if=/dev/hwrng of=/dev/null & | hotunplug rng device from qemu monitor | | test 2: | guest) # dd if=/dev/random of=/dev/null & | hotunplug rng device from qemu monitor | | test
2014 Dec 06
7
[PATCH v5 0/6] fix hw_random stuck
When I hotunplug a busy virtio-rng device or try to access hwrng attributes in non-smp guest, it gets stuck. My hotplug tests: | test 0: | hotunplug rng device from qemu monitor | | test 1: | guest) # dd if=/dev/hwrng of=/dev/null & | hotunplug rng device from qemu monitor | | test 2: | guest) # dd if=/dev/random of=/dev/null & | hotunplug rng device from qemu monitor | | test
2014 Jul 02
3
[PATCH 1/2 v2] hwrng: Allow drivers to disable reading during probe
...this patch. You're basically saying the ->init() should be called unconditionally for each hwrng. If that's what driver authors assumed, that's not what is happening if there is more than one driver in the system. I think you should be changing the code a few lines up to make sure hwrng_init() is called once for each driver. > My version was more conservative while this one keeps the bug from the > current kernels. Huh? What do you mean by "keeps the bug from the current kernels." ? Besides, you're second patch isn't actually doing any ->init to get the h...
2014 Jul 02
3
[PATCH 1/2 v2] hwrng: Allow drivers to disable reading during probe
...this patch. You're basically saying the ->init() should be called unconditionally for each hwrng. If that's what driver authors assumed, that's not what is happening if there is more than one driver in the system. I think you should be changing the code a few lines up to make sure hwrng_init() is called once for each driver. > My version was more conservative while this one keeps the bug from the > current kernels. Huh? What do you mean by "keeps the bug from the current kernels." ? Besides, you're second patch isn't actually doing any ->init to get the h...
2014 Sep 18
6
[PATCH v2 2/3] hw_random: fix stuck in catting hwrng attributes
Amos Kong <akong at redhat.com> writes: > I started a QEMU (non-smp) guest with one virtio-rng device, and read > random data from /dev/hwrng by dd: > > # dd if=/dev/hwrng of=/dev/null & > > In the same time, if I check hwrng attributes from sysfs by cat: > > # cat /sys/class/misc/hw_random/rng_* > > The cat process always gets stuck with slow backend (5
2014 Sep 18
6
[PATCH v2 2/3] hw_random: fix stuck in catting hwrng attributes
Amos Kong <akong at redhat.com> writes: > I started a QEMU (non-smp) guest with one virtio-rng device, and read > random data from /dev/hwrng by dd: > > # dd if=/dev/hwrng of=/dev/null & > > In the same time, if I check hwrng attributes from sysfs by cat: > > # cat /sys/class/misc/hw_random/rng_* > > The cat process always gets stuck with slow backend (5