diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2007-05-31 04:10:22 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2007-05-31 04:10:22 -0400 |
commit | 189fe3174ce93f4c949325426c87c4d875a13424 (patch) | |
tree | b3ba6ff513bdb234a29f1b5a578fb3a995fd1aa8 /crypto/cryptd.c | |
parent | 7a74fc4925067c2102175baef73f9b07ab519b71 (diff) |
[CRYPTO] cryptd: Fix problem with cryptd and the freezer
Make sure that cryptd is marked as nonfreezable and does not hold up the
freezer.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/cryptd.c')
-rw-r--r-- | crypto/cryptd.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/cryptd.c b/crypto/cryptd.c index 3ff4e1f0f032..ac6dce2e7596 100644 --- a/crypto/cryptd.c +++ b/crypto/cryptd.c | |||
@@ -298,7 +298,7 @@ static inline int cryptd_create_thread(struct cryptd_state *state, | |||
298 | mutex_init(&state->mutex); | 298 | mutex_init(&state->mutex); |
299 | crypto_init_queue(&state->queue, CRYPTD_MAX_QLEN); | 299 | crypto_init_queue(&state->queue, CRYPTD_MAX_QLEN); |
300 | 300 | ||
301 | state->task = kthread_create(fn, state, name); | 301 | state->task = kthread_run(fn, state, name); |
302 | if (IS_ERR(state->task)) | 302 | if (IS_ERR(state->task)) |
303 | return PTR_ERR(state->task); | 303 | return PTR_ERR(state->task); |
304 | 304 | ||
@@ -316,6 +316,8 @@ static int cryptd_thread(void *data) | |||
316 | struct cryptd_state *state = data; | 316 | struct cryptd_state *state = data; |
317 | int stop; | 317 | int stop; |
318 | 318 | ||
319 | current->flags |= PF_NOFREEZE; | ||
320 | |||
319 | do { | 321 | do { |
320 | struct crypto_async_request *req, *backlog; | 322 | struct crypto_async_request *req, *backlog; |
321 | 323 | ||