1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/mmc/host
Linus Torvalds 268325bda5 Random number generator updates for Linux 6.2-rc1.
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEq5lC5tSkz8NBJiCnSfxwEqXeA64FAmOU+U8ACgkQSfxwEqXe
 A67NnQ//Y5DltmvibyPd7r1TFT2gUYv+Rx3sUV9ZE1NYptd/SWhhcL8c5FZ70Fuw
 bSKCa1uiWjOxosjXT1kGrWq3de7q7oUpAPSOGxgxzoaNURIt58N/ajItCX/4Au8I
 RlGAScHy5e5t41/26a498kB6qJ441fBEqCYKQpPLINMBAhe8TQ+NVp0rlpUwNHFX
 WrUGg4oKWxdBIW3HkDirQjJWDkkAiklRTifQh/Al4b6QDbOnRUGGCeckNOhixsvS
 waHWTld+Td8jRrA4b82tUb2uVZ2/b8dEvj/A8CuTv4yC0lywoyMgBWmJAGOC+UmT
 ZVNdGW02Jc2T+Iap8ZdsEmeLHNqbli4+IcbY5xNlov+tHJ2oz41H9TZoYKbudlr6
 /ReAUPSn7i50PhbQlEruj3eg+M2gjOeh8OF8UKwwRK8PghvyWQ1ScW0l3kUhPIhI
 PdIG6j4+D2mJc1FIj2rTVB+Bg933x6S+qx4zDxGlNp62AARUFYf6EgyD6aXFQVuX
 RxcKb6cjRuFkzFiKc8zkqg5edZH+IJcPNuIBmABqTGBOxbZWURXzIQvK/iULqZa4
 CdGAFIs6FuOh8pFHLI3R4YoHBopbHup/xKDEeAO9KZGyeVIuOSERDxxo5f/ITzcq
 APvT77DFOEuyvanr8RMqqh0yUjzcddXqw9+ieufsAyDwjD9DTuE=
 =QRhK
 -----END PGP SIGNATURE-----

Merge tag 'random-6.2-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random

Pull random number generator updates from Jason Donenfeld:

 - Replace prandom_u32_max() and various open-coded variants of it,
   there is now a new family of functions that uses fast rejection
   sampling to choose properly uniformly random numbers within an
   interval:

       get_random_u32_below(ceil) - [0, ceil)
       get_random_u32_above(floor) - (floor, U32_MAX]
       get_random_u32_inclusive(floor, ceil) - [floor, ceil]

   Coccinelle was used to convert all current users of
   prandom_u32_max(), as well as many open-coded patterns, resulting in
   improvements throughout the tree.

   I'll have a "late" 6.1-rc1 pull for you that removes the now unused
   prandom_u32_max() function, just in case any other trees add a new
   use case of it that needs to converted. According to linux-next,
   there may be two trivial cases of prandom_u32_max() reintroductions
   that are fixable with a 's/.../.../'. So I'll have for you a final
   conversion patch doing that alongside the removal patch during the
   second week.

   This is a treewide change that touches many files throughout.

 - More consistent use of get_random_canary().

 - Updates to comments, documentation, tests, headers, and
   simplification in configuration.

 - The arch_get_random*_early() abstraction was only used by arm64 and
   wasn't entirely useful, so this has been replaced by code that works
   in all relevant contexts.

 - The kernel will use and manage random seeds in non-volatile EFI
   variables, refreshing a variable with a fresh seed when the RNG is
   initialized. The RNG GUID namespace is then hidden from efivarfs to
   prevent accidental leakage.

   These changes are split into random.c infrastructure code used in the
   EFI subsystem, in this pull request, and related support inside of
   EFISTUB, in Ard's EFI tree. These are co-dependent for full
   functionality, but the order of merging doesn't matter.

 - Part of the infrastructure added for the EFI support is also used for
   an improvement to the way vsprintf initializes its siphash key,
   replacing an sleep loop wart.

 - The hardware RNG framework now always calls its correct random.c
   input function, add_hwgenerator_randomness(), rather than sometimes
   going through helpers better suited for other cases.

 - The add_latent_entropy() function has long been called from the fork
   handler, but is a no-op when the latent entropy gcc plugin isn't
   used, which is fine for the purposes of latent entropy.

   But it was missing out on the cycle counter that was also being mixed
   in beside the latent entropy variable. So now, if the latent entropy
   gcc plugin isn't enabled, add_latent_entropy() will expand to a call
   to add_device_randomness(NULL, 0), which adds a cycle counter,
   without the absent latent entropy variable.

 - The RNG is now reseeded from a delayed worker, rather than on demand
   when used. Always running from a worker allows it to make use of the
   CPU RNG on platforms like S390x, whose instructions are too slow to
   do so from interrupts. It also has the effect of adding in new inputs
   more frequently with more regularity, amounting to a long term
   transcript of random values. Plus, it helps a bit with the upcoming
   vDSO implementation (which isn't yet ready for 6.2).

 - The jitter entropy algorithm now tries to execute on many different
   CPUs, round-robining, in hopes of hitting even more memory latencies
   and other unpredictable effects. It also will mix in a cycle counter
   when the entropy timer fires, in addition to being mixed in from the
   main loop, to account more explicitly for fluctuations in that timer
   firing. And the state it touches is now kept within the same cache
   line, so that it's assured that the different execution contexts will
   cause latencies.

* tag 'random-6.2-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random: (23 commits)
  random: include <linux/once.h> in the right header
  random: align entropy_timer_state to cache line
  random: mix in cycle counter when jitter timer fires
  random: spread out jitter callback to different CPUs
  random: remove extraneous period and add a missing one in comments
  efi: random: refresh non-volatile random seed when RNG is initialized
  vsprintf: initialize siphash key using notifier
  random: add back async readiness notifier
  random: reseed in delayed work rather than on-demand
  random: always mix cycle counter in add_latent_entropy()
  hw_random: use add_hwgenerator_randomness() for early entropy
  random: modernize documentation comment on get_random_bytes()
  random: adjust comment to account for removed function
  random: remove early archrandom abstraction
  random: use random.trust_{bootloader,cpu} command line option only
  stackprotector: actually use get_random_canary()
  stackprotector: move get_random_canary() into stackprotector.h
  treewide: use get_random_u32_inclusive() when possible
  treewide: use get_random_u32_{above,below}() instead of manual loop
  treewide: use get_random_u32_below() instead of deprecated function
  ...
2022-12-12 16:22:22 -08:00
..
alcor.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v5.4 2020-09-07 14:24:21 +02:00
atmel-mci.c mmc: atmel-mci: Simplify if(chan) and if(!chan) 2022-05-04 11:56:02 +02:00
au1xmmc.c mmc: au1xmmc: Fix an error handling path in au1xmmc_probe() 2022-09-14 11:53:47 +02:00
bcm2835.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
cavium-octeon.c mmc: cavium-octeon: Add of_node_put() when breaking out of loop 2022-07-21 18:02:55 +02:00
cavium-thunderx.c mmc: cavium-thunderx: Add of_node_put() when breaking out of loop 2022-07-21 18:03:08 +02:00
cavium.c mmc: cavium: Use '"%s...", __func__' to print function name 2021-03-30 11:42:06 +02:00
cavium.h
cb710-mmc.c mmc: cb710: Use new tasklet API 2021-02-15 10:43:23 +01:00
cb710-mmc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
cqhci-core.c mmc: cqhci: Capture eMMC and SD card errors 2022-07-12 12:25:35 +02:00
cqhci-crypto.c blk-crypto: rename blk_keyslot_manager to blk_crypto_profile 2021-10-21 10:49:32 -06:00
cqhci-crypto.h mmc: core: Store pointer to bio_crypt_ctx in mmc_request 2021-08-24 10:15:32 +02:00
cqhci.h mmc: cqhci: add cqhci_host_ops::program_key 2021-02-01 12:02:33 +01:00
davinci_mmc.c mmc: davinci_mmc: Handle error for clk_enable 2022-03-15 10:29:53 +01:00
dw_mmc-bluefield.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.19 2020-09-07 14:24:21 +02:00
dw_mmc-exynos.c mmc: dw_mmc: exynos: Obviously always return success in remove callback 2022-07-12 12:25:37 +02:00
dw_mmc-exynos.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-hi3798cv200.c mmc: dw_mmc: hi3789cv200: Obviously always return success in remove callback 2022-07-12 12:25:37 +02:00
dw_mmc-k3.c mmc: dw_mmc-k3: use the correct HiSilicon copyright 2021-03-31 14:47:53 +02:00
dw_mmc-pci.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-pltfm.c mmc: dw_mmc-pltfm: Remove unused <linux/clk.h> 2021-06-14 13:57:42 +02:00
dw_mmc-pltfm.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
dw_mmc-rockchip.c mmc: dw_mmc: rockchip: Obviously always return success in remove callback 2022-07-12 12:25:38 +02:00
dw_mmc.c treewide: use get_random_u32_below() instead of deprecated function 2022-11-18 02:15:15 +01:00
dw_mmc.h mmc: dw_mmc: Support setting f_min from host drivers 2022-03-07 12:56:38 +01:00
jz4740_mmc.c mmc: jz4740_mmc: Fix error check for dma_map_sg 2022-09-14 11:53:47 +02:00
Kconfig mmc: sdhci_am654: 'select', not 'depends' REGMAP_MMIO 2022-10-26 11:48:03 +02:00
litex_mmc.c mmc: Add driver for LiteX's LiteSDCard interface 2022-02-28 13:06:21 +01:00
Makefile mmc: Add driver for LiteX's LiteSDCard interface 2022-02-28 13:06:21 +01:00
meson-gx-mmc.c mmc: meson-gx: add SDIO interrupt support 2022-09-14 11:53:48 +02:00
meson-mx-sdhc-clkc.c mmc: meson-mx-sdhc: Drop unused MESON_SDHC_NUM_BUILTIN_CLKS macro 2021-12-20 11:19:01 +01:00
meson-mx-sdhc-mmc.c mmc: meson-mx-sdhc: Fix error check for dma_map_sg 2022-09-14 11:53:47 +02:00
meson-mx-sdhc.h mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host 2020-05-28 11:22:14 +02:00
meson-mx-sdio.c mmc: meson-mx-sdio: add IRQ check 2021-12-21 13:22:34 +01:00
mmc_hsq.c mmc: hsq: Fix data stomping during mmc recovery 2022-09-27 12:38:29 +02:00
mmc_hsq.h mmc: host: Introduce the request_atomic() for the host 2020-05-28 11:20:59 +02:00
mmc_spi.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
mmci.c mmc: mmci: Fix typo in comment 2022-07-12 12:25:37 +02:00
mmci.h mmc: mmci_sdmmc: Implement signal voltage callbacks 2020-03-24 14:35:40 +01:00
mmci_qcom_dml.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 2019-06-05 17:36:37 +02:00
mmci_stm32_sdmmc.c mmc: mmci: stm32: use a buffer for unaligned DMA requests 2022-04-26 14:05:18 +02:00
moxart-mmc.c mmc: moxart: fix 4-bit bus width and remove 8-bit bus width 2022-09-14 12:11:08 +02:00
mtk-sd.c mmc: mtk-sd: Fix missing clk_disable_unprepare in msdc_of_clock_parse() 2022-11-29 13:26:06 +01:00
mvsdio.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
mvsdio.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
mxcmmc.c mmc: mxcmmc: Use mmc_card_sdio macro 2022-07-13 12:46:07 +02:00
mxs-mmc.c mmc: mxs-mmc: disable regulator on error and in the remove function 2021-10-19 13:02:58 +02:00
of_mmc_spi.c mmc: mmc_spi: parse speed mode options 2022-04-26 14:05:19 +02:00
omap.c mmc: omap: Make it CCF clk API compatible 2022-04-26 14:05:19 +02:00
omap_hsmmc.c mmc: omap_hsmmc: Revert special init for wl1251 2021-12-14 21:35:24 +01:00
owl-mmc.c mmc: owl-mmc: Remove unnecessary error log 2021-04-12 13:52:47 +02:00
pxamci.c mmc: pxamci: Fix another error handling path in pxamci_probe() 2022-08-15 15:59:33 +02:00
pxamci.h
renesas_sdhi.h mmc: renesas_sdhi: newer SoCs don't need manual tap correction 2022-07-21 18:03:41 +02:00
renesas_sdhi_core.c mmc: renesas_sdhi: Fix rounding errors 2022-10-07 10:53:22 +02:00
renesas_sdhi_internal_dmac.c mmc: renesas_sdhi: newer SoCs don't need manual tap correction 2022-07-21 18:03:41 +02:00
renesas_sdhi_sys_dmac.c mmc: renesas_sdhi: Refactor renesas_sdhi_probe() 2021-08-24 10:15:35 +02:00
rtsx_pci_sdmmc.c Char/Misc and other driver updates for 5.18-rc1 2022-03-28 12:27:35 -07:00
rtsx_usb_sdmmc.c mmc: rtsx_usb_sdmmc: Remove the unneeded result variable 2022-09-20 14:18:15 +02:00
s3cmci.c mmc: s3cmci: move to use request_irq by IRQF_NO_AUTOEN flag 2021-06-14 13:57:34 +02:00
s3cmci.h MMC core: 2019-07-11 18:11:21 -07:00
sdhci-acpi.c ACPI / MMC: PM: Unify fixing up device power 2022-06-23 20:53:55 +02:00
sdhci-bcm-kona.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
sdhci-brcmstb.c mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:33:09 +01:00
sdhci-cadence.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.14 2020-09-07 14:24:21 +02:00
sdhci-cns3xxx.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-cqhci.h mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI 2022-11-07 13:28:47 +01:00
sdhci-dove.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check 2022-11-21 21:10:47 +01:00
sdhci-esdhc-mcf.c mmc: sdhci: replace mmc->parent with mmc_dev() for consistency 2021-03-30 11:42:07 +02:00
sdhci-esdhc.h mmc: sdhci-of-esdhc: make sure delay chain locked for HS400 2020-10-28 11:07:01 +01:00
sdhci-iproc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_30.RULE (part 2) 2022-06-10 14:51:35 +02:00
sdhci-milbeaut.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
sdhci-msm.c mmc: sdhci-msm: add compatible string check for sdm670 2022-09-27 14:00:38 +02:00
sdhci-of-arasan.c mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:28:47 +01:00
sdhci-of-aspeed-test.c mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro 2022-07-11 17:13:32 -06:00
sdhci-of-aspeed.c mmc: sdhci-of-aspeed: test: Use kunit_test_suite() macro 2022-07-11 17:13:32 -06:00
sdhci-of-at91.c mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R 2022-07-12 12:42:37 +02:00
sdhci-of-dwcmshc.c mmc: sdhci-of-dwcmshc: Re-enable support for the BlueField-3 SoC 2022-08-15 19:31:04 +02:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: Fixup use of of_find_compatible_node() 2022-07-12 12:25:39 +02:00
sdhci-of-hlwd.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-of-sparx5.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that are newer than 5.4 2020-09-07 14:24:21 +02:00
sdhci-omap.c mmc: sdhci-omap: Fix a lockdep warning for PM runtime init 2022-07-13 12:29:17 +02:00
sdhci-pci-arasan.c
sdhci-pci-core.c mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put() 2022-11-16 17:00:39 +01:00
sdhci-pci-dwc-mshc.c
sdhci-pci-gli.c mmc: sdhci-pci-gli: Fix build error unused-function 2022-07-12 12:25:39 +02:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce timeout 2022-11-16 13:58:55 +01:00
sdhci-pci.h mmc: sdhci-pci: Add PCI ID for Intel ADL 2021-12-14 21:35:25 +01:00
sdhci-pic32.c mmc: sdhci-pic32: Make pic32_sdhci_probe_platform() void 2020-11-16 11:59:30 +01:00
sdhci-pltfm.c mmc: Remove dev_err() usage after platform_get_irq() 2019-09-11 15:58:39 +02:00
sdhci-pltfm.h mmc: sdhci-pltfm: Fix linking err for sdhci-brcmstb 2021-02-01 11:13:09 +01:00
sdhci-pxav2.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-pxav3.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-s3c.c mmc: sdhci-s3c: drop unneeded MODULE_ALIAS 2021-10-12 10:21:18 +02:00
sdhci-spear.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci-sprd.c mmc: sdhci-sprd: Fix no reset data and command after voltage switch 2022-12-01 11:28:39 +01:00
sdhci-st.c mmc: sdhci-st: Obviously always return success in remove callback 2022-07-12 12:25:38 +02:00
sdhci-tegra.c mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:33:38 +01:00
sdhci-xenon-phy.c mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci-xenon.c Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning" 2022-04-04 12:17:46 +02:00
sdhci-xenon.h mmc: sdhci-xenon: switch to device_* API 2020-12-11 10:08:37 +01:00
sdhci.c mmc: sdhci: Fix voltage switch delay 2022-11-29 13:42:42 +01:00
sdhci.h mmc: sdhci: Fix voltage switch delay 2022-11-29 13:42:42 +01:00
sdhci_am654.c mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI 2022-11-07 13:33:43 +01:00
sdhci_f_sdh30.c mmc: Set PROBE_PREFER_ASYNCHRONOUS for drivers that existed in v4.4 2020-09-07 14:20:17 +02:00
sdhci_f_sdh30.h mmc: sdhci-milbeaut: add Milbeaut SD controller driver 2019-11-13 16:10:16 +01:00
sdricoh_cs.c mmc: sdricoh_cs: Respect the cmd->busy_timeout from the mmc core 2020-05-28 11:22:14 +02:00
sh_mmcif.c mmc: sh_mmcif: move platform_data header to proper location 2022-04-26 14:05:21 +02:00
sunxi-mmc.c Merge branch 'fixes' into next 2022-05-04 11:52:07 +02:00
tifm_sd.c mmc: switch from 'pci_' to 'dma_' API 2021-08-24 16:59:39 +02:00
tmio_mmc.c mmc: tmio: avoid glitches when resetting 2022-07-12 12:31:32 +02:00
tmio_mmc.h mmc: tmio: avoid glitches when resetting 2022-07-12 12:31:32 +02:00
tmio_mmc_core.c mmc: tmio: avoid glitches when resetting 2022-07-12 12:31:32 +02:00
toshsd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
toshsd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
uniphier-sd.c mmc: improve API to make clear hw_reset callback is for cards 2022-04-26 14:05:20 +02:00
usdhi6rol0.c mmc: usdhi6rol0: Implement card_busy function 2021-08-24 15:16:08 +02:00
ushc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
via-sdmmc.c mmc: switch from 'pci_' to 'dma_' API 2021-08-24 16:59:39 +02:00
vub300.c mmc: vub300: fix control-message timeouts 2021-10-26 17:31:58 +02:00
wbsd.c mmc: wbsd: Use new tasklet API 2021-02-08 13:00:31 +01:00
wbsd.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
wmt-sdmmc.c mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe() 2022-09-27 13:57:06 +02:00