[PATCH] random: pull add_hwgenerator_randomness() declaration into random.h

From: Jason A. Donenfeld
Date: Sun Feb 13 2022 - 10:26:06 EST


add_hwgenerator_randomness() is a function implemented and documented
inside of random.c. It is the way that hardware RNGs push data into it.
Therefore, it should be declared in random.h. Otherwise sparse complains
with:

random.c:1137:6: warning: symbol 'add_hwgenerator_randomness' was not declared. Should it be static?

The alternative would be to include hw_random.h into random.c, but that
wouldn't really be good for anything except slowing down compile time.

Cc: Dominik Brodowski <linux@xxxxxxxxxxxxxxxxxxxx>
Cc: Matt Mackall <mpm@xxxxxxxxxxx>
Cc: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Cc: linux-crypto@xxxxxxxxxxxxxxx
Cc: Kalle Valo <kvalo@xxxxxxxxxx>
Cc: ath9k-devel@xxxxxxxxxxxxxxxx
Cc: Theodore Ts'o <tytso@xxxxxxx>
Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
---
drivers/char/hw_random/core.c | 1 +
drivers/net/wireless/ath/ath9k/rng.c | 1 +
include/linux/hw_random.h | 2 --
include/linux/random.h | 2 ++
4 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index a3db27916256..cfb085de876b 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -15,6 +15,7 @@
#include <linux/err.h>
#include <linux/fs.h>
#include <linux/hw_random.h>
+#include <linux/random.h>
#include <linux/kernel.h>
#include <linux/kthread.h>
#include <linux/sched/signal.h>
diff --git a/drivers/net/wireless/ath/ath9k/rng.c b/drivers/net/wireless/ath/ath9k/rng.c
index f9d3d6eedd3c..aae2bd3cac69 100644
--- a/drivers/net/wireless/ath/ath9k/rng.c
+++ b/drivers/net/wireless/ath/ath9k/rng.c
@@ -15,6 +15,7 @@
*/

#include <linux/hw_random.h>
+#include <linux/random.h>
#include <linux/kthread.h>

#include "ath9k.h"
diff --git a/include/linux/hw_random.h b/include/linux/hw_random.h
index 1a9fc38f8938..aa1d4da03538 100644
--- a/include/linux/hw_random.h
+++ b/include/linux/hw_random.h
@@ -60,7 +60,5 @@ extern int devm_hwrng_register(struct device *dev, struct hwrng *rng);
/** Unregister a Hardware Random Number Generator driver. */
extern void hwrng_unregister(struct hwrng *rng);
extern void devm_hwrng_unregister(struct device *dve, struct hwrng *rng);
-/** Feed random bits into the pool. */
-extern void add_hwgenerator_randomness(const void *buffer, size_t count, size_t entropy);

#endif /* LINUX_HWRANDOM_H_ */
diff --git a/include/linux/random.h b/include/linux/random.h
index 37e1e8c43d7e..d7354de9351e 100644
--- a/include/linux/random.h
+++ b/include/linux/random.h
@@ -32,6 +32,8 @@ static inline void add_latent_entropy(void) {}
extern void add_input_randomness(unsigned int type, unsigned int code,
unsigned int value) __latent_entropy;
extern void add_interrupt_randomness(int irq) __latent_entropy;
+extern void add_hwgenerator_randomness(const void *buffer, size_t count,
+ size_t entropy);

extern void get_random_bytes(void *buf, size_t nbytes);
extern int wait_for_random_bytes(void);

base-commit: 1b057ea07bdc88c5ab77cb9a9bc46f8690492c81
prerequisite-patch-id: 722401baa02ea28022621588a48b701d116c0ad5
prerequisite-patch-id: 8da951eeda7c2b69ccf9de465f6e33b6a32d1b8a
prerequisite-patch-id: b252828d4fa0211224b7cac57b7a40a26847caf3
prerequisite-patch-id: ac9dc6b642ecfd8d42394b06d7757e4076da3a35
prerequisite-patch-id: aecaed912a18486ea6743ef94d86683d6ce35320
prerequisite-patch-id: 74e4aea70835f508339e5223f1b01266698f1173
prerequisite-patch-id: c315d7e54165666dae309e3ac6d5e666c6c97a33
prerequisite-patch-id: 9b8f505cf7f6b605ba5143c801e3487149481cde
prerequisite-patch-id: 7e48a52a3947c9d0d73a9867a7a3fb403e0e18ff
prerequisite-patch-id: 6c5c60bf502f7691087241c32c3a898135783ea0
prerequisite-patch-id: 80b04855c1ec5315d175cda682f528dab5db13ca
prerequisite-patch-id: 00ec3b71c3fe248d55b00f1b210f029a221f295a
prerequisite-patch-id: bac900c80e57d5fd5234b81a51359a76b378a9e9
prerequisite-patch-id: d2c04ce2d5667557c6d863fb26ad046a16b86f7b
prerequisite-patch-id: 4d98a7945c6dce30c3630f4668aa4b32ca53c971
prerequisite-patch-id: bd93293024b6ad54ffaf1ae5bee3d805961e310d
prerequisite-patch-id: e17118e66c1761f954fac49822231986f429e996
prerequisite-patch-id: dca680875ff2a505bc35d8999fa18832d6cc378e
prerequisite-patch-id: 798e5c78bbc4c0e1748a64496e4b139b6d5c85bf
prerequisite-patch-id: d41dada11f57459add7e28d4a8714929b9ed07f8
prerequisite-patch-id: a3159bc3b25f67ab0fb409dfc86373e3b6c3bc5e
prerequisite-patch-id: 6d069efe964e32e90ac052183360f3b8e78fd6bd
prerequisite-patch-id: 56253c1e4f608de542e26e5201f476a6e33c0166
prerequisite-patch-id: 4cdc3b96e517592d6fdf493baaa49e032f0788c9
prerequisite-patch-id: 4a7abc91a7dc1f6fdfb6a1bf310e0aeffee284ec
--
2.35.0