Index: wireless-testing/drivers/net/wireless/b43/main.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/main.c +++ wireless-testing/drivers/net/wireless/b43/main.c @@ -3142,19 +3142,19 @@ static int b43_rng_read(struct hwrng *rn } #endif /* CONFIG_B43_HWRNG */ +#ifdef 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 */ } +#endif /* CONFIG_B43_HWRNG */ +#ifdef CONFIG_B43_HWRNG static int b43_rng_init(struct b43_wl *wl) { 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; @@ -3167,10 +3167,10 @@ static int b43_rng_init(struct b43_wl *w b43err(wl, "Failed to register the random " "number generator (%d)\n", err); } -#endif /* CONFIG_B43_HWRNG */ return err; } +#endif /* CONFIG_B43_HWRNG */ static void b43_tx_work(struct work_struct *work) { @@ -4288,8 +4288,10 @@ static void b43_wireless_core_exit(struc if (!dev || b43_status(dev) != B43_STAT_INITIALIZED) return; +#ifdef CONFIG_B43_HWRNG /* Unregister HW RNG driver */ b43_rng_exit(dev->wl); +#endif b43_set_status(dev, B43_STAT_UNINIT); @@ -4420,8 +4422,10 @@ static int b43_wireless_core_init(struct b43_set_status(dev, B43_STAT_INITIALIZED); +#ifdef CONFIG_B43_HWRNG /* Register HW RNG driver */ b43_rng_init(dev->wl); +#endif out: return err;