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

Commit 4e3c8a1b authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull crypto fixes from Herbert Xu:
 "This push fixes an unaligned fault on x86-32 with aesni-intel and an
  RNG failure with atmel-rng (repeated bits)."

* git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
  crypto: aesni-intel - fix unaligned cbc decrypt for x86-32
  hwrng: atmel-rng - fix race condition leading to repeated bits
parents b0a4c6f2 7c8d5184
Loading
Loading
Loading
Loading
+4 −2
Original line number Original line Diff line number Diff line
@@ -2460,10 +2460,12 @@ ENTRY(aesni_cbc_dec)
	pxor IN3, STATE4
	pxor IN3, STATE4
	movaps IN4, IV
	movaps IN4, IV
#else
#else
	pxor (INP), STATE2
	pxor 0x10(INP), STATE3
	pxor IN1, STATE4
	pxor IN1, STATE4
	movaps IN2, IV
	movaps IN2, IV
	movups (INP), IN1
	pxor IN1, STATE2
	movups 0x10(INP), IN2
	pxor IN2, STATE3
#endif
#endif
	movups STATE1, (OUTP)
	movups STATE1, (OUTP)
	movups STATE2, 0x10(OUTP)
	movups STATE2, 0x10(OUTP)
+7 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,13 @@ static int atmel_trng_read(struct hwrng *rng, void *buf, size_t max,
	/* data ready? */
	/* data ready? */
	if (readl(trng->base + TRNG_ODATA) & 1) {
	if (readl(trng->base + TRNG_ODATA) & 1) {
		*data = readl(trng->base + TRNG_ODATA);
		*data = readl(trng->base + TRNG_ODATA);
		/*
		  ensure data ready is only set again AFTER the next data
		  word is ready in case it got set between checking ISR
		  and reading ODATA, so we don't risk re-reading the
		  same word
		*/
		readl(trng->base + TRNG_ISR);
		return 4;
		return 4;
	} else
	} else
		return 0;
		return 0;