Commit 978030f0 authored by Jason A. Donenfeld's avatar Jason A. Donenfeld Committed by Michael Ellerman
Browse files

powerpc/powernv: rename remaining rng powernv_ functions to pnv_



The preferred nomenclature is pnv_, not powernv_, but rng.c used
powernv_ for some reason, which isn't consistent with the rest. A recent
commit added a few pnv_ functions to rng.c, making the file a bit of a
mishmash. This commit just replaces the rest of them.

Fixes: f3eac426 ("powerpc/powernv: wire up rng during setup_arch")
Signed-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
Tested-by: default avatarSachin Sant <sachinp@linux.ibm.com>
[mpe: Reorder after bug fix commits]
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220727143219.2684192-3-mpe@ellerman.id.au
parent 7ef3d06f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ static inline bool __must_check arch_get_random_seed_int(unsigned int *v)
#endif /* CONFIG_ARCH_RANDOM */

#ifdef CONFIG_PPC_POWERNV
int powernv_get_random_long(unsigned long *v);
int pnv_get_random_long(unsigned long *v);
#endif

#endif /* _ASM_POWERPC_ARCHRANDOM_H */
+17 −17
Original line number Diff line number Diff line
@@ -21,15 +21,15 @@

#define DARN_ERR 0xFFFFFFFFFFFFFFFFul

struct powernv_rng {
struct pnv_rng {
	void __iomem *regs;
	void __iomem *regs_real;
	unsigned long mask;
};

static DEFINE_PER_CPU(struct powernv_rng *, powernv_rng);
static DEFINE_PER_CPU(struct pnv_rng *, pnv_rng);

static unsigned long rng_whiten(struct powernv_rng *rng, unsigned long val)
static unsigned long rng_whiten(struct pnv_rng *rng, unsigned long val)
{
	unsigned long parity;

@@ -49,7 +49,7 @@ static unsigned long rng_whiten(struct powernv_rng *rng, unsigned long val)
	return val;
}

static int powernv_get_random_darn(unsigned long *v)
static int pnv_get_random_darn(unsigned long *v)
{
	unsigned long val;

@@ -73,31 +73,31 @@ static int __init initialise_darn(void)
		return -ENODEV;

	for (i = 0; i < 10; i++) {
		if (powernv_get_random_darn(&val)) {
			ppc_md.get_random_seed = powernv_get_random_darn;
		if (pnv_get_random_darn(&val)) {
			ppc_md.get_random_seed = pnv_get_random_darn;
			return 0;
		}
	}
	return -EIO;
}

int powernv_get_random_long(unsigned long *v)
int pnv_get_random_long(unsigned long *v)
{
	struct powernv_rng *rng;
	struct pnv_rng *rng;

	if (mfmsr() & MSR_DR) {
		rng = get_cpu_var(powernv_rng);
		rng = get_cpu_var(pnv_rng);
		*v = rng_whiten(rng, in_be64(rng->regs));
		put_cpu_var(rng);
	} else {
		rng = raw_cpu_read(powernv_rng);
		rng = raw_cpu_read(pnv_rng);
		*v = rng_whiten(rng, __raw_rm_readq(rng->regs_real));
	}
	return 1;
}
EXPORT_SYMBOL_GPL(powernv_get_random_long);
EXPORT_SYMBOL_GPL(pnv_get_random_long);

static __init void rng_init_per_cpu(struct powernv_rng *rng,
static __init void rng_init_per_cpu(struct pnv_rng *rng,
				    struct device_node *dn)
{
	int chip_id, cpu;
@@ -107,16 +107,16 @@ static __init void rng_init_per_cpu(struct powernv_rng *rng,
		pr_warn("No ibm,chip-id found for %pOF.\n", dn);

	for_each_possible_cpu(cpu) {
		if (per_cpu(powernv_rng, cpu) == NULL ||
		if (per_cpu(pnv_rng, cpu) == NULL ||
		    cpu_to_chip_id(cpu) == chip_id) {
			per_cpu(powernv_rng, cpu) = rng;
			per_cpu(pnv_rng, cpu) = rng;
		}
	}
}

static __init int rng_create(struct device_node *dn)
{
	struct powernv_rng *rng;
	struct pnv_rng *rng;
	struct resource res;
	unsigned long val;

@@ -142,7 +142,7 @@ static __init int rng_create(struct device_node *dn)

	rng_init_per_cpu(rng, dn);

	ppc_md.get_random_seed = powernv_get_random_long;
	ppc_md.get_random_seed = pnv_get_random_long;

	return 0;
}
@@ -190,7 +190,7 @@ static int __init pnv_rng_late_init(void)
	if (ppc_md.get_random_seed == pnv_get_random_long_early)
		pnv_get_random_long_early(&v);

	if (ppc_md.get_random_seed == powernv_get_random_long) {
	if (ppc_md.get_random_seed == pnv_get_random_long) {
		for_each_compatible_node(dn, NULL, "ibm,power-rng")
			of_platform_device_create(dn, NULL, NULL);
	}
+1 −1
Original line number Diff line number Diff line
@@ -23,7 +23,7 @@ static int powernv_rng_read(struct hwrng *rng, void *data, size_t max, bool wait
	buf = (unsigned long *)data;

	for (i = 0; i < len; i++)
		powernv_get_random_long(buf++);
		pnv_get_random_long(buf++);

	return len * sizeof(unsigned long);
}