crypto: ansi_prng - Use just a BH lock
[safe/jmp/linux-2.6] / crypto / ansi_cprng.c
index d80ed4c..ff00b58 100644 (file)
@@ -187,7 +187,6 @@ static int _get_more_prng_bytes(struct prng_context *ctx)
 /* Our exported functions */
 static int get_prng_bytes(char *buf, size_t nbytes, struct prng_context *ctx)
 {
-       unsigned long flags;
        unsigned char *ptr = buf;
        unsigned int byte_count = (unsigned int)nbytes;
        int err;
@@ -196,7 +195,7 @@ static int get_prng_bytes(char *buf, size_t nbytes, struct prng_context *ctx)
        if (nbytes < 0)
                return -EINVAL;
 
-       spin_lock_irqsave(&ctx->prng_lock, flags);
+       spin_lock_bh(&ctx->prng_lock);
 
        err = -EINVAL;
        if (ctx->flags & PRNG_NEED_RESET)
@@ -268,7 +267,7 @@ empty_rbuf:
                goto remainder;
 
 done:
-       spin_unlock_irqrestore(&ctx->prng_lock, flags);
+       spin_unlock_bh(&ctx->prng_lock);
        dbgprint(KERN_CRIT "returning %d from get_prng_bytes in context %p\n",
                err, ctx);
        return err;
@@ -287,7 +286,7 @@ static int reset_prng_context(struct prng_context *ctx,
        int rc = -EINVAL;
        unsigned char *prng_key;
 
-       spin_lock(&ctx->prng_lock);
+       spin_lock_bh(&ctx->prng_lock);
        ctx->flags |= PRNG_NEED_RESET;
 
        prng_key = (key != NULL) ? key : (unsigned char *)DEFAULT_PRNG_KEY;
@@ -332,7 +331,7 @@ static int reset_prng_context(struct prng_context *ctx,
        rc = 0;
        ctx->flags &= ~PRNG_NEED_RESET;
 out:
-       spin_unlock(&ctx->prng_lock);
+       spin_unlock_bh(&ctx->prng_lock);
 
        return rc;