diff options
| author | Kalle Valo <kvalo@codeaurora.org> | 2017-06-28 22:10:48 +0300 |
|---|---|---|
| committer | Kalle Valo <kvalo@codeaurora.org> | 2017-06-28 22:10:48 +0300 |
| commit | fdcbe65d618af080ee23229f0137ffd37f2de36b (patch) | |
| tree | d94ef2e9b7eab0d1272df38dc0649d53163029fd /drivers/net/wireless/ath/ath9k/rng.c | |
| parent | 3334c28ec56cfaa7c25931711eb2bda4a92d0712 (diff) | |
| parent | 6788a3832c706c541d8a8227076eddde47446c8a (diff) | |
| download | linux-fdcbe65d618af080ee23229f0137ffd37f2de36b.tar.xz | |
Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
ath.git patches for 4.13. Major changes:
Only bugfixes or cleanups, no new features.
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/rng.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/rng.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/rng.c b/drivers/net/wireless/ath/ath9k/rng.c index 568b1c6c2b2b..f9d3d6eedd3c 100644 --- a/drivers/net/wireless/ath/ath9k/rng.c +++ b/drivers/net/wireless/ath/ath9k/rng.c @@ -24,6 +24,8 @@ #define ATH9K_RNG_BUF_SIZE 320 #define ATH9K_RNG_ENTROPY(x) (((x) * 8 * 10) >> 5) /* quality: 10/32 */ +static DECLARE_WAIT_QUEUE_HEAD(rng_queue); + static int ath9k_rng_data_read(struct ath_softc *sc, u32 *buf, u32 buf_size) { int i, j; @@ -85,7 +87,9 @@ static int ath9k_rng_kthread(void *data) ATH9K_RNG_BUF_SIZE); if (unlikely(!bytes_read)) { delay = ath9k_rng_delay_get(++fail_stats); - msleep_interruptible(delay); + wait_event_interruptible_timeout(rng_queue, + kthread_should_stop(), + msecs_to_jiffies(delay)); continue; } @@ -120,6 +124,8 @@ void ath9k_rng_start(struct ath_softc *sc) void ath9k_rng_stop(struct ath_softc *sc) { - if (sc->rng_task) + if (sc->rng_task) { kthread_stop(sc->rng_task); + sc->rng_task = NULL; + } } |
