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

Commit ed424bb3 authored by PrasannaKumar Muralidharan's avatar PrasannaKumar Muralidharan Committed by Herbert Xu
Browse files

hwrng: Make explicit that max >= 32 always



As hw_random core calls ->read with max > 32 or more, make it explicit.
Also remove checks involving 'max' being less than 8.

Signed-off-by: default avatarPrasannaKumar Muralidharan <prasannatsmkumar@gmail.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 8ff4c191
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -90,10 +90,6 @@ static int msm_rng_read(struct hwrng *hwrng, void *data, size_t max, bool wait)
	/* calculate max size bytes to transfer back to caller */
	maxsize = min_t(size_t, MAX_HW_FIFO_SIZE, max);

	/* no room for word data */
	if (maxsize < WORD_SZ)
		return 0;

	ret = clk_prepare_enable(rng->clk);
	if (ret)
		return ret;
+0 −3
Original line number Diff line number Diff line
@@ -62,9 +62,6 @@ static int pic32_rng_read(struct hwrng *rng, void *buf, size_t max,
	u32 t;
	unsigned int timeout = RNG_TIMEOUT;

	if (max < 8)
		return 0;

	do {
		t = readl(priv->base + RNGRCNT) & RCNT_MASK;
		if (t == 64) {
+2 −3
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@
static int pseries_rng_read(struct hwrng *rng, void *data, size_t max, bool wait)
{
	u64 buffer[PLPAR_HCALL_BUFSIZE];
	size_t size = max < 8 ? max : 8;
	int rc;

	rc = plpar_hcall(H_RANDOM, (unsigned long *)buffer);
@@ -36,10 +35,10 @@ static int pseries_rng_read(struct hwrng *rng, void *data, size_t max, bool wait
		pr_err_ratelimited("H_RANDOM call failed %d\n", rc);
		return -EIO;
	}
	memcpy(data, buffer, size);
	memcpy(data, buffer, 8);

	/* The hypervisor interface returns 64 bits */
	return size;
	return 8;
}

/**
+1 −2
Original line number Diff line number Diff line
@@ -30,8 +30,7 @@
 *			Must not be NULL.    *OBSOLETE*
 * @read:		New API. drivers can fill up to max bytes of data
 *			into the buffer. The buffer is aligned for any type
 *			and max is guaranteed to be >= to that alignment
 *			(either 4 or 8 depending on architecture).
 *			and max is a multiple of 4 and >= 32 bytes.
 * @priv:		Private data, for use by the RNG driver.
 * @quality:		Estimation of true entropy in RNG's bitstream
 *			(per mill).