Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc5bc3f1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull crypto fix from Herbert Xu:
 "This fixes a problem in the Crypto API that may cause spurious errors
  when signals are received by the process that made the orignal system
  call into the kernel"

* 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: api - Only abort operations on fatal signal
parents 9e17f907 3fc89adb
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -706,7 +706,7 @@ struct crypto_ablkcipher *crypto_alloc_ablkcipher(const char *alg_name,
err:
		if (err != -EAGAIN)
			break;
		if (signal_pending(current)) {
		if (fatal_signal_pending(current)) {
			err = -EINTR;
			break;
		}
+1 −1
Original line number Diff line number Diff line
@@ -345,7 +345,7 @@ static void crypto_wait_for_test(struct crypto_larval *larval)
		crypto_alg_tested(larval->alg.cra_driver_name, 0);
	}

	err = wait_for_completion_interruptible(&larval->completion);
	err = wait_for_completion_killable(&larval->completion);
	WARN_ON(err);

out:
+3 −3
Original line number Diff line number Diff line
@@ -172,7 +172,7 @@ static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)
	struct crypto_larval *larval = (void *)alg;
	long timeout;

	timeout = wait_for_completion_interruptible_timeout(
	timeout = wait_for_completion_killable_timeout(
		&larval->completion, 60 * HZ);

	alg = larval->adult;
@@ -445,7 +445,7 @@ struct crypto_tfm *crypto_alloc_base(const char *alg_name, u32 type, u32 mask)
err:
		if (err != -EAGAIN)
			break;
		if (signal_pending(current)) {
		if (fatal_signal_pending(current)) {
			err = -EINTR;
			break;
		}
@@ -562,7 +562,7 @@ void *crypto_alloc_tfm(const char *alg_name,
err:
		if (err != -EAGAIN)
			break;
		if (signal_pending(current)) {
		if (fatal_signal_pending(current)) {
			err = -EINTR;
			break;
		}
+1 −1
Original line number Diff line number Diff line
@@ -375,7 +375,7 @@ static struct crypto_alg *crypto_user_skcipher_alg(const char *name, u32 type,
		err = PTR_ERR(alg);
		if (err != -EAGAIN)
			break;
		if (signal_pending(current)) {
		if (fatal_signal_pending(current)) {
			err = -EINTR;
			break;
		}