mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 09:44:18 +08:00
b43: Do not "select" HW_RANDOM
Auto-depend on HW_RANDOM, rather than "select"ing it. This way the user has the choice to enable or disable HWRNG support. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
a57e2e84b6
commit
616de35da9
@ -3,7 +3,6 @@ config B43
|
||||
depends on SSB_POSSIBLE && MAC80211 && WLAN_80211 && HAS_DMA
|
||||
select SSB
|
||||
select FW_LOADER
|
||||
select HW_RANDOM
|
||||
---help---
|
||||
b43 is a driver for the Broadcom 43xx series wireless devices.
|
||||
|
||||
@ -106,6 +105,13 @@ config B43_RFKILL
|
||||
depends on B43 && (RFKILL = y || RFKILL = B43) && RFKILL_INPUT && (INPUT_POLLDEV = y || INPUT_POLLDEV = B43)
|
||||
default y
|
||||
|
||||
# This config option automatically enables b43 HW-RNG support,
|
||||
# if the HW-RNG core is enabled.
|
||||
config B43_HWRNG
|
||||
bool
|
||||
depends on B43 && (HW_RANDOM = y || HW_RANDOM = B43)
|
||||
default y
|
||||
|
||||
config B43_DEBUG
|
||||
bool "Broadcom 43xx debugging"
|
||||
depends on B43
|
||||
|
@ -625,9 +625,11 @@ struct b43_wl {
|
||||
/* Stats about the wireless interface */
|
||||
struct ieee80211_low_level_stats ieee_stats;
|
||||
|
||||
#ifdef CONFIG_B43_HWRNG
|
||||
struct hwrng rng;
|
||||
u8 rng_initialized;
|
||||
bool rng_initialized;
|
||||
char rng_name[30 + 1];
|
||||
#endif /* CONFIG_B43_HWRNG */
|
||||
|
||||
/* The RF-kill button */
|
||||
struct b43_rfkill rfkill;
|
||||
|
@ -2980,6 +2980,7 @@ static void b43_security_init(struct b43_wldev *dev)
|
||||
b43_clear_keys(dev);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_B43_HWRNG
|
||||
static int b43_rng_read(struct hwrng *rng, u32 *data)
|
||||
{
|
||||
struct b43_wl *wl = (struct b43_wl *)rng->priv;
|
||||
@ -2995,17 +2996,21 @@ static int b43_rng_read(struct hwrng *rng, u32 *data)
|
||||
|
||||
return (sizeof(u16));
|
||||
}
|
||||
#endif /* CONFIG_B43_HWRNG */
|
||||
|
||||
static void b43_rng_exit(struct b43_wl *wl)
|
||||
{
|
||||
#ifdef CONFIG_B43_HWRNG
|
||||
if (wl->rng_initialized)
|
||||
hwrng_unregister(&wl->rng);
|
||||
#endif /* CONFIG_B43_HWRNG */
|
||||
}
|
||||
|
||||
static int b43_rng_init(struct b43_wl *wl)
|
||||
{
|
||||
int err;
|
||||
int err = 0;
|
||||
|
||||
#ifdef CONFIG_B43_HWRNG
|
||||
snprintf(wl->rng_name, ARRAY_SIZE(wl->rng_name),
|
||||
"%s_%s", KBUILD_MODNAME, wiphy_name(wl->hw->wiphy));
|
||||
wl->rng.name = wl->rng_name;
|
||||
@ -3018,6 +3023,7 @@ static int b43_rng_init(struct b43_wl *wl)
|
||||
b43err(wl, "Failed to register the random "
|
||||
"number generator (%d)\n", err);
|
||||
}
|
||||
#endif /* CONFIG_B43_HWRNG */
|
||||
|
||||
return err;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user