diff mbox series

[10/13] arch, mm: set high_memory in free_area_init()

Message ID 20250306185124.3147510-11-rppt@kernel.org (mailing list archive)
State New
Headers show
Series arch, mm: reduce code duplication in mem_init() | expand

Commit Message

Mike Rapoport March 6, 2025, 6:51 p.m. UTC
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>

high_memory defines upper bound on the directly mapped memory.
This bound is defined by the beginning of ZONE_HIGHMEM when a system has
high memory and by the end of memory otherwise.

All this is known to generic memory management initialization code that
can set high_memory while initializing core mm structures.

Remove per-architecture calculation of high_memory and add a generic
version to free_area_init().

Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
---
 arch/alpha/mm/init.c               |  1 -
 arch/arc/mm/init.c                 |  2 --
 arch/arm/mm/mmu.c                  |  2 --
 arch/arm/mm/nommu.c                |  1 -
 arch/arm64/mm/init.c               |  2 --
 arch/csky/mm/init.c                |  1 -
 arch/hexagon/mm/init.c             |  6 ------
 arch/loongarch/kernel/numa.c       |  1 -
 arch/loongarch/mm/init.c           |  2 --
 arch/m68k/mm/init.c                |  2 --
 arch/m68k/mm/mcfmmu.c              |  1 -
 arch/m68k/mm/motorola.c            |  2 --
 arch/m68k/sun3/config.c            |  1 -
 arch/microblaze/mm/init.c          |  2 --
 arch/mips/mm/init.c                |  2 --
 arch/nios2/mm/init.c               |  6 ------
 arch/openrisc/mm/init.c            |  2 --
 arch/parisc/mm/init.c              |  1 -
 arch/powerpc/kernel/setup-common.c |  1 -
 arch/riscv/mm/init.c               |  1 -
 arch/s390/mm/init.c                |  2 --
 arch/sh/mm/init.c                  |  7 -------
 arch/sparc/mm/init_32.c            |  1 -
 arch/sparc/mm/init_64.c            |  2 --
 arch/um/kernel/um_arch.c           |  1 -
 arch/x86/kernel/setup.c            |  2 --
 arch/x86/mm/init_32.c              |  3 ---
 arch/x86/mm/numa_32.c              |  3 ---
 arch/xtensa/mm/init.c              |  2 --
 mm/memory.c                        |  8 --------
 mm/mm_init.c                       | 23 +++++++++++++++++++++++
 mm/nommu.c                         |  2 --
 32 files changed, 23 insertions(+), 72 deletions(-)

Comments

Mark Brown March 11, 2025, 5:51 p.m. UTC | #1
On Thu, Mar 06, 2025 at 08:51:20PM +0200, Mike Rapoport wrote:
> From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> 
> high_memory defines upper bound on the directly mapped memory.
> This bound is defined by the beginning of ZONE_HIGHMEM when a system has
> high memory and by the end of memory otherwise.
> 
> All this is known to generic memory management initialization code that
> can set high_memory while initializing core mm structures.
> 
> Remove per-architecture calculation of high_memory and add a generic
> version to free_area_init().

This patch appears to be causing breakage on a number of 32 bit arm
platforms, including qemu's virt-2.11,gic-version=3.  Affected platforms
die on boot with no output, a bisect with qemu points at this commit and
those for physical platforms appear to be converging on the same place.

Bisect log:

# bad: [eea255893718268e1ab852fb52f70c613d109b99] Add linux-next specific files for 20250311
# good: [97654dc13f139ea726042711a4943f424c5d5b83] Merge branch 'for-linux-next-fixes' of https://gitlab.freedesktop.org/drm/misc/kernel.git
# good: [5cd09a324588b4554c9ed89cef34fa502a097d16] fs/proc/task_mmu: reduce scope of lazy mmu region
# good: [8a7e7a03e3c53cd9abbbf233899cc2e05b2c6ec0] ASoC: SOF: Intel: Add support for ACE3+ mic privacy
# good: [1ec3f1dc215d4b3d3679ecdc4a549d4e82b3a609] ASoC: dmic: add regulator support
# good: [69823334200029767de785d30acf74e4872a11d3] ASoC: SOF: Intel: mtl: Split up dsp_ops setup code
# good: [db91ad81a2545eb82aa47d0306bc3e1adb05e336] ASoC: dt-bindings: fsl,imx-asrc: Document audio graph port
# good: [a8fed0bddf8fa239fc71dc5c035d2e078c597369] ASoC: dt-bindings: add regulator support to dmic codec
# good: [0d2d276f53ea3ba1686619cde503d9748f58a834] ASoC: SOF: Intel: lnl/ptl: Only set dsp_ops which differs from MTL
# good: [8aeb7d2c3fc315e629d252cd601598a5af74bbb0] ASoC: SOF: Intel: Create ptl.c as placeholder for Panther Lake features
# good: [4a43c3241ec3465a501825ecaf051e5a1d85a60b] ASoC: SOF: Intel: ptl: Add support for mic privacy
# good: [80416226920c21e806f93bd0930d67557f41600f] ASoC: SOF: Intel: mtl: Stop exporting dsp_ops callback functions
# good: [d3321a20b5111a66f3e68798959a347acfccbd44] ASoC: dmic: add regulator support
# good: [eea84a7f0cdb693c261a7cf84bd4b3d81479c9a6] ASoC: SOF: ipc4: Add support for Intel HW managed mic privacy messaging
# good: [0978e8207b61ac6d51280e5d28ccfff75d653363] ASoC: SOF: Intel: hda-mlink: Add support for mic privacy in VS SHIM registers
# good: [a0db661e7d8e084e9cf3b9cdca7c6e4e66f2e849] ASoC: SOF: hda/shim: Add callbacks to handle mic privacy change for sdw
# good: [02a838b01b8e7c00e2efe78db06fff356a112dec] spi: dt-bindings: fsl-lpspi: Add i.MX94 support
# good: [5d5eceb9bb1050774dadc6919a258729f276fd00] ASoC: soc-dai: add snd_soc_dai_mute_is_ctrled_at_trigger()
# good: [3707fd9c383fc7ae19733a3ad2e5a82bf86370a0] spi: stm32: Remove unnecessary print function dev_err()
# good: [7a2ff0510c51462c0a979f5006d375a2b23d46e9] ASoC: soc-pcm: reuse dpcm_state_string()
# good: [269b844239149a9bbaba66518db99ebb06554a15] ASoC: dapm: Fix changes to DECLARE_ADAU17X1_DSP_MUX_CTRL
# good: [7dfc9bdde9fa20cf1ac5cbea97b0446622ca74c7] spi: stm32-ospi: Fix an IS_ERR() vs NULL bug in stm32_ospi_get_resources()
# good: [2c2eadd07e747059ccd65e68cd1d1b23ca96b072] ASoC: cs42l43: convert to SYSTEM_SLEEP_PM_OPS
# good: [c6141ba0110f98266106699aca071fed025c3d64] ASoC: Merge up fixes
# good: [a1462fb8b5dd1018e3477a6861822d75c6a59449] ASoC: Intel: boards: updates for 6.15
# good: [1ff07522690d2c2b67343099d2d046e88f71cddb] ASoC: Intel: soc-acpi-intel-lnl-match: add cs42l43 6x cs35l56 support
# good: [ffe450cb6bce16eb15f6bf90b85b7e5f9bfbc1e3] ASoC: Intel: soc-acpi-intel-ptl-match: add rt713_vb_l3_rt1320_l12 support
# good: [65e246d33dede0008f281d3d09b7695bef2d18eb] ASoC: sdw_utils: add mic and amp dais to 0xaaaa codec
# good: [c7a6a74f847923bb726029b85a3fd0e05e9fbb04] ASoC: Intel: soc-acpi-intel-ptl-match: add sdw multi function mockup codec
# good: [02467341e3577836648753a9e9a5c196f08187da] ASoC: Intel: soc-acpi-intel-ptl-match: add rt712_vb_l3_rt1320_l2 support
# good: [438405704eec45c06be9adc94eb5f94855412790] ASoC: Intel: soc-acpi-intel-lnl-match: add sdw multi function mockup codec
# good: [8b36447c9ae102539d82d6278971b23b20d87629] ASoC: Intel: adl: add 2xrt1316 audio configuration
# good: [e1a0657c6d943528ef58671594ca7e5b17db5394] ASoC: Intel: add multi-function SDW mockup codec match
# good: [7172d9ae29afd00c8ee9a8e3a4eba4cea5d5e403] ASoC: Intel: soc-acpi-intel-ptl-match: add cs42l43 6x cs35l56 support
# good: [b92bc4d6e21f1802a39975e3c7cc4f76f591d46f] ASoC: soc-pcm: merge soc_pcm_hw_update_format/subformat()
# good: [de22dc76e11d1291d4f50b73dbbaa158ba9d6acd] ASoC: doc: use SND_SOC_DAILINK_xxx() macro
# good: [6db63090272768785e6bb4a3afa16650c1e96c54] ASoC: Tidy up SOC_DOUBLE_* and SOC_SINGLE_* helpers
# good: [426aae69373fb149e5bbe1d5fa18299d38414f22] ASoC: fsl_audmix: support audio graph card for audmix
# good: [ee3cce59b1cecad7edd2022a443c8607faa9a4ad] ASoC: use inclusive language for
# good: [2cb6290a24f74f1c4a1b4cbd311ddd50a2c6046a] Tidy up ASoC VALUE control macros
# good: [d6c08418955a7d88bd5fe18787456264c4408e22] ASoC: samsung: GPIO descriptor conversion
# good: [24056de9976dfc33801d2574c1672d91f840277a] ASoC: codecs: Update device_id tables for Realtek
# good: [56e8bbb7a0d1b15a1af87fc7d6a73469f6ed4bd2] ASoC: audio-graph-card2-custom-sample: Separate Sample
# good: [0a22454ab2eca530702b2689858909b608953703] ASoC: samsung: tm2_wm5110: Drop unused include
# good: [5fac6c2785f95ddd73db33289dcd3cd5a68be226] Add STM32MP25 SPI NOR support
# good: [c095b7a27529d1d18b3b36a47f77a1419f0de939] ASoC: samsung: tobermory: Drop unused include
# good: [5c06f7f3d8374df1cec3b353306a4d1032a60f44] ASoC: samsung: lowland: Drop unused include
# good: [b19d340d5d08c5940ce612c2a1b5fe3a8a401f9d] ASoC: samsung: bells: Drop unused include
# good: [1d251a7adc5b720a71641c758a45b8a119971d80] ASoC: dt-bindings: everest,es8328: Mark ES8388 compatible with ES8328
# good: [8243a49145e59f19032b86b20d8906f05e31bdcc] ASoC: dt-bindings: everest,es8328: Require reg property
# good: [79c080c75cdd0a5ba38be039f6f9bb66ec53b0c4] ASoC: mediatek: mt6359: Fix DT parse error due to wrong child node name
# good: [da9146c19b1774926148ff271c4a3dc8d7891b18] ASoC: samsung: speyside: Convert to GPIO descriptor
# good: [c4b2d9643a06a5326a778c4d77d6fa60e0f3d6b1] ASoC: samsung: littlemill: Drop unused include
# good: [516493232a9b80dd4f4f6b078541cfad00973dbb] ASoC: wm9713: Use SOC_DOUBLE_EXT() helper macro
# good: [bf19467b8512f855bdfae59ae78d326b1f434443] ASoC: wm9712: Use SOC_SINGLE_EXT() helper macro
# good: [c951b20766f019a263b3547b07627be52fff87b4] ASoC: dapm: Use ASoC control macros where possible
# good: [7c5b07b497eab8eba75cf5da00cba493216dfc12] ASoC: atmel: tse850-pcm5142: Use SOC_SINGLE_EXT() helper macro
# good: [aecdaa84adafb086b5b2939898d781bd63d6fe2e] ASoC: tas2562: Use SOC_SINGLE_EXT_TLV() helper macro
# good: [b2b6913394488e031ee3d726f247b1c967057b40] ASoC: rt715: Remove duplicate SOC_DOUBLE_R_EXT() helper macro
# good: [1743dbb45b2cbe5500068900794a355a7e0dd853] ASoC: Tidy up SOC_DOUBLE_R_* helpers
# good: [98413be56faa1c12494f43e7f77746763fa41c4a] ASoC: wsa881x: Use SOC_SINGLE_EXT_TLV() helper macro
# good: [9e6e7e088cb78ce58ea442106b1f29cd7b6ff76e] ASoC: dapm: Add missing SOC_DAPM_DOUBLE_R_TLV() helper
# good: [9bb7d7452363fc470b76766b0a6356807e752795] ASoC: wcd938x: Use SOC_SINGLE_EXT_TLV() helper macro
# good: [17ec58ac3c08c5c43bbdf5b08020fa4188a3009a] ASoC: sma1307: Use SOC_SINGLE_EXT() helper macro
# good: [c01a74844b74c584160d5253f794bbd2af015bec] ASoC: Remove unused helper macro
# good: [e33d0569d7a1d041e37fb93094e70807856531c2] ASoC: mediatek: mt8183-mt6358-ts3a227-max98357: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [836d2924c05edb06e32eeede8bc12c4c96da0b3d] ASoC: intel: rt274: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [d8c808af2a9bf731f72fcb772cf22886c6d00d99] ASoC: mediatek: mt7986-dai-etdm: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [1af0148c3f871e55a6c4adf544af77a19fd17671] ASoC: codec: arizona: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [d2f277bf8aaed8c5307ab998b2de4346bed6e884] ASoC: intel: max98357a: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [db9912ce99c346c948c8fa774c0afc7d80d0ec20] ASoC: mediatek: mt8365-mt6357: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [f0bd6cb02505eca6adbe2e3ad3445a2420637c19] ASoC: codec: wm8978: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [0808c1ab8d1a1222194d830870f6b2b47220b1d7] ASoC: intel: ssm4567: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [6dd61011a67e35b8d5f3b94193ed66d0c19ba425] ASoC: codec: lochnagar-sc: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [7c0572197faf3b6d6b27271455e76ac8ba84c43f] ASoC: audio-graph-card2-custom-sample2.dtsi: Separate Sample DT
# good: [cfb91be8f9c8e54e517a9a539012309101abcac5] ASoC: codec: wm9081: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2c4a2b5d084b06e1a9fd2e85866b51f6118dd254] ASoC: samsung: littlemill: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [bcb896a69864aec4dd0251732a380bcdbeff8c51] ASoC: intel: max98927: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [cb1ebf6e20371208c49d59615bf4b46d92991fc4] ASoC: mediatek: mt8195-mt6359: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [c709a876b7de676d49b00b624b37d208e452cc7e] ASoC: mediatek: mt7986-wm8960: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [8410a099c88d1d720c9780b0ed716e544ea5a6d2] ASoC: rockchip: rk3399_gru_sound: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b15ea10972a1b4db23f7495003fccc6fe59e44bd] ASoC: tegra: tegra_wm8903: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [291b4eb984792fcc0bd3dec9ad9a69c3c6988951] ASoC: codec: wm8993: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [9ef6a439bc987753b7e5af5a926f05debe82bd1c] ASoC: samsung: lowland: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [f5617b647c8597e2437b3899f520fdf65e0f277a] ASoC: intel: rt298: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [6d41096d7df609992479d6a3a43bc60e21b8e165] ASoC: intel: rt5514: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [d542f5bfa3e4e16aac6141abdd44bb8a2a6f0761] ASoC: codec: wm8990: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b1f5886cca25a6957b5541031376e2c06c5bd621] ASoC: mediatek: mt2701-cs42448: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [79b8a705e26c08f8f09dd55f1dd56f2375973d2d] spi: stm32: Add OSPI driver
# good: [27f5e88fdc8ab577dbff389085ae6ad41e994ae7] ASoC: codec: src4xxx: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [1455b3857ca2d05966005f7172210f6bd00048c3] ASoC: samsung: tm2_wm5110: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [3d5f026256d985e8b81e7657a5430a9ff14e651c] ASoC: samsung: speyside: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [fd6bc2ba410bf7828dc2104bf78b51ccbb216c40] spi: dt-bindings: Introduce qcom,spi-qpic-snand
# good: [25baeacd9c6307830e2ed9f586f81fc23d4d1002] ASoC: codec: wm8904: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [862123a0a41647bd130a2d0edefc76a52dc8b8f8] ASoC: mediatek: mt2701-wm8960: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [69e35d9bfd6ba2837fe18bebf97ea747ceb110d5] ASoC: samsung: snow: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2d2223d742d968fec77ed056db9f158e7cb3ca94] ASoC: codec: wm8940: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [edca7ad57c50483ec81ab5b74ff1d71dca62e5cb] ASoC: rockchip: rockchip_max98090: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [06d07a4f5b98c71c696fa8f8718050b656ab99ba] ASoC: samsung: odroid: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [697c58941c0a0d1a5ea3f323cf0231018d3ec4b3] ASoC: samsung: aries_wm8994: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [294a60e5e9830045c161181286d44ce669f88833] ASoC: fsl_audmix: register card device depends on 'dais' property
# good: [bed97e35786a7d0141d1ecaaace03c46b5435d75] dt-bindings: spi: Add STM32 OSPI controller
# good: [ccf2a77a5d1504ca95c1ae5f37ed184e62dcd2f2] ASoC: intel: rt286: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [0d4291fa3a8945d97d26a6bac8a4068f116f2885] ASoC: codec: wm8991: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [3f97e52562dd1ad041f63c910a746eab695f40c1] ASoC: samsung: arndale: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [c8c1ab2c5cb797fe455aa18b4ab7bf39897627f6] regulator: pca9450: Handle hardware with fixed SD_VSEL for LDO5
# good: [99239dc5147ea4678e871e5c9d068a36f154558b] ASoC: rockchip: rk3288_hdmi_analog: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [38cc5b0bed6c57367dca3725d01857fa0876899a] ASoC: mediatek: mt8186-mt6366: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [feb849404a8b677aa6760d1539acf597e4574337] ASoC: SOF: Intel: hda-dai: Remove unnecessary bool conversion
# good: [522f5021cfb5a74e9b7aa3cbf365471f7a564c0a] ASoC: mediatek: mt8173-rt5650-rt5514: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [68084db5e7a5eb1e4901e2158565cfc59873756d] ASoC: codec: wm8974: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2725c018785d52286dd5b4ff7e087d2ff455a1a8] ASoC: codec: wm8988: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [35492f84fbd6d790ad7f93bffaaa6823890c103a] ASoC: codec: wm8994: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [eeb25b3ca1ef57d57906295d829febbd30cf4d8d] ASoC: mediatek: mt8173-rt5650: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [521c04c6e32ac110d942fa0e11bea4b91cc3241d] ASoC: ux500: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [597acf1a04bede55e3ad8a7922bba286c11112d3] ASoC: dt-bindings: fsl,audmix: make 'dais' property to be optional
# good: [93b1fefd8b1a004c6c8f8c92085e7bfb694dfe98] ASoC: codec: wm8983: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [abcb9a1fd89144536f3ef604f700e94424867366] ASoC: dt-bindings: fsl,sai: Document audio graph port
# good: [b73c2719c951868efc15181269a3caeb99157f29] ASoC: mediatek: mt8173-rt5650-rt5676: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [29664312a75e47f989ad32e43682746d8681a02b] ASoC: samsung: tobermory: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [a02c42d41af7d66db71ca43c52531c3253ebe35e] ASoC: codecs: wsa883x: Implement temperature reading and hwmon
# good: [9c914ef3b876a6f6c0059b4f4323fc1b76fa05e4] ASoC: codec: wm9713: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [c6472392301fc15a09d5435f1f89421270aed81c] ASoC: codec: wm8962: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [7370a8fe5bd211042610ec200dcc83de5ccc50cd] ASoC: rockchip: rockchip_rt5645: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [d4ee06219f2fffb71e2a23fc5060fdd3c7bb2cf7] ASoC: mediatek: mt8192-mt6359-rt1015-rt5682: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [cc49a35ab19565c5eaef070755b6fba235f9d05a] ASoC: codec: wm8996: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [74da545ec6a8b41de96b4c350bb59dfe45c0d822] ASoC: codec: madera: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [04ea3e0d2e10642f0a0199081e9aa8fd5e1bbea6] ASoC: tegra: tegra_asoc_machine: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [7d73a1beaa9428ed4da7786725fcb1a20fd371ab] ASoC: audio-graph-card2-custom-sample.dtsi: remove original sample
# good: [541e0b4947a92f4bf1d60ef7e55f0a254d9c41a0] ASoC: codec: wm8960: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [9002421ebb1409e2f47062722aad598b561cf9eb] ASoC: mediatek: mt8365-dai-i2s: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [5fee78e517ce0765def9387659fc56a1d5532c60] ASoC: dt-bindings: fsl,audmix: Document audio graph port
# good: [7304d1909080ef0c9da703500a97f46c98393fcd] spi: spi-qpic: add driver for QCOM SPI NAND flash Interface
# good: [0526b0b88c3092e38ba2d05f480b66bd5a1e1004] ASoC: mediatek: mt8365-dai-pcm: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [4586b056956995754e95456312b2a9ce36c8de21] ASoC: meson: meson-card-utils: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [6575dd53217ee5686d48a35f48415b113518d2a9] ASoC: codec: sgtl5000: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [c80956630fa077646f971ff5d3e9452339742def] ASoC: codec: twl4030: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [22e5c40fda71d0b6cdf83af9418403808d5d06bd] ASoC: audio-graph-card2-custom-sample1.dtsi: Separate Sample DT
# good: [4994da5c7fea1ede9b71ae66e3b906ea56b9a929] ASoC: intel: nau8825: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [7f3ed7ea52f21d5b8ecc01a17fb8f7209d337cbe] ASoC: codec: wm8985: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b99c850bd41e8f6f142bb24c3c2485043b552621] ASoC: codec: wm8961: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [cc8e22b6b1622f44654a9ce70c1285c15c1b8414] ASoC: samsung: smdk_wm8994pcm: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [0f68f56ab7be101fc949177774107769e63f13e9] ASoC: soc-dai: remove SND_SOC_DAIFMT_CB{MS}_CF{MS}
# good: [5dc6b4a351de9804932c4475a2c73c22c0b59369] ASoC: samsung: bells: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [e15abfa60107f97fd8297faad8cc3dc4eae0b5cc] ASoC: intel: da7219: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [22bbcab0a2a100827a26833b7cab16ae8b1a3f9e] ASoC: samsung: midas_wm1811: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [fb44bd4902cd5df526ad432015edcfaf163999e2] ASoC: codec: wm8955: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [6cc4d2c11537d66e9d4a7356a576f1bea6f4009f] ASoC: meson: t9015: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [795aad6b179de4c3f68b18132bd183931d09c462] ASoC: samsung: smdk_wm8994: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [711035c043b3a5116860b3a25d808572f70e1dc1] ASoC: mediatek: mt8183-da7219-max98357: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [ed86f7b7e5f676c24ba0ddd86de6614a4b69a9e4] ASoC: codec: wm8971: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [c417a7cf976eb8ecd8ebca439ec0cb0fe9ddc7ec] ASoC: codec: wm8995: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [47c59833c42a99bd27826f4f369bf4bb433c7ff9] ASoC: mediatek: mt8173-max98090: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [1c418cf146380031b13b6fde02f944830e5b9155] ASoC: codecs: rt5514: Fix definition of device_id tables
# good: [ad3993c449637fcec1e05bd2b63c24d34cb82243] ASoC: codec: wm8804: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [e2bcc61a4481c3de4747014895cef45d701956bf] ASoC: codec: wm8523: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [9b9cbc6b4fa312d963f4373e88b6e27106f2051a] ASoC: codec: wm8776: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [8f5ae83953335d9c4c8d1cb698b87cea1ac8aeca] ASoC: codec: cs42l73: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [9aa85f433bb1f51b599278b29b3d6224ca5147cf] ASoC: codecs: rt5670: Fix definition of device_id tables
# good: [48d5e50e4fe78bf9cc5b4eca72798d4507da62fb] ASoC: ti: ams-delta: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [dc946ef548aeeea258b040087b88c9b7fae5cb6d] ASoC: codec: cs43130: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [e5f0c2ad987b494ab94bcb1331667d189249f234] ASoC: codec: da732x: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [a06ef7754b8e6f45d78c0015c3edb2117945adfb] ASoC: codecs: rt5668: Fix definition of device_id tables
# good: [a212edb16ca0698c488c6adfa6854224666c8cc1] ASoC: codec: rt286: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [f8ca280bf5c2a3fb08890bdd212a3f3c00589f87] ASoC: qcom: sc7280: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [952b334dcfcf641a6290b876bdc226c23772287e] ASoC: codec: cs42l42: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [bb0b8a07192d86b291c5b13fb64ef984930f8ea6] ASoC: codec: wm8737: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [90fd7bb1af1733685f0aece12dd7264d4ef68422] ASoC: codec: cs42xx8: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [bc17eaf1b925595fb9f945ced5d70fe82ce11e78] ASoC: ti: davinci-evm: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [4869417f4a2b010e9ee00f611265f551a47e4f1a] ASoC: codec: rt5668: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [0c57e55719681412e87db7bb81b8255b43d6162f] ASoC: codec: cs530x: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [74f6e045d879414ae4c352dc7f4e8d438ea9d55d] ASoC: mxs: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [4d34ea6709894243d55ae6a6b63834851f9c5d6f] ASoC: codecs: rt5660: Fix definition of device_id tables
# good: [1fca457c22a277ba47ae1bdd2a09d42926a5beed] ASoC: codec: nau8822: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [668db717850296122fa0e2aff471cd20a722e0c5] ASoC: codec: rt1308: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [0b74ed5533c87db1abe3967e3a370bc3046892c7] ASoC: codec: rt5665: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [d17b39f6d3e635b039314726fbc66dcef286ed79] ASoC: codec: wm8770: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [7f15da9a55d3ba9f8c3af545246a4588102a38db] ASoC: codecs: rt286: Update definition of device_id tables
# good: [a018b6601c47e7d989f1fe5c175325f85dceb264] ASoC: codec: wm8741: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [9261d67d8bd2d9e787ceee8ff593f105bb3f5176] ASoC: codec: rt1305: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [fad200733e5026b103ec2504ad3dfc2843216cc8] ASoC: codec: cs42l51: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [85188e3bd7cb4141181f24a59f9057c38ffa37bf] ASoC: codecs: rt5651: Fix definition of device_id tables
# good: [e9d9a43e3f00b9313013b78d915a1f97dd215bf5] ASoC: codecs: rt5663: Fix definition of device_id tables
# good: [dfdc0debf1b82354e301843f8cbd16eaf05a01c6] ASoC: ti: osk5912: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [67f2243f2b1f1936c4dc22897289f5815a0e224a] ASoC: codec: rt5660: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [0ad3a7d311f0e93f2e838b4e47a7da57c501d737] ASoC: codec: rt5663: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b9dde447dd27f1b3ca21e07da1d885fd342cfa62] ASoC: codec: cs42l56: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [e9ab4b38205a34fffe537b4db721458b5d07066e] ASoC: codec: cs4271: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [c974655b0c7f82a760bd22d9ef9db281e765a9a2] ASoC: codec: cs4265: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [8450fa6b16e2f46f5b880e0b80d55ab9fc4524ca] ASoC: Documentation: Codec to Codec: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [d3a37a664ebe57471bd7ab2486dd3072a9c07378] ASoC: codecs: rt5645: Fix definition of device_id tables
# good: [461deb4911f39e455756cbc42928b12b04e82851] ASoC: codec: wm2200: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2f8b07842e9e95122b848727ea73504a035e7c12] ASoC: codec: wm8900: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [92acd9f7409d2939e5fef8bde5ad527b9e525229] ASoC: codec: wm8753: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [dee14c5b6d29886255c4a54599590d49fc1754be] ASoC: codec: wm8524: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [46dbe25747fca3d82e98dca488fa9be6b809d522] ASoC: codec: cs4270: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [df95f0157ba1ea7b73b3f1db4abfdb4b05e0bfd9] ASoC: amd: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2f120ee8026ab9630dc7f93dd4bafdcd56c82056] ASoC: codec: nau8825: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [24684cc2060150afd7a1ea47c586f9c09330633c] ASoC: codec: wm8400: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [ed4bef1d52ce0d6c96a86b6a470d6777034c564c] ASoC: codecs: rt298: Update definition of device_id tables
# good: [941abe67e176a3ddbe59cd4323b13f69515f6628] ASoC: ti: omap3pandora: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [5cfb2f62242b41e2b60cadf21b28ee43cf615ec2] ASoC: ti: j721e-evm: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b26c604a0dcef62e7c61bd1d560c63547c9bbfe8] ASoC: codec: cs35l32: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [4be54b6bdafad7656fd85c1fa6b7bebb7700a3d2] ASoC: codec: wm8750: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [24a4302478118ff1caf39fb48809c0127f608664] ASoC: codecs: rt5659: Fix definition of device_id tables
# good: [6de7c4def7a6bf967d6603f7e1abda5231ccc312] ASoC: codecs: rt5682: Fix definition of device_id tables
# good: [4d20a35acef6fb8c42eff953a11759e94710ba8b] ASoC: codec: wm8728: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [f1205656ef2334e860ced588e76dd88119394166] ASoC: codec: rt5659: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [e759aeeb1d09147891e08682df3a70dfbd15724a] ASoC: codec: cs53l30: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [9c7cf29bdb11cfdd1b59d1ea1eb852245b26e93a] ASoC: codec: rt274: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [fc0a8ee9921f50ac23b3264846720d1d15be539e] ASoC: codec: da7219: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [1a126668ab0946ebb7d1450742cd14775aa298fa] ASoC: codec: wm8903: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2d5e9d40998b441485376b8729c69073d8f2ab9d] ASoC: codec: rt5616: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [1b16920e651d11811ca4b3a5d92cfb3d817b1a14] ASoC: codec: rt5631: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [dfc6b8ccb1bb8d591cd26571e554208fc4af7d0c] ASoC: codecs: rt5640: Fix definition of device_id tables
# good: [e42ec97657fa5ee40fd2358c973d273edd7999bd] ASoC: pxa: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [739f4f44dc42b866090297adc1f007ffcdefb602] ASoC: codec: nau8540: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [3c2e63a3a0efa8c52f9fd67f58a71af48957ca7a] ASoC: codec: cs4234: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [5f2d29942c82d229dbdafe4bd21585d1b67f31ee] ASoC: codec: rk817: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b89d9d26fb6cbc9f6e0aae72a2a76b5d8e5f1023] ASoC: codecs: rt5665: Fix definition of device_id tables
# good: [d21e3b442ff6401511831ae1b8be11d530f063de] ASoC: codec: cs35l34: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [420663ae8fa2d70d2b824848763ca15bb5b2b585] ASoC: codec: wm8510: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2920be2fabcb8010fefdf101d84fe0867730d925] ASoC: fsl: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [2281565db79b5fd6b539e73a28e73fc960ee34d4] ASoC: codec: rt1015: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [1b94f3874d61b34febd5ddf3482a90107dc80082] ASoC: codec: wm8580: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [9fde82ea39a7f52c23de366c8592d4805634f45c] ASoC: ti: omap-twl4030: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [474cd6355413b264087ddc66b1dbc6c7e59fb76f] ASoC: codec: wm8350: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [6f8ac982806a104e4e816e12279d85440b6f703f] ASoC: codec: da9055: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [042ecb2ab2361f77b34a7d3c642bd378f6ecc73a] ASoC: codec: wm8711: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [f61c11db0f598eed6dd35a2d700ca54c6c74af4a] ASoC: codec: rt5682: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b3a3eda6cb30f21b818f40795468ff0a9f629990] ASoC: codec: rt5670: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [4042bb6e973aded1de6ce83436804a90181d6357] ASoC: codec: wm5100: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [739db0529c2a3ac5a0dc3e5a76a46ce80735dcfa] ASoC: codecs: rt5677: Update definition of device_id tables
# good: [a3c86259f8a402aa050fc5f3039f94c7872e4657] ASoC: codec: nau8810: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [1ef8b1c830a0b5a6600d803a8bbeb7179d3ca4da] ASoC: codec: cs42l52: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b865e0823cbffb747173b7dd4f4c8d82491d111f] ASoC: codec: rt1011: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [40213f8d5b498f5eb2f3297ee0f9c84d98737ee9] ASoC: codec: rt5677: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [bd178280c7d967e87e217b51c0647a2bfdf5deec] ASoC: codec: rt5682s: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [ea38f63c4afdd5531fbd8f0f881594a94c4bd413] ASoC: codec: cs35l33: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [a1cadae42c9bc52cff24b22b0c4986be8d82ae16] ASoC: qcom: sc7180: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [5a84cbb03094fd903ed79ca6c06e558821a69be4] ASoC: codecs: rt274: Fix definition of device_id tables
# good: [231bf041d425a086ec08231c98cf02b6fb16b169] ASoC: ti: n810: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [e41ebb0a1f8bff63c8e333eec34ff64e748227d0] ASoC: codec: rt5651: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [b50e5b9694e2a4355f2abeaa711dae5190661c27] ASoC: codec: da7210: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [3165df2f130d567e6cf05d789ecc28810519e5f7] ASoC: codec: rt5645: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [acac29fa62a8b738569a99da2f6458bc21aa55ae] ASoC: codecs: rt1318: Fix definition of device_id tables
# good: [84f32702f3efe02c2622b9151d4e08c436249a8c] ASoC: codec: rt298: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [7177a7a8e10d7722d0b9d4be4eea7dde014527b9] ASoC: codec: da7218: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [e23d68d7d3b35a44eb83d834b65cd28ca08844ec] ASoC: codec: nau8824: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [60143172c63daa49fef6eb9daa066fb7f1360bbe] ASoC: codec: rt5640: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [f9ef0947ba848467e4dcca6b5ab3a4ff2e218df6] ASoC: codec: rt1016: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [0d41068ca151a6368ab4591c13e9a7a9fb92a56f] ASoC: codec: cs4341: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [30e03871146129acb75adac48405c203f5bdb3c2] ASoC: codecs: rt1308: Fix definition of device_id tables
# good: [b686559772d1baa28e2ad346d5a9932863d9523c] ASoC: codecs: rt1011: Fix definition of device_id tables
# good: [0440f938aacf54a3e7dc67cd898f76bbd371da49] ASoC: codecs: rt1305: Fix definition of device_id tables
# good: [e7795c17b82684afb9390b8788f781c07be1a368] ASoC: codecs: rt1016: Fix definition of device_id tables
# good: [a859d2383f66002a442218bf5083faaa674bc4e4] ASoC: codecs: rt1015: Fix definition of device_id tables
# good: [689e4d5fd8a76c676f04bc8916d78ca5db3130db] ASoC: codecs: rt1019: Fix definition of device_id tables
# good: [5e9f822c9c683ae884fa5e71df41d1647b2876c6] iommu: Swap the order of setting group->pasid_array and calling attach op of iommu drivers
# good: [c5c4ce6612bb25ce6d6936d8ade96fcba635da54] regulator: cros-ec: use devm_kmemdup_array()
# good: [6ddd1159825c516b8f64fda83177c161434141f5] regulator: devres: use devm_kmemdup_array()
# good: [1455f0badd6345b2606bafb32e719d252293ebcd] Convert regulator drivers to use
# good: [579a20181cf2e9ddc2f1265ee4976a0e2631fd5d] Convert sound drivers to use devm_kmemdup_array()
# good: [c173b5ee81a25e8aafb21ccdb7ab457da7783bf1] ASoC: uniphier: use devm_kmemdup_array()
# good: [0bd862846e7f89910252cbef8718a757950f1683] ASoC: Intel: avs: use devm_kmemdup_array()
# good: [3e706be02befae55b50b240d4360b5993f9879a8] ASoC: hdac_hdmi: use devm_kmemdup_array()
# good: [d9d71a6e2d19a2f3ccebea0092b8ddc1e935886f] ASoC: uda1380: use devm_kmemdup_array()
# good: [b26205e172ca035e327e49edb0c2611e5d2ede8d] ASoC: meson: axg-tdm-interface: use devm_kmemdup_array()
# good: [69aaab0e65e9bd7601740c1e14cc6de86dafb621] ASoC: tlv320dac33: use devm_kmemdup_array()
# good: [d0343fdb567dddaa74ac1b7b6994fd70100a0f6e] Add SDCA register map support
# good: [c143755d8cce31e770234732ff23134993b0550f] ASoC: SDCA: Add helper to write out defaults and fixed values
# good: [fd80df352ba1884ce2b62dd8d9495582308101b7] regcache: Add support for sorting defaults arrays
# good: [79ed408b2402e8113aa5a298f3bb9088ede58f6c] ASoC: mediatek: mt8188: avoid uninitialized variable use
# good: [28c12866c22c2826ccbd8c82dc353f02ab2deea5] ASoC: SDCA: Add regmap helpers for parsing for DisCo Constant values
# good: [825687c1662c53ecda991adf0ecfd8dd3d864043] spi: dt-bindings: Add rk3562 support
# good: [e3f7caf74b795621252e3c25b4a9fb6888336ef1] ASoC: SDCA: Add generic regmap SDCA helpers
# good: [be1e3607f29a5a182eaa70e3058aef32fd0cc4f8] ASoC: tas2781: Clean up for some define
# good: [a54a659f5cc25e3b23ab19af08d0b23488bd9f4e] xlnx: dt-bindings: Convert to json-schema
# good: [a206376b425472c7c3a824f47a9967a4c97ae32c] ASoC: dt-bindings: xlnx,i2s: Convert to json-schema
# good: [1d2e01d53a8ebfffb49e8cc656f8c85239121b26] spi: spi-imx: convert timeouts to secs_to_jiffies()
# good: [62142da241a08006f89b0620f7291e3a08c0a094] ASoC: rt712-sdca: Add FU05 playback switch control
# good: [7ed7065dfbbac1b5405a0c8029299847e408cf97] ASoC: dt-bindings: xlnx,spdif: Convert to json-schema
# good: [1b8b6dd0c91b7db58e344f01781932458ac43da3] ASoC: dt-bindings: xlnx,audio-formatter: Convert to json-schema
# good: [55a1abd6e76ce91eb6049f32efec3a8506686748] MAINTAINERS: Add Vincenzo Frascino as Xilinx Sound Driver Maintainer
# good: [32fcd1b9c397ccca7fde2fcbcf4fc7e0ec8f34aa] spi: spi-fsl-lpspi: convert timeouts to secs_to_jiffies()
# good: [dc64e1b9da22496b5867f90315ac406be041db15] Enable DMIC for Genio 700/510 EVK
# good: [bf1800073f4d55f08191b034c86b95881e99b6fd] ASoC: mediatek: mt8188: Add reference for dmic clocks
# good: [b80fd34df2580f2c7a99e7188d68515bcf779714] Fix RK3588 power domain problems
# good: [38399716e353776dca7f04dbae98a07af68f2880] ASoC: ti: rx51: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [6542db20caf4987b938ed8feec07d199779823f2] ASoC: dt-bindings: fsl,easrc: Reference common DAI properties
# good: [390ebb24b3c3a95e109c28e14c2ec9fe3f0f8aaa] ASoC: mediatek: mt8188-mt6359: Add DMIC support
# good: [63d93f4d0f38fbb95a55729fbd2cc4920743931c] ASoC: q6dsp: q6apm: replace kzalloc() with kcalloc() in q6apm_map_memory_regions()
# good: [f9d4f699751f0389e57f26382174334670b8276e] ASoC: imx-card: support playback or capture only
# good: [d909b8d13a13d0197877e16aaaa3b2fcbb502858] ASoC: Intel: avs: Mute and multi-channel controls
# good: [ef6a24c79d5047c029577113af43eddd1d0f1bd2] ASoC: mediatek: mt8188: Add audsys hires clocks
# good: [f00b3056843d14754ac1bab2106cf5599680f115] ASoC: dt-bindings: mediatek,mt8188-mt6359: Add DMIC backend to dai-link
# good: [22254fca9bc7655801ad5f2af15729e44d28b85c] ASoC: dt-bindings: fsl: Reference common DAI
# good: [3e7b375752b5e4de56e92dfb9c43309cd985b869] ASoC: dt-bindings: fsl,imx-asrc: Reference common DAI properties
# good: [7d87bde21c73731ddaf15e572020f80999c38ee3] ASoC: mediatek: mt8188: Treat DMIC_GAINx_CUR as non-volatile
# good: [1c4749873bd0f769a47372636a428484e7035f59] ASoC: kirkwood: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [c1e42ec04197ac013d049dde40d9c72cf543b5f6] ASoC: mediatek: mt8188: Add support for DMIC
# good: [8fd0e127d8da856e34391399df40b33af2b307e0] ASoC: amd: acp: acp70: Remove unnecessary if-check
# good: [5a09e179024e76afdf9ad3a6ae767b4e06884ea8] ASoC: Documentation: DPCM: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [a5a3de8990f47f4c54ca5daeeea8ff7daa42f9de] ASoC: sh: migor: use inclusive language for SND_SOC_DAIFMT_CBx_CFx
# good: [4c32ebcc8650ce506632a32136993c85537fb01a] ASoC: Intel: avs: Move to the new control operations
# good: [76e013152891a69dfe68a28706a51a7df9ed4c42] ASoC: Intel: avs: Honor the invert flag for mixer controls
# good: [10188a25c9b5944c0a912482011b484b7c2e22d4] ASoC: Intel: avs: Update VOLUME and add MUTE IPCs
# good: [28feec15fa285e561c626b3490bc5a10f5d177c8] ASoC: Intel: avs: Make PEAKVOL configurable from topology
# good: [0dffacbbf8d044456d50c893adb9499775c489f4] regulator: Add (devm_)of_regulator_get()
# good: [1877c3e7937fb2b9373ba263a4900448d50917b7] ASoC: imx-card: Add playback_only or capture_only support
# good: [a4217a03686989c4a79530fe54fa17576aff7330] ASoC: Intel: avs: Add support for mute for PEAKVOL and GAIN
# good: [a9409fcb979eaff401837b955b234ca1ee05fdbd] ASoC: Intel: avs: Support multi-channel PEAKVOL instantiation
# good: [81eb3a2bd273b84fa9808e6b13b533f9c55e16eb] ASoC: topology: Save num_channels value for mixer controls
# good: [c321a4d705a31a50d7580516422aaa5b853e7602] ASoC: Intel: avs: New volume control operations
# good: [8c6ede5cc4226fd841f252d02ab0372cb92ee75c] ASoC: dt-bindings: imx-card: Add playback-only and capture-only property
# good: [4c43a930e3e165ca6890147a309508ccb6768faf] ASoC: Intel: avs: Add volume control for GAIN module
# good: [758beab0252912395efb79f34095c5ae7e3e58b1] ASoC: topology: Create kcontrols based on their type
# good: [18311a766c587fc69b1806f1d5943305903b7e6e] err.h: move IOMEM_ERR_PTR() to err.h
# good: [2fa56dae1a65e8124d417a31d7b02c37df013817] ASoC: fsl: fsl_qmc_audio: Remove unnecessary bool conversions
# good: [91b75129149429bb16927cda8b5642c04c59e6b0] ASoC: SOF: amd: Move depends on AMD_NODE to consumers
# good: [99e297cdd338b8a18c986ed4e088676579b7fe96] iio: imu: st_lsm9ds0: Replace device.h with what is needed
# good: [a103b833ac3806b816bc993cba77d0b17cf801f1] devres: Introduce devm_kmemdup_array()
# good: [10efa807929084a8a1c38655942a3bf83bce587a] ASoC: cros_ec_codec: Use str_enable_disable() helper in wov_enable_put()
# good: [88e09306b7e0f8a9e9f9c729ac13ccd11ed9679d] ASoC: atmel: atmel-classd: Use str_enabled_disabled() helper
# good: [a21cad9312767d26b5257ce0662699bb202cdda1] driver core: Split devres APIs to device/devres.h
# good: [b47834ee4485bbdcc6d36f086ff61c3efd8870d4] ASoC: SOF: amd: Add depends on CPU_SUP_AMD
# good: [64899904d6103500ad01be7b763298dc939285ae] ASoC: soc-core: Use str_yes_no() in snd_soc_close_delayed_work()
# good: [f3bfa0f07976a7996b6dedba21d2e0d164f08ce8] spi: dt-bindings: Convert Freescale SPI bindings to YAML
# good: [2e2f89b184644f0e29f1ec0b4dcfd0361d2635cb] firmware: cs_dsp: test_bin_error: Use same test cases for adsp2 and Halo Core
# good: [42ae6e2559e63c2d4096b698cd47aaeb974436df] firmware: cs_dsp: test_control_parse: null-terminate test strings
# good: [cb15abd47806b449e853caf43f41573c4c82fed3] spi: s3c64xx: extend description of compatible's fifo_depth
# good: [66d8e76e8e85a30fbf9809837e07e15a8c5ccb8b] regulator: pca9450: Remove duplicate code in probe
# good: [c8d08464bce947ee060e0174a3f4e87503269d0c] ASoC: dt-bindings: atmel-at91sam9g20ek: convert to json-schema
# good: [f120cf33d2325fd95d063eccbff2e86ffc7f493a] ASoC: SOF: amd: Use AMD_NODE
# good: [67ebf71236f2e7b0e4cf791700dcddc9eb8cf650] Adjust all AMD audio drivers to use AMD_NODE
# good: [40d05927830227f2a1701c61e8bbe65287a03490] ASoC: amd: acp: Drop local symbols for smn read/write
# good: [e211adcf36d0ccdd31af7398af4725a47d74b3d4] ASoC: amd: acp: rembrandt: Use AMD_NODE
# good: [135c6af1cac5465529469700d16c0c44b24ce317] ASoC: amd: acp: acp70: Use AMD_NODE
# good: [a261d77fec147b9974aacca8ae8f0693feede838] ASoC: SOF: amd: Drop host bridge ID from struct
# good: [8f969537149d672d40a0e75a83f39451a5402780] ASoC: amd: acp: acp63: Use AMD_NODE
# good: [c893ee3f95f16fcb98da934d61483d0b7d8ed568] x86/amd_node: Add a smn_read_register() helper
# good: [d1a09c610027e446ed30c21f61c2f2443bf92a3f] MAINTAINERS: adjust the file entry in SPI OFFLOAD
# good: [a78f244a9150da0878a37a1b59fb0608b1ccfb9d] ASoC: SOF: imx: Fix error code in probe()
# good: [b20be2c77ce5341ded1a2d8aec119f6dca8ef1ad] ASoC: SOF: imx: Fix an IS_ERR() vs NULL bug in imx_parse_ioremap_memory()
# good: [5d9fca12f54d3e25e02521aa8f3ec5d53759b334] ASoC: amd: ps: fix inconsistent indenting warning in check_and_handle_sdw_dma_irq()
# good: [0770b7cc095e015af302f0758d3d85c7f17c719a] ASoC: tas2764: Random patches from the Asahi Linux
# good: [3f02dedf1566858736f351a8d4a3ce91375e48f1] ASoC: random cleanup
# good: [e0f421d73053eaeb441aa77054b75992705656c7] ASoC: SOF: ipc3: Use str_enabled_disabled() helper function
# good: [5c7e4c4da8586d2ef55a11a9f4df626b8ea9a146] ASoC: dt-bindings: wlf,wm8960: add 'port' property
# good: [783db6851c1821d8b983ffb12b99c279ff64f2ee] ASoC: ops: Enforce platform maximum on initial value
# good: [9dc016eaba3a70febcd1db5f1a0beeb7430166aa] ASoC: SOF: Intel: Don't import non-existing module namespace
# good: [9f25b6f2568d50c247a8e3b031a0a5caee8c17d2] ASoC: wm_hubs: Use str_enable_disable() in wm_hubs_update_class_w()
# good: [e08fe24c34d37d00e84009f2fb4c35f5978041e6] ASoC: SOF: Intel: Use str_enable_disable() helper
# good: [735049b801cf3d597752017385cfc8768ce44303] x86/amd_node, platform/x86/amd/hsmp: Have HSMP use SMN through AMD_NODE
# good: [7e1caa679686dde5c24d60b139f234568045758f] ASoC: soc-pcm: makes dpcm_dapm_stream_event() void
# good: [6b06755af6679fd7c98ebc017ac31c8a74127538] x86/amd_node: Add support for debugfs access to SMN registers
# good: [1c3b5f37409682184669457a5bdf761268eafbe5] ASoC: tas2764: Power up/down amp on mute ops
# good: [f37f1748564ac51d32f7588bd7bfc99913ccab8e] ASoC: tas2764: Mark SW_RESET as volatile
# good: [bebe0afb74514ae51f4f348b28326c658b02209d] x86/amd_node: Add SMN offsets to exclusive region access
# good: [d64c4c3d1c578f98d70db1c5e2535b47adce9d07] ASoC: tas2764: Add reg defaults for TAS2764_INT_CLK_CFG
# good: [42da18e62652b58ba5ecd1524c146b202cda9bb7] ASoC: soc-pcm: cleanup dpcm_fe_dai_do_trigger()
# good: [40b1f89a1691c4b7740bec2c868f1e4c60346353] ASoC: remove dpcm_process_paths()
# good: [3aebbcba4baaa81bc8c83f2229ed8e774cf40618] ASoC: soc-pcm: cleanup dpcm_dai_trigger_fe_be()
# good: [1248d29464cc682c2a1793cfc5d4ebeb374c6738] ASoC: soc-ops: makes snd_soc_read_signed() void
# good: [08a66f55f7246d477b19620a953476dfc02beefc] ASoC: tas2764: Wait for ramp-down after shutdown
# good: [238c863eb3d3c6ed58493bacfd1f4b36bdcfa92f] ASoC: soc-core: makes snd_soc_set_dmi_name() local
# good: [257a060fe219bb0dcb98f12ce34f04eca6d08352] ASoC: remove update from snd_soc_card
# good: [7f1186a8d738661b941b298fd6d1d5725ed71428] ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot()
# good: [11c1967f1a796bf2ff56a7118147f1d39d9f5ee0] ASoC: soc-pcm: no need to check dpcm->fe on dpcm_be_connect()
# good: [0c4a06395156d16ea33e959fccea84e4cfec04c4] ASoC: soc-pcm: remove duplicate param from __soc_pcm_hw_params()
# good: [74e0fcbd705d4277267311f8f26a00bb8ce93820] gpiolib: add gpiod_multi_set_value_cansleep
# good: [994719ed6d81a6f4677875ab6730254c0bc484ea] ASoC: Intel: avs: Use str_on_off() in avs_dsp_core_power()
# good: [ae575d2145d1a2c8bb5d2835d7d54751f3b0bace] ASoC: tegra: Remove the isomgr_bw APIs export
# good: [828c0aa63706410503526d0ee522b9ac3232c86b] ASoC: amd: ps: use switch statements for acp pci revision id check
# good: [f22ba3561daa792dd138ed543e0bf48efe0b999c] ASoC: SOF: imx-common: set sdev->pdata->hw_pdata after common is alloc'd
# good: [ad0fbcebb5f6e093d433a0873758a2778d747eb8] ASoC: adau1701: use gpiod_multi_set_value_cansleep
# good: [e957c96455e8f4c630d5e374312cad0633ca7e17] spi: offload: fix use after free
# good: [d795a052b0ddad3da83dda6ff522c1b1aaa4a525] spi: fix missing offload_flags doc
# good: [91931af18bd22437e08e2471f5484d6fbdd8ab93] gpiolib: add gpiod_multi_set_value_cansleep()
# good: [ff4d4158ef9143327a42f7be4298751cb0d1be69] spi: spi-offload-trigger-pwm: add extra headers
# good: [fcd7ace9a725ae034ff9f24cb94c9fe12a1f02da] spi: offload: types: include linux/bits.h
# good: [21aa330fec31bb530a4ef6c9555fb157d0711112] ASoC: fsl_micfil: Add decimation filter bypass mode support
# good: [ad1212a9cc24b740b2711014933fac6ace32aa2d] arm64: dts: rockchip: Add SPDIF on RK3588
# good: [f46eb2bfb878ce3345725252f77fa3ba36a0f087] spi: axi-spi-engine: add offload support
# good: [c5528214c7c0a753c908a7b353309ba665985fb4] ASoC: codecs: wcd93xx-sdw: fix of_property_read_bool() warnings
# good: [e97d06cb4386af4e069a2dc713de70500538d0bd] ASoC: tscs454: Use str_enable_disable() in pll_power_event()
# good: [d1541caab053cf94b114582a23b51a8cb90f4a46] Add SDCA DisCo parsing support
# good: [3c331bdeececb629669961a80c0f929301c088d2] Refactor imx drivers and introduce support for
# good: [330cbb40bb3664a18a19760bd6dc6003d6624041] dt-bindings: ASoC: rockchip: Add compatible for RK3588 SPDIF
# good: [447c98c1ca4a4b0d43be99f76c558c09956484f3] tools/power turbostat: Add idle governor statistics reporting
# good: [5132681dcd96b2a8c357b6e5d93e9876924bb80b] tools/power turbostat: Fix names matching
# good: [005859a2cf7aa349fbbfe433ab1769b15c535b72] ASoC: amd: Add support for ACP7.0 & ACP7.1
# good: [700a281905f2a4ccf6f3b2d3cd6985e034b4b021] spi: add offload TX/RX streaming APIs
# good: [563e40153a56cbfae8721f9591022df5d930f939] ASoC: SOF: imx8: use IMX_SOF_* macros
# good: [629dd55cf77bd3a8f80049150d3c05fef6d3b468] ASoC: SDCA: Minor formatting and naming tweaks
# good: [651e0ed391b148f83afba0bfbd8a56e38e58c34d] ASoC: SOF: imx: introduce more common structures and functions
# good: [07e3e514dd385300bd08da4a8df09240d272821e] ASoC: SOF: imx: merge imx8 and imx8ulp drivers
# good: [d7231be4b4657e5f922a4c6dc11e8dffc71fee87] spi: offload: add support for hardware triggers
# good: [f98d42000216677d177384f202ff1cc896a7395f] ASoC: Intel: soc-acpi-intel-ptl-match typo fixups
# good: [645753d01356ff1a756812f1c69c53eb5c9081cd] ASoC: SOF: imx8: use common imx chip interface
# good: [5a19e1985d014fab9892348f6175a19143cec810] spi: axi-spi-engine: implement offload support
# good: [896530b7b0c08ee8b3296d5f012bfe1b0a979b86] ASoC: SOF: imx: merge imx8 and imx8m drivers
# good: [ebb398ae1e052c4245b7bcea679fe073111db2ce] spi: offload-trigger: add PWM trigger driver
# good: [5c93b20f6de4478e1fbcfb38eb46738bca74180e] ASoC: SDCA: Add support for IT/OT Entity properties
# good: [f87c2a275033120e15213f3d65234d98e726c4b7] ASoC: SDCA: Add Channel Cluster parsing
# good: [19f6748abbab8523a7b32a5e371e39d4d8d4aba5] ASoC: SDCA: Parse initialization write table
# good: [42b144cb6a2d87385fa0b124c975d6cf1e3ec630] ASoC: SDCA: Add SDCA Control parsing
# good: [8e02d188698851436f76038ea998b726193d1b10] spi: add basic support for SPI offloading
# good: [e1101373df5cd7672d988bb4e9cdd5eb97003165] spi: dt-bindings: axi-spi-engine: add SPI offload properties
# good: [9ee6d50ae4b0fe14ed70a5265a05874d41e10848] ASoC: SDCA: Add support for Entity 0
# good: [9da195880f167ab7c2d595388decf783c9920121] ASoC: SDCA: Add support for PDE Entity properties
# good: [64fb5af1d1bbcf1b808e9bb092b22fa1b691ae63] ASoC: SDCA: Add parsing for Control range structures
# good: [45e02edd8422b6c4a511f38403dbd805cd139733] ASoC: SOF: imx8: drop unneeded/unused macros/header includes
# good: [e80b8e5c53c30df1cba45258d10b04872b7eea67] ASoC: SDCA: Add support for clock Entity properties
# good: [6cf5df1040ba0694aea6a5edc6f31811a442ea36] ASoC: SOF: imx: add driver for the imx95 chip
# good: [83f37ba7b76ab17e029ab4127ec64ccccce64c00] dt-bindings: trigger-source: add generic PWM trigger source
# good: [996bf834d0b61cb5a1389356c1ed7db1230139d7] ASoC: SDCA: Add code to parse Function information
# good: [43d6140cedad9f031b47dfde6f85856e007b3f04] ASoC: amd: ps: refactor soundwire dma interrupts enable/disable sequence
# good: [491628388005a26c02d6827e649284357daec213] ASoC: amd: ps: add callback functions for acp pci driver pm ops
# good: [187150671d83324f1ca56f7ab5e00f16a3b9f2a9] ASoC: amd: acp: add RT711, RT714 & RT1316 support for ACP7.0 platform
# good: [1c35755f46423150e19ff57448786b4bb48fdb46] ASoC: amd: ps: implement function to restore dma config for ACP7.0 platform
# good: [fcb754602724fa2a1d0db72f13ddc3ef0306f911] ASoC: amd: ps: store acp revision id in SoundWire dma driver private data
# good: [d0252b0b945ec67fd09fc764dcadf445fb7757ee] ASoC: amd: acp: amd-acp70-acpi-match: Add rt722 support
# good: [31e3100d5e1fe69f944f84867be0cbfa5fd380c8] ASoC: amd: acp: amd-acp70-acpi-match: Add RT1320 & RT722 combination soundwire machine
# good: [0b6914a0121b4c9fc8f575b60a5dd43b74612908] ASoC: amd: ps: add soundwire dma interrupts handling for ACP7.0 platform
# good: [0eb8f83c055cb3461734710d1b1ce2dd4f01806e] ASoC: amd: ps: update module description
# good: [852c0b7204ded184924c41ab99b2ac7a70ad4dab] ASoC: Intel: soc-acpi-intel-ptl-match: add rt713_vb_l2_rt1320_l13
# good: [4b36a47e2d989b98953dbfb1e97da0f0169f5086] ASoC: amd: ps: use macro for ACP6.3 pci revision id
# good: [3898b189079c85735f57759b0d407518c01c745e] ASoC: amd: ps: add soundwire wake interrupt handling
# good: [c878d5c1a525b88807d9d79888fe8340bcbf1aa3] ASoC: amd: ps: add ACP7.0 & ACP7.1 specific soundwire dma driver changes
# good: [4bb5b6f13fd83b32c8a93fbd399e7558415d1ce0] ASoC: amd: amd_sdw: Add quirks for Dell SKU's
# good: [fde277dbcf53be685d0b9976d636366c80a74da8] ASoC: amd: ps: add pm ops related hw_ops for ACP7.0 & ACP7.1 platforms
# good: [91f505dc3a94c04421a2a51e8c40acf7ea67ecbc] ASoC: Intel: soc-acpi-intel-ptl-match: add rt712_vb + rt1320 support
# good: [e2ceac2f323625632f12dd5333092976298a0cde] ASoC: amd: ps: rename structure names, variable and other macros
# good: [552f66c40134542f15d4302837e7d581a0b8e217] ASoC: amd: update Pink Sardine platform Kconfig description
# good: [638ad2bdb2f994c8bd99cc40e0c4796a8617ccf3] ASoC: amd: acp: add machine driver changes for ACP7.0 and ACP7.1 platforms
# good: [7c0ea26c57b0bb72d503fe27d6533f5addc5e3a3] ASoC: amd: ps: add pci driver hw_ops for ACP7.0 & ACP7.1 variants
# good: [0a27b2d7a224326fab543ca586d501fe1857b655] ASoC: amd: ps: add soundwire dma irq thread callback
# good: [4516be370ced14c4fb454fd6cc016e47bffe109e] ASoC: amd: ps: refactor soundwire dma interrupt handling
# good: [6547577e94ae3d9f8ff30d3267fe7ec394e3b20d] ASoC: amd: ps: add callback to read acp pin configuration
# good: [605aab3b3ca83f58681841b2dd16d4a7baefde6c] ASoC: amd: ps: rename acp_restore_sdw_dma_config() function
# good: [0fa0843db17ccd427fc7a23d313aafa88fc89e04] ASoC: amd: ps: refactor soundwire dma driver code
# good: [db746fff89a14419379226ce0df8b94f472cf38c] ASoC: amd: ps: add acp pci driver hw_ops for acp6.3 platform
# good: [f1e91acacf86fb2cd7478af490326cb9aa63e8ae] ASoC: amd: ps: update file description and copyright year
# good: [a23ff143804d3b8c27157ffa19e48b4e22939115] ASoC: Intel: avs: Add support for MalibouLake
# good: [f0703ce627a25b4a1307d8a92cfd6d6bf7e27e7a] ASoC: cpcap: Implement jack headset detection
# good: [46ab7d80ed4f378e02cb249bd49a76026a2d683f] Add static channel mapping between soundwire master
# good: [f2d161e5804d8da070988624b9edd179ef31b478] ASoC: and adn use snd_soc_ret()
# good: [6b8f162bd3fa82c3c1b3653100d04172c1dbd8a5] ASoC: SOF: Improve the spcm and ipc4 copier prints
# good: [153dbf4adad0082d030c30d20541df2b1af52db6] regmap: irq: Use one way of setting all bits in the register
# good: [96dd187c93afe0ae0535276a92ed488759ace5a2] This is continued work on Samsung S9(SM-9600)
# good: [cb161c333927142818d6bf22a4da2b023fb2b8c9] ASoC: tas2781: Switch to use %ptTsr
# good: [583348bd65ceaf4a5067a6267dd236929e1b4b37] ASoC: SOF: ipc4-topology: Improve the information in prepare_copier prints
# good: [5ea46b4360791345bd0bf4c7bf8fff5151374ea1] ASoC: SOF: ipc4-pcm: Move out be_rate initialization from for loop in fixup
# good: [0e9a970d7b2cb98d741bc0e32ad8c8f30c009c63] ASoC: qcom: sdw: Add get and set channel maps support from codec to cpu dais
# good: [d959fed68e4d45ee80cbdd62976bda8da52ab8b1] media: qcom: camss: Add callback API for RUP update and buf done
# good: [2466b62268c020606d20b45e007c166399e639ee] ASoC: dapm: unexport dapm_mark_endpoints_dirty()
# good: [0a7c85b516830c0bb088b0bdb2f2c50c76fc531a] regulator: ad5398: Fix incorrect power down bit mask
# good: [c06c4f7cbea1d8dc71485bfddef2849a1b721e67] ASoC: codecs: wcd937x: Add static channel mapping support in wcd937x-sdw
# good: [ecfcee245cc99def0f6bf84ac75ac372f8ab65eb] ASoC: dapm: unexport snd_soc_dapm_init()
# good: [4c7518062d638837cea915e0ffe30f846780639a] ASoC: SOF: ipc4: Add support for split firmware releases
# good: [3f78762d17701f0435ad958b2821dc3243ff34b3] ASoC: dapm: unexport snd_soc_dapm_update_dai()
# good: [943116ba2a6ab472e8ad2d1e57a3f10f13485cc2] ASoC: add common snd_soc_ret() and use it
# good: [062b7ef6b103dcbcb3c084e8ace8e74e260b2346] ASoC: soc-utils: care -EOPNOTSUPP on snd_soc_ret()
# good: [9bbbf33a5ab84c0f3643f43350b0f473b60af5b8] spi: gpio: Enable a single always-selected device
# good: [a0ef5b4b101424b8a666ed56bf1717dafe2d37f5] ASoC: simple-card: use snd_soc_ret()
# good: [2d7395b23dbf4c2d60be49b73e4c4705fc446662] ASoC: simple-card-utils: use snd_soc_ret()
# good: [be61cd4242e4a53f5cf989ee7573121d041444bc] ASoC: soc-pcm: use snd_soc_ret()
# good: [72826381215e2f9d2bd2f32f63f76a80942b7fdf] ASoC: dt-bindings: wcd937x-sdw: Add static channel mapping support
# good: [7796c97df6b1b2206681a07f3c80f6023a6593d5] soundwire: qcom: Add set_channel_map api support
# good: [78e66dd5f32a1a8e5ee6decadd4e4dffa7d2c40d] ASoC: mediatek: mt8186: Remove unused mt8186_afe_(suspend|resume)_clock
# good: [860693187c597645b28a421d8acb26428b8afd3f] ASoC: SOF: pcm: Add snd_sof_pcm specific wrappers for dev_dbg() and dev_err()
# good: [169ec0a541aac8afb215ab591b0fd53276686014] ASoC: SOF: Relocate and rework functionality for PCM stream freeing
# good: [8d83282e53185ec257a4ce08812e8fabee2c7212] ASoC: audio-graph-card2: use snd_soc_ret()
# good: [4d2ea16576c8aa1437048cf436bff85653f139fe] ASoC: SOF: pcm: Move period/buffer configuration print after platform open
# good: [74a0ca4c7f19f1b273d665b3b53f7ae8af879658] ASoC: audio-graph-card: use snd_soc_ret()
# good: [b3d993c7566fed1c027c5c18f3ef482ba8e6307a] ASoC: amd: acp: Use str_low_high() helper function
# good: [215705db51eb23052c73126d2efb6acbc2db0424] spi: Replace custom fsleep() implementation
# good: [185ac20a7b055e025027d303b63dab456b4f5d5e] ASoC: rt722: get lane mapping property
# good: [c108905a7423d44237d17374f845fc5bb9cb9728] spi: gpio: Remove stale documentation part
# good: [6603c5133daadbb3277fbd93be0d0d5b8ec928e8] ASoC: dt-bindings: atmel,at91-ssc: Convert to YAML format
# good: [3f75771987f32a9f512c8944e70e343f8c6d71c1] ASoC: SOF: mediatek: Use str_on_off() helper function
# good: [678681828bf4abfd3c31f36390d2097682141d11] ASoC: dmic: Add DSD big endian format support
# good: [25fac20edd09b60651eabcc57c187b1277f43d08] spi: gpio: Support a single always-selected device
# good: [e27c125040b1e1f26d910b46daabbe55e67fdf3b] ASoC: codecs: wcd934x: use wcd934x binding header
# good: [8478dadc8148af311c3d43d4867cfb6632686ede] ASoC: dt-bindings: Add bindings for WCD934x DAIs
# good: [e3cd85963a20d2b92e77046a8d9f0777815f1f71] x86/mtrr: Use str_enabled_disabled() helper in print_mtrr_state()
# good: [652ffad172d089acb1a20e5fde1b66e687832b06] spi: fsi: Batch TX operations
# good: [8418753187ba216f8931432dd8a6ee2f23977ecd] staging: gpib: Make static, reduce fwd declarations
# good: [b2f10aa2eb18d289e48097e0ed973e714322175b] x86/entry: Add __init to ia32_emulation_override_cmdline()
# good: [fb6ec1d27608c008bfe1ab0dfec3720990eb2451] ASoC: mediatek: mt6358: Remove unused functions
# good: [4a91fe4c0d683c56044579fb263c660f5d18efac] ASoC: tegra: Add interconnect support
# good: [e92f042642aed6f6206caace892d9df2d0166841] ASoC: codecs: pcm3168a: Relax probing conditions
# good: [1a4a5a752fcd60797ed2cb7c06253c6433d13f63] ASoC: soc-ops: remove soc-dpcm.h
# good: [6eab7034579917f207ca6d8e3f4e11e85e0ab7d5] ASoC: soc-core: Stop using of_property_read_bool() for non-boolean properties
# good: [78683c25c80e54bf3e8015fdfb8cba2fcd03daa5] RDMA/mana_ib: Allow registration of DMA-mapped memory in PDs
# good: [cbe37a4d2b3c25d2e2a94097e09b6d87461b8833] ASoC: Intel: avs: Configure basefw on TGL-based platforms
# good: [79ebb596201c86712fe38b0ef73d25d07b932664] ASoC: Intel: avs: Add pcm3168a machine board
# good: [7d92a38d67e5d937b64b20aa4fd14451ee1772f3] ASoC: codecs: pcm3168a: Allow for 24-bit in provider mode
# good: [f0173cbe7fa79eafbdf32eed32337209f84ddacd] ASoC: Intel: avs: New gateway configuration mechanism
# good: [e995c51903384be1c7aead246dc30cb5244179ac] ASoC: Intel: avs: Move DSP-boot steps into individual functions
# good: [320155a61f7fc810a915644e9e2a451bdcea90b1] ASoC: Intel: avs: Remove unused gateway configuration code
# good: [26a756fc10fac6f133ef47f12362a39769dfe24d] spi: zynqmp-gqspi: Clean up the driver a bit
# good: [856366dc924a9561dae39f252b45dfd6cc6895ce] ALSA: hda: Select avs-driver by default on MBL
# good: [299ce4beaf714abe76e3ad106f2e745748f693e9] ASoC: rt722-sdca: Make use of new expanded MBQ regmap
# good: [a05143a8f713d9ae6abc41141dac52c66fca8b06] ASoC: SOF: topology: Use krealloc_array() to replace krealloc()
# good: [3c32a4386909e8023b3c49253fec33d267be16bb] regulator: Add device tree support to AD5398
# good: [f9a5c4b6afc79073491acdab7f1e943ee3a19fbb] ASoC: rt722-sdca: Add some missing readable registers
# good: [4343af66b8e1df1d3a2e6f1f8612506cb45b2afd] ASoC: Intel: avs: Add WHM module support
# good: [dc561ab16d8be9cbe8f07a49a7b2f5428fbcfeea] ASoC: codecs: pcm3168a: Add ACPI match table
# good: [b9fb91692af881736f8fa1741fa0dbadf07d99ee] ASoC: Intel: avs: pcm3168a board selection
# good: [c9e9aa80022c6db71bc097a621a6145f39aa0ade] ASoC: mediatek: Remove unused mtk_memif_set_rate
# good: [9b32c86e40da792544c53076f5ec43f115e56687] spi: zynqmp-gqspi: Clean up fillgenfifo
# good: [d61009bd578ee7381a3cce5c506190ecb8f9d6e8] spi: zynqmp-gqspi: Reformat long line
# good: [f5aab0438ef17f01c5ecd25e61ae6a03f82a4586] regulator: pca9450: Fix enable register for LDO5
# good: [d2ead60d853189f8e5ec6b301fac1e60e0b4b47d] spi: zynqmp-gqspi: Add helpers for enabling/disabling DMA
# good: [c1ac98492d1584d31f335d233a5cd7a4d4116e5a] spi: realtek-rtl-snand: Drop unneeded assignment for cache_type
# good: [ba54629287f58b22c1d37f80f1875373e4b51ea6] spi: zynqmp-gqspi: Add some more debug prints
# good: [89785306453ce6d949e783f6936821a0b7649ee2] spi: zynqmp-gqspi: Always acknowledge interrupts
# good: [c73be62caabbec6629689c705aea65e5ce364d5d] Revert "regulator: pca9450: Add SD_VSEL GPIO for LDO5"
# good: [b5ec74c2aec76fbdff9bc16951455602e11902bf] arm64: dts: imx8mp-skov-reva: Use hardware signal for SD card VSELECT
# good: [7ed1b265021dd13ce5619501b388e489ddc8e204] ASoC: cpcap: Implement jack detection
# good: [5a6a461079decea452fdcae955bccecf92e07e97] regulator: ad5398: Add device tree support
# good: [19d022d67d7353f0e6e9ba255435d3de93862ac4] regulator: ad5398: change enable bit name to improve readibility
# good: [5b4288792ff246cf2bda0c81cebcc02d1f631ca3] ASoC: cpcap: Implement .set_bias_level
# good: [f9cbf56b0a1966d977df87d15a5bdbff2c342062] dt-bindings: regulator: pca9450: Add properties for handling LDO5
# good: [995cf0e014b0144edf1125668a97c252c5ab775e] regmap: Reorder 'struct regmap'
# good: [3ce6f4f943ddd9edc03e450a2a0d89cb025b165b] regulator: pca9450: Fix control register for LDO5
# good: [f76ad354146d773d4cad436bb9004d230bffd6dd] Merge branch 'for-6.14/selftests-dmesg' into for-next
# good: [02d4a97ce30c0494ce6a614cd54d583caa0f8016] dt-bindings: mfd: motorola-cpcap: Document audio-codec interrupts
# good: [5e36be5973b6ac66198220365bffb7a3641038f9] Merge branch 'for-6.4/core' into for-next
# good: [26d6fd81916e62d2b0568d9756e5f9c33f0f9b7a] drm/connector: make mode_valid take a const struct drm_display_mode
# good: [7e17e80c3a7eb2734795f66ba946f933412d597f] Merge branch 'for-6.14/stack-order' into for-next
git bisect start 'eea255893718268e1ab852fb52f70c613d109b99' '97654dc13f139ea726042711a4943f424c5d5b83' '5cd09a324588b4554c9ed89cef34fa502a097d16' '8a7e7a03e3c53cd9abbbf233899cc2e05b2c6ec0' '1ec3f1dc215d4b3d3679ecdc4a549d4e82b3a609' '69823334200029767de785d30acf74e4872a11d3' 'db91ad81a2545eb82aa47d0306bc3e1adb05e336' 'a8fed0bddf8fa239fc71dc5c035d2e078c597369' '0d2d276f53ea3ba1686619cde503d9748f58a834' '8aeb7d2c3fc315e629d252cd601598a5af74bbb0' '4a43c3241ec3465a501825ecaf051e5a1d85a60b' '80416226920c21e806f93bd0930d67557f41600f' 'd3321a20b5111a66f3e68798959a347acfccbd44' 'eea84a7f0cdb693c261a7cf84bd4b3d81479c9a6' '0978e8207b61ac6d51280e5d28ccfff75d653363' 'a0db661e7d8e084e9cf3b9cdca7c6e4e66f2e849' '02a838b01b8e7c00e2efe78db06fff356a112dec' '5d5eceb9bb1050774dadc6919a258729f276fd00' '3707fd9c383fc7ae19733a3ad2e5a82bf86370a0' '7a2ff0510c51462c0a979f5006d375a2b23d46e9' '269b844239149a9bbaba66518db99ebb06554a15' '7dfc9bdde9fa20cf1ac5cbea97b0446622ca74c7' '2c2eadd07e747059ccd65e68cd1d1b23ca96b072' 'c6141ba0110f98266106699aca071fed025c3d64' 'a1462fb8b5dd1018e3477a6861822d75c6a59449' '1ff07522690d2c2b67343099d2d046e88f71cddb' 'ffe450cb6bce16eb15f6bf90b85b7e5f9bfbc1e3' '65e246d33dede0008f281d3d09b7695bef2d18eb' 'c7a6a74f847923bb726029b85a3fd0e05e9fbb04' '02467341e3577836648753a9e9a5c196f08187da' '438405704eec45c06be9adc94eb5f94855412790' '8b36447c9ae102539d82d6278971b23b20d87629' 'e1a0657c6d943528ef58671594ca7e5b17db5394' '7172d9ae29afd00c8ee9a8e3a4eba4cea5d5e403' 'b92bc4d6e21f1802a39975e3c7cc4f76f591d46f' 'de22dc76e11d1291d4f50b73dbbaa158ba9d6acd' '6db63090272768785e6bb4a3afa16650c1e96c54' '426aae69373fb149e5bbe1d5fa18299d38414f22' 'ee3cce59b1cecad7edd2022a443c8607faa9a4ad' '2cb6290a24f74f1c4a1b4cbd311ddd50a2c6046a' 'd6c08418955a7d88bd5fe18787456264c4408e22' '24056de9976dfc33801d2574c1672d91f840277a' '56e8bbb7a0d1b15a1af87fc7d6a73469f6ed4bd2' '0a22454ab2eca530702b2689858909b608953703' '5fac6c2785f95ddd73db33289dcd3cd5a68be226' 'c095b7a27529d1d18b3b36a47f77a1419f0de939' '5c06f7f3d8374df1cec3b353306a4d1032a60f44' 'b19d340d5d08c5940ce612c2a1b5fe3a8a401f9d' '1d251a7adc5b720a71641c758a45b8a119971d80' '8243a49145e59f19032b86b20d8906f05e31bdcc' '79c080c75cdd0a5ba38be039f6f9bb66ec53b0c4' 'da9146c19b1774926148ff271c4a3dc8d7891b18' 'c4b2d9643a06a5326a778c4d77d6fa60e0f3d6b1' '516493232a9b80dd4f4f6b078541cfad00973dbb' 'bf19467b8512f855bdfae59ae78d326b1f434443' 'c951b20766f019a263b3547b07627be52fff87b4' '7c5b07b497eab8eba75cf5da00cba493216dfc12' 'aecdaa84adafb086b5b2939898d781bd63d6fe2e' 'b2b6913394488e031ee3d726f247b1c967057b40' '1743dbb45b2cbe5500068900794a355a7e0dd853' '98413be56faa1c12494f43e7f77746763fa41c4a' '9e6e7e088cb78ce58ea442106b1f29cd7b6ff76e' '9bb7d7452363fc470b76766b0a6356807e752795' '17ec58ac3c08c5c43bbdf5b08020fa4188a3009a' 'c01a74844b74c584160d5253f794bbd2af015bec' 'e33d0569d7a1d041e37fb93094e70807856531c2' '836d2924c05edb06e32eeede8bc12c4c96da0b3d' 'd8c808af2a9bf731f72fcb772cf22886c6d00d99' '1af0148c3f871e55a6c4adf544af77a19fd17671' 'd2f277bf8aaed8c5307ab998b2de4346bed6e884' 'db9912ce99c346c948c8fa774c0afc7d80d0ec20' 'f0bd6cb02505eca6adbe2e3ad3445a2420637c19' '0808c1ab8d1a1222194d830870f6b2b47220b1d7' '6dd61011a67e35b8d5f3b94193ed66d0c19ba425' '7c0572197faf3b6d6b27271455e76ac8ba84c43f' 'cfb91be8f9c8e54e517a9a539012309101abcac5' '2c4a2b5d084b06e1a9fd2e85866b51f6118dd254' 'bcb896a69864aec4dd0251732a380bcdbeff8c51' 'cb1ebf6e20371208c49d59615bf4b46d92991fc4' 'c709a876b7de676d49b00b624b37d208e452cc7e' '8410a099c88d1d720c9780b0ed716e544ea5a6d2' 'b15ea10972a1b4db23f7495003fccc6fe59e44bd' '291b4eb984792fcc0bd3dec9ad9a69c3c6988951' '9ef6a439bc987753b7e5af5a926f05debe82bd1c' 'f5617b647c8597e2437b3899f520fdf65e0f277a' '6d41096d7df609992479d6a3a43bc60e21b8e165' 'd542f5bfa3e4e16aac6141abdd44bb8a2a6f0761' 'b1f5886cca25a6957b5541031376e2c06c5bd621' '79b8a705e26c08f8f09dd55f1dd56f2375973d2d' '27f5e88fdc8ab577dbff389085ae6ad41e994ae7' '1455b3857ca2d05966005f7172210f6bd00048c3' '3d5f026256d985e8b81e7657a5430a9ff14e651c' 'fd6bc2ba410bf7828dc2104bf78b51ccbb216c40' '25baeacd9c6307830e2ed9f586f81fc23d4d1002' '862123a0a41647bd130a2d0edefc76a52dc8b8f8' '69e35d9bfd6ba2837fe18bebf97ea747ceb110d5' '2d2223d742d968fec77ed056db9f158e7cb3ca94' 'edca7ad57c50483ec81ab5b74ff1d71dca62e5cb' '06d07a4f5b98c71c696fa8f8718050b656ab99ba' '697c58941c0a0d1a5ea3f323cf0231018d3ec4b3' '294a60e5e9830045c161181286d44ce669f88833' 'bed97e35786a7d0141d1ecaaace03c46b5435d75' 'ccf2a77a5d1504ca95c1ae5f37ed184e62dcd2f2' '0d4291fa3a8945d97d26a6bac8a4068f116f2885' '3f97e52562dd1ad041f63c910a746eab695f40c1' 'c8c1ab2c5cb797fe455aa18b4ab7bf39897627f6' '99239dc5147ea4678e871e5c9d068a36f154558b' '38cc5b0bed6c57367dca3725d01857fa0876899a' 'feb849404a8b677aa6760d1539acf597e4574337' '522f5021cfb5a74e9b7aa3cbf365471f7a564c0a' '68084db5e7a5eb1e4901e2158565cfc59873756d' '2725c018785d52286dd5b4ff7e087d2ff455a1a8' '35492f84fbd6d790ad7f93bffaaa6823890c103a' 'eeb25b3ca1ef57d57906295d829febbd30cf4d8d' '521c04c6e32ac110d942fa0e11bea4b91cc3241d' '597acf1a04bede55e3ad8a7922bba286c11112d3' '93b1fefd8b1a004c6c8f8c92085e7bfb694dfe98' 'abcb9a1fd89144536f3ef604f700e94424867366' 'b73c2719c951868efc15181269a3caeb99157f29' '29664312a75e47f989ad32e43682746d8681a02b' 'a02c42d41af7d66db71ca43c52531c3253ebe35e' '9c914ef3b876a6f6c0059b4f4323fc1b76fa05e4' 'c6472392301fc15a09d5435f1f89421270aed81c' '7370a8fe5bd211042610ec200dcc83de5ccc50cd' 'd4ee06219f2fffb71e2a23fc5060fdd3c7bb2cf7' 'cc49a35ab19565c5eaef070755b6fba235f9d05a' '74da545ec6a8b41de96b4c350bb59dfe45c0d822' '04ea3e0d2e10642f0a0199081e9aa8fd5e1bbea6' '7d73a1beaa9428ed4da7786725fcb1a20fd371ab' '541e0b4947a92f4bf1d60ef7e55f0a254d9c41a0' '9002421ebb1409e2f47062722aad598b561cf9eb' '5fee78e517ce0765def9387659fc56a1d5532c60' '7304d1909080ef0c9da703500a97f46c98393fcd' '0526b0b88c3092e38ba2d05f480b66bd5a1e1004' '4586b056956995754e95456312b2a9ce36c8de21' '6575dd53217ee5686d48a35f48415b113518d2a9' 'c80956630fa077646f971ff5d3e9452339742def' '22e5c40fda71d0b6cdf83af9418403808d5d06bd' '4994da5c7fea1ede9b71ae66e3b906ea56b9a929' '7f3ed7ea52f21d5b8ecc01a17fb8f7209d337cbe' 'b99c850bd41e8f6f142bb24c3c2485043b552621' 'cc8e22b6b1622f44654a9ce70c1285c15c1b8414' '0f68f56ab7be101fc949177774107769e63f13e9' '5dc6b4a351de9804932c4475a2c73c22c0b59369' 'e15abfa60107f97fd8297faad8cc3dc4eae0b5cc' '22bbcab0a2a100827a26833b7cab16ae8b1a3f9e' 'fb44bd4902cd5df526ad432015edcfaf163999e2' '6cc4d2c11537d66e9d4a7356a576f1bea6f4009f' '795aad6b179de4c3f68b18132bd183931d09c462' '711035c043b3a5116860b3a25d808572f70e1dc1' 'ed86f7b7e5f676c24ba0ddd86de6614a4b69a9e4' 'c417a7cf976eb8ecd8ebca439ec0cb0fe9ddc7ec' '47c59833c42a99bd27826f4f369bf4bb433c7ff9' '1c418cf146380031b13b6fde02f944830e5b9155' 'ad3993c449637fcec1e05bd2b63c24d34cb82243' 'e2bcc61a4481c3de4747014895cef45d701956bf' '9b9cbc6b4fa312d963f4373e88b6e27106f2051a' '8f5ae83953335d9c4c8d1cb698b87cea1ac8aeca' '9aa85f433bb1f51b599278b29b3d6224ca5147cf' '48d5e50e4fe78bf9cc5b4eca72798d4507da62fb' 'dc946ef548aeeea258b040087b88c9b7fae5cb6d' 'e5f0c2ad987b494ab94bcb1331667d189249f234' 'a06ef7754b8e6f45d78c0015c3edb2117945adfb' 'a212edb16ca0698c488c6adfa6854224666c8cc1' 'f8ca280bf5c2a3fb08890bdd212a3f3c00589f87' '952b334dcfcf641a6290b876bdc226c23772287e' 'bb0b8a07192d86b291c5b13fb64ef984930f8ea6' '90fd7bb1af1733685f0aece12dd7264d4ef68422' 'bc17eaf1b925595fb9f945ced5d70fe82ce11e78' '4869417f4a2b010e9ee00f611265f551a47e4f1a' '0c57e55719681412e87db7bb81b8255b43d6162f' '74f6e045d879414ae4c352dc7f4e8d438ea9d55d' '4d34ea6709894243d55ae6a6b63834851f9c5d6f' '1fca457c22a277ba47ae1bdd2a09d42926a5beed' '668db717850296122fa0e2aff471cd20a722e0c5' '0b74ed5533c87db1abe3967e3a370bc3046892c7' 'd17b39f6d3e635b039314726fbc66dcef286ed79' '7f15da9a55d3ba9f8c3af545246a4588102a38db' 'a018b6601c47e7d989f1fe5c175325f85dceb264' '9261d67d8bd2d9e787ceee8ff593f105bb3f5176' 'fad200733e5026b103ec2504ad3dfc2843216cc8' '85188e3bd7cb4141181f24a59f9057c38ffa37bf' 'e9d9a43e3f00b9313013b78d915a1f97dd215bf5' 'dfdc0debf1b82354e301843f8cbd16eaf05a01c6' '67f2243f2b1f1936c4dc22897289f5815a0e224a' '0ad3a7d311f0e93f2e838b4e47a7da57c501d737' 'b9dde447dd27f1b3ca21e07da1d885fd342cfa62' 'e9ab4b38205a34fffe537b4db721458b5d07066e' 'c974655b0c7f82a760bd22d9ef9db281e765a9a2' '8450fa6b16e2f46f5b880e0b80d55ab9fc4524ca' 'd3a37a664ebe57471bd7ab2486dd3072a9c07378' '461deb4911f39e455756cbc42928b12b04e82851' '2f8b07842e9e95122b848727ea73504a035e7c12' '92acd9f7409d2939e5fef8bde5ad527b9e525229' 'dee14c5b6d29886255c4a54599590d49fc1754be' '46dbe25747fca3d82e98dca488fa9be6b809d522' 'df95f0157ba1ea7b73b3f1db4abfdb4b05e0bfd9' '2f120ee8026ab9630dc7f93dd4bafdcd56c82056' '24684cc2060150afd7a1ea47c586f9c09330633c' 'ed4bef1d52ce0d6c96a86b6a470d6777034c564c' '941abe67e176a3ddbe59cd4323b13f69515f6628' '5cfb2f62242b41e2b60cadf21b28ee43cf615ec2' 'b26c604a0dcef62e7c61bd1d560c63547c9bbfe8' '4be54b6bdafad7656fd85c1fa6b7bebb7700a3d2' '24a4302478118ff1caf39fb48809c0127f608664' '6de7c4def7a6bf967d6603f7e1abda5231ccc312' '4d20a35acef6fb8c42eff953a11759e94710ba8b' 'f1205656ef2334e860ced588e76dd88119394166' 'e759aeeb1d09147891e08682df3a70dfbd15724a' '9c7cf29bdb11cfdd1b59d1ea1eb852245b26e93a' 'fc0a8ee9921f50ac23b3264846720d1d15be539e' '1a126668ab0946ebb7d1450742cd14775aa298fa' '2d5e9d40998b441485376b8729c69073d8f2ab9d' '1b16920e651d11811ca4b3a5d92cfb3d817b1a14' 'dfc6b8ccb1bb8d591cd26571e554208fc4af7d0c' 'e42ec97657fa5ee40fd2358c973d273edd7999bd' '739f4f44dc42b866090297adc1f007ffcdefb602' '3c2e63a3a0efa8c52f9fd67f58a71af48957ca7a' '5f2d29942c82d229dbdafe4bd21585d1b67f31ee' 'b89d9d26fb6cbc9f6e0aae72a2a76b5d8e5f1023' 'd21e3b442ff6401511831ae1b8be11d530f063de' '420663ae8fa2d70d2b824848763ca15bb5b2b585' '2920be2fabcb8010fefdf101d84fe0867730d925' '2281565db79b5fd6b539e73a28e73fc960ee34d4' '1b94f3874d61b34febd5ddf3482a90107dc80082' '9fde82ea39a7f52c23de366c8592d4805634f45c' '474cd6355413b264087ddc66b1dbc6c7e59fb76f' '6f8ac982806a104e4e816e12279d85440b6f703f' '042ecb2ab2361f77b34a7d3c642bd378f6ecc73a' 'f61c11db0f598eed6dd35a2d700ca54c6c74af4a' 'b3a3eda6cb30f21b818f40795468ff0a9f629990' '4042bb6e973aded1de6ce83436804a90181d6357' '739db0529c2a3ac5a0dc3e5a76a46ce80735dcfa' 'a3c86259f8a402aa050fc5f3039f94c7872e4657' '1ef8b1c830a0b5a6600d803a8bbeb7179d3ca4da' 'b865e0823cbffb747173b7dd4f4c8d82491d111f' '40213f8d5b498f5eb2f3297ee0f9c84d98737ee9' 'bd178280c7d967e87e217b51c0647a2bfdf5deec' 'ea38f63c4afdd5531fbd8f0f881594a94c4bd413' 'a1cadae42c9bc52cff24b22b0c4986be8d82ae16' '5a84cbb03094fd903ed79ca6c06e558821a69be4' '231bf041d425a086ec08231c98cf02b6fb16b169' 'e41ebb0a1f8bff63c8e333eec34ff64e748227d0' 'b50e5b9694e2a4355f2abeaa711dae5190661c27' '3165df2f130d567e6cf05d789ecc28810519e5f7' 'acac29fa62a8b738569a99da2f6458bc21aa55ae' '84f32702f3efe02c2622b9151d4e08c436249a8c' '7177a7a8e10d7722d0b9d4be4eea7dde014527b9' 'e23d68d7d3b35a44eb83d834b65cd28ca08844ec' '60143172c63daa49fef6eb9daa066fb7f1360bbe' 'f9ef0947ba848467e4dcca6b5ab3a4ff2e218df6' '0d41068ca151a6368ab4591c13e9a7a9fb92a56f' '30e03871146129acb75adac48405c203f5bdb3c2' 'b686559772d1baa28e2ad346d5a9932863d9523c' '0440f938aacf54a3e7dc67cd898f76bbd371da49' 'e7795c17b82684afb9390b8788f781c07be1a368' 'a859d2383f66002a442218bf5083faaa674bc4e4' '689e4d5fd8a76c676f04bc8916d78ca5db3130db' '5e9f822c9c683ae884fa5e71df41d1647b2876c6' 'c5c4ce6612bb25ce6d6936d8ade96fcba635da54' '6ddd1159825c516b8f64fda83177c161434141f5' '1455f0badd6345b2606bafb32e719d252293ebcd' '579a20181cf2e9ddc2f1265ee4976a0e2631fd5d' 'c173b5ee81a25e8aafb21ccdb7ab457da7783bf1' '0bd862846e7f89910252cbef8718a757950f1683' '3e706be02befae55b50b240d4360b5993f9879a8' 'd9d71a6e2d19a2f3ccebea0092b8ddc1e935886f' 'b26205e172ca035e327e49edb0c2611e5d2ede8d' '69aaab0e65e9bd7601740c1e14cc6de86dafb621' 'd0343fdb567dddaa74ac1b7b6994fd70100a0f6e' 'c143755d8cce31e770234732ff23134993b0550f' 'fd80df352ba1884ce2b62dd8d9495582308101b7' '79ed408b2402e8113aa5a298f3bb9088ede58f6c' '28c12866c22c2826ccbd8c82dc353f02ab2deea5' '825687c1662c53ecda991adf0ecfd8dd3d864043' 'e3f7caf74b795621252e3c25b4a9fb6888336ef1' 'be1e3607f29a5a182eaa70e3058aef32fd0cc4f8' 'a54a659f5cc25e3b23ab19af08d0b23488bd9f4e' 'a206376b425472c7c3a824f47a9967a4c97ae32c' '1d2e01d53a8ebfffb49e8cc656f8c85239121b26' '62142da241a08006f89b0620f7291e3a08c0a094' '7ed7065dfbbac1b5405a0c8029299847e408cf97' '1b8b6dd0c91b7db58e344f01781932458ac43da3' '55a1abd6e76ce91eb6049f32efec3a8506686748' '32fcd1b9c397ccca7fde2fcbcf4fc7e0ec8f34aa' 'dc64e1b9da22496b5867f90315ac406be041db15' 'bf1800073f4d55f08191b034c86b95881e99b6fd' 'b80fd34df2580f2c7a99e7188d68515bcf779714' '38399716e353776dca7f04dbae98a07af68f2880' '6542db20caf4987b938ed8feec07d199779823f2' '390ebb24b3c3a95e109c28e14c2ec9fe3f0f8aaa' '63d93f4d0f38fbb95a55729fbd2cc4920743931c' 'f9d4f699751f0389e57f26382174334670b8276e' 'd909b8d13a13d0197877e16aaaa3b2fcbb502858' 'ef6a24c79d5047c029577113af43eddd1d0f1bd2' 'f00b3056843d14754ac1bab2106cf5599680f115' '22254fca9bc7655801ad5f2af15729e44d28b85c' '3e7b375752b5e4de56e92dfb9c43309cd985b869' '7d87bde21c73731ddaf15e572020f80999c38ee3' '1c4749873bd0f769a47372636a428484e7035f59' 'c1e42ec04197ac013d049dde40d9c72cf543b5f6' '8fd0e127d8da856e34391399df40b33af2b307e0' '5a09e179024e76afdf9ad3a6ae767b4e06884ea8' 'a5a3de8990f47f4c54ca5daeeea8ff7daa42f9de' '4c32ebcc8650ce506632a32136993c85537fb01a' '76e013152891a69dfe68a28706a51a7df9ed4c42' '10188a25c9b5944c0a912482011b484b7c2e22d4' '28feec15fa285e561c626b3490bc5a10f5d177c8' '0dffacbbf8d044456d50c893adb9499775c489f4' '1877c3e7937fb2b9373ba263a4900448d50917b7' 'a4217a03686989c4a79530fe54fa17576aff7330' 'a9409fcb979eaff401837b955b234ca1ee05fdbd' '81eb3a2bd273b84fa9808e6b13b533f9c55e16eb' 'c321a4d705a31a50d7580516422aaa5b853e7602' '8c6ede5cc4226fd841f252d02ab0372cb92ee75c' '4c43a930e3e165ca6890147a309508ccb6768faf' '758beab0252912395efb79f34095c5ae7e3e58b1' '18311a766c587fc69b1806f1d5943305903b7e6e' '2fa56dae1a65e8124d417a31d7b02c37df013817' '91b75129149429bb16927cda8b5642c04c59e6b0' '99e297cdd338b8a18c986ed4e088676579b7fe96' 'a103b833ac3806b816bc993cba77d0b17cf801f1' '10efa807929084a8a1c38655942a3bf83bce587a' '88e09306b7e0f8a9e9f9c729ac13ccd11ed9679d' 'a21cad9312767d26b5257ce0662699bb202cdda1' 'b47834ee4485bbdcc6d36f086ff61c3efd8870d4' '64899904d6103500ad01be7b763298dc939285ae' 'f3bfa0f07976a7996b6dedba21d2e0d164f08ce8' '2e2f89b184644f0e29f1ec0b4dcfd0361d2635cb' '42ae6e2559e63c2d4096b698cd47aaeb974436df' 'cb15abd47806b449e853caf43f41573c4c82fed3' '66d8e76e8e85a30fbf9809837e07e15a8c5ccb8b' 'c8d08464bce947ee060e0174a3f4e87503269d0c' 'f120cf33d2325fd95d063eccbff2e86ffc7f493a' '67ebf71236f2e7b0e4cf791700dcddc9eb8cf650' '40d05927830227f2a1701c61e8bbe65287a03490' 'e211adcf36d0ccdd31af7398af4725a47d74b3d4' '135c6af1cac5465529469700d16c0c44b24ce317' 'a261d77fec147b9974aacca8ae8f0693feede838' '8f969537149d672d40a0e75a83f39451a5402780' 'c893ee3f95f16fcb98da934d61483d0b7d8ed568' 'd1a09c610027e446ed30c21f61c2f2443bf92a3f' 'a78f244a9150da0878a37a1b59fb0608b1ccfb9d' 'b20be2c77ce5341ded1a2d8aec119f6dca8ef1ad' '5d9fca12f54d3e25e02521aa8f3ec5d53759b334' '0770b7cc095e015af302f0758d3d85c7f17c719a' '3f02dedf1566858736f351a8d4a3ce91375e48f1' 'e0f421d73053eaeb441aa77054b75992705656c7' '5c7e4c4da8586d2ef55a11a9f4df626b8ea9a146' '783db6851c1821d8b983ffb12b99c279ff64f2ee' '9dc016eaba3a70febcd1db5f1a0beeb7430166aa' '9f25b6f2568d50c247a8e3b031a0a5caee8c17d2' 'e08fe24c34d37d00e84009f2fb4c35f5978041e6' '735049b801cf3d597752017385cfc8768ce44303' '7e1caa679686dde5c24d60b139f234568045758f' '6b06755af6679fd7c98ebc017ac31c8a74127538' '1c3b5f37409682184669457a5bdf761268eafbe5' 'f37f1748564ac51d32f7588bd7bfc99913ccab8e' 'bebe0afb74514ae51f4f348b28326c658b02209d' 'd64c4c3d1c578f98d70db1c5e2535b47adce9d07' '42da18e62652b58ba5ecd1524c146b202cda9bb7' '40b1f89a1691c4b7740bec2c868f1e4c60346353' '3aebbcba4baaa81bc8c83f2229ed8e774cf40618' '1248d29464cc682c2a1793cfc5d4ebeb374c6738' '08a66f55f7246d477b19620a953476dfc02beefc' '238c863eb3d3c6ed58493bacfd1f4b36bdcfa92f' '257a060fe219bb0dcb98f12ce34f04eca6d08352' '7f1186a8d738661b941b298fd6d1d5725ed71428' '11c1967f1a796bf2ff56a7118147f1d39d9f5ee0' '0c4a06395156d16ea33e959fccea84e4cfec04c4' '74e0fcbd705d4277267311f8f26a00bb8ce93820' '994719ed6d81a6f4677875ab6730254c0bc484ea' 'ae575d2145d1a2c8bb5d2835d7d54751f3b0bace' '828c0aa63706410503526d0ee522b9ac3232c86b' 'f22ba3561daa792dd138ed543e0bf48efe0b999c' 'ad0fbcebb5f6e093d433a0873758a2778d747eb8' 'e957c96455e8f4c630d5e374312cad0633ca7e17' 'd795a052b0ddad3da83dda6ff522c1b1aaa4a525' '91931af18bd22437e08e2471f5484d6fbdd8ab93' 'ff4d4158ef9143327a42f7be4298751cb0d1be69' 'fcd7ace9a725ae034ff9f24cb94c9fe12a1f02da' '21aa330fec31bb530a4ef6c9555fb157d0711112' 'ad1212a9cc24b740b2711014933fac6ace32aa2d' 'f46eb2bfb878ce3345725252f77fa3ba36a0f087' 'c5528214c7c0a753c908a7b353309ba665985fb4' 'e97d06cb4386af4e069a2dc713de70500538d0bd' 'd1541caab053cf94b114582a23b51a8cb90f4a46' '3c331bdeececb629669961a80c0f929301c088d2' '330cbb40bb3664a18a19760bd6dc6003d6624041' '447c98c1ca4a4b0d43be99f76c558c09956484f3' '5132681dcd96b2a8c357b6e5d93e9876924bb80b' '005859a2cf7aa349fbbfe433ab1769b15c535b72' '700a281905f2a4ccf6f3b2d3cd6985e034b4b021' '563e40153a56cbfae8721f9591022df5d930f939' '629dd55cf77bd3a8f80049150d3c05fef6d3b468' '651e0ed391b148f83afba0bfbd8a56e38e58c34d' '07e3e514dd385300bd08da4a8df09240d272821e' 'd7231be4b4657e5f922a4c6dc11e8dffc71fee87' 'f98d42000216677d177384f202ff1cc896a7395f' '645753d01356ff1a756812f1c69c53eb5c9081cd' '5a19e1985d014fab9892348f6175a19143cec810' '896530b7b0c08ee8b3296d5f012bfe1b0a979b86' 'ebb398ae1e052c4245b7bcea679fe073111db2ce' '5c93b20f6de4478e1fbcfb38eb46738bca74180e' 'f87c2a275033120e15213f3d65234d98e726c4b7' '19f6748abbab8523a7b32a5e371e39d4d8d4aba5' '42b144cb6a2d87385fa0b124c975d6cf1e3ec630' '8e02d188698851436f76038ea998b726193d1b10' 'e1101373df5cd7672d988bb4e9cdd5eb97003165' '9ee6d50ae4b0fe14ed70a5265a05874d41e10848' '9da195880f167ab7c2d595388decf783c9920121' '64fb5af1d1bbcf1b808e9bb092b22fa1b691ae63' '45e02edd8422b6c4a511f38403dbd805cd139733' 'e80b8e5c53c30df1cba45258d10b04872b7eea67' '6cf5df1040ba0694aea6a5edc6f31811a442ea36' '83f37ba7b76ab17e029ab4127ec64ccccce64c00' '996bf834d0b61cb5a1389356c1ed7db1230139d7' '43d6140cedad9f031b47dfde6f85856e007b3f04' '491628388005a26c02d6827e649284357daec213' '187150671d83324f1ca56f7ab5e00f16a3b9f2a9' '1c35755f46423150e19ff57448786b4bb48fdb46' 'fcb754602724fa2a1d0db72f13ddc3ef0306f911' 'd0252b0b945ec67fd09fc764dcadf445fb7757ee' '31e3100d5e1fe69f944f84867be0cbfa5fd380c8' '0b6914a0121b4c9fc8f575b60a5dd43b74612908' '0eb8f83c055cb3461734710d1b1ce2dd4f01806e' '852c0b7204ded184924c41ab99b2ac7a70ad4dab' '4b36a47e2d989b98953dbfb1e97da0f0169f5086' '3898b189079c85735f57759b0d407518c01c745e' 'c878d5c1a525b88807d9d79888fe8340bcbf1aa3' '4bb5b6f13fd83b32c8a93fbd399e7558415d1ce0' 'fde277dbcf53be685d0b9976d636366c80a74da8' '91f505dc3a94c04421a2a51e8c40acf7ea67ecbc' 'e2ceac2f323625632f12dd5333092976298a0cde' '552f66c40134542f15d4302837e7d581a0b8e217' '638ad2bdb2f994c8bd99cc40e0c4796a8617ccf3' '7c0ea26c57b0bb72d503fe27d6533f5addc5e3a3' '0a27b2d7a224326fab543ca586d501fe1857b655' '4516be370ced14c4fb454fd6cc016e47bffe109e' '6547577e94ae3d9f8ff30d3267fe7ec394e3b20d' '605aab3b3ca83f58681841b2dd16d4a7baefde6c' '0fa0843db17ccd427fc7a23d313aafa88fc89e04' 'db746fff89a14419379226ce0df8b94f472cf38c' 'f1e91acacf86fb2cd7478af490326cb9aa63e8ae' 'a23ff143804d3b8c27157ffa19e48b4e22939115' 'f0703ce627a25b4a1307d8a92cfd6d6bf7e27e7a' '46ab7d80ed4f378e02cb249bd49a76026a2d683f' 'f2d161e5804d8da070988624b9edd179ef31b478' '6b8f162bd3fa82c3c1b3653100d04172c1dbd8a5' '153dbf4adad0082d030c30d20541df2b1af52db6' '96dd187c93afe0ae0535276a92ed488759ace5a2' 'cb161c333927142818d6bf22a4da2b023fb2b8c9' '583348bd65ceaf4a5067a6267dd236929e1b4b37' '5ea46b4360791345bd0bf4c7bf8fff5151374ea1' '0e9a970d7b2cb98d741bc0e32ad8c8f30c009c63' 'd959fed68e4d45ee80cbdd62976bda8da52ab8b1' '2466b62268c020606d20b45e007c166399e639ee' '0a7c85b516830c0bb088b0bdb2f2c50c76fc531a' 'c06c4f7cbea1d8dc71485bfddef2849a1b721e67' 'ecfcee245cc99def0f6bf84ac75ac372f8ab65eb' '4c7518062d638837cea915e0ffe30f846780639a' '3f78762d17701f0435ad958b2821dc3243ff34b3' '943116ba2a6ab472e8ad2d1e57a3f10f13485cc2' '062b7ef6b103dcbcb3c084e8ace8e74e260b2346' '9bbbf33a5ab84c0f3643f43350b0f473b60af5b8' 'a0ef5b4b101424b8a666ed56bf1717dafe2d37f5' '2d7395b23dbf4c2d60be49b73e4c4705fc446662' 'be61cd4242e4a53f5cf989ee7573121d041444bc' '72826381215e2f9d2bd2f32f63f76a80942b7fdf' '7796c97df6b1b2206681a07f3c80f6023a6593d5' '78e66dd5f32a1a8e5ee6decadd4e4dffa7d2c40d' '860693187c597645b28a421d8acb26428b8afd3f' '169ec0a541aac8afb215ab591b0fd53276686014' '8d83282e53185ec257a4ce08812e8fabee2c7212' '4d2ea16576c8aa1437048cf436bff85653f139fe' '74a0ca4c7f19f1b273d665b3b53f7ae8af879658' 'b3d993c7566fed1c027c5c18f3ef482ba8e6307a' '215705db51eb23052c73126d2efb6acbc2db0424' '185ac20a7b055e025027d303b63dab456b4f5d5e' 'c108905a7423d44237d17374f845fc5bb9cb9728' '6603c5133daadbb3277fbd93be0d0d5b8ec928e8' '3f75771987f32a9f512c8944e70e343f8c6d71c1' '678681828bf4abfd3c31f36390d2097682141d11' '25fac20edd09b60651eabcc57c187b1277f43d08' 'e27c125040b1e1f26d910b46daabbe55e67fdf3b' '8478dadc8148af311c3d43d4867cfb6632686ede' 'e3cd85963a20d2b92e77046a8d9f0777815f1f71' '652ffad172d089acb1a20e5fde1b66e687832b06' '8418753187ba216f8931432dd8a6ee2f23977ecd' 'b2f10aa2eb18d289e48097e0ed973e714322175b' 'fb6ec1d27608c008bfe1ab0dfec3720990eb2451' '4a91fe4c0d683c56044579fb263c660f5d18efac' 'e92f042642aed6f6206caace892d9df2d0166841' '1a4a5a752fcd60797ed2cb7c06253c6433d13f63' '6eab7034579917f207ca6d8e3f4e11e85e0ab7d5' '78683c25c80e54bf3e8015fdfb8cba2fcd03daa5' 'cbe37a4d2b3c25d2e2a94097e09b6d87461b8833' '79ebb596201c86712fe38b0ef73d25d07b932664' '7d92a38d67e5d937b64b20aa4fd14451ee1772f3' 'f0173cbe7fa79eafbdf32eed32337209f84ddacd' 'e995c51903384be1c7aead246dc30cb5244179ac' '320155a61f7fc810a915644e9e2a451bdcea90b1' '26a756fc10fac6f133ef47f12362a39769dfe24d' '856366dc924a9561dae39f252b45dfd6cc6895ce' '299ce4beaf714abe76e3ad106f2e745748f693e9' 'a05143a8f713d9ae6abc41141dac52c66fca8b06' '3c32a4386909e8023b3c49253fec33d267be16bb' 'f9a5c4b6afc79073491acdab7f1e943ee3a19fbb' '4343af66b8e1df1d3a2e6f1f8612506cb45b2afd' 'dc561ab16d8be9cbe8f07a49a7b2f5428fbcfeea' 'b9fb91692af881736f8fa1741fa0dbadf07d99ee' 'c9e9aa80022c6db71bc097a621a6145f39aa0ade' '9b32c86e40da792544c53076f5ec43f115e56687' 'd61009bd578ee7381a3cce5c506190ecb8f9d6e8' 'f5aab0438ef17f01c5ecd25e61ae6a03f82a4586' 'd2ead60d853189f8e5ec6b301fac1e60e0b4b47d' 'c1ac98492d1584d31f335d233a5cd7a4d4116e5a' 'ba54629287f58b22c1d37f80f1875373e4b51ea6' '89785306453ce6d949e783f6936821a0b7649ee2' 'c73be62caabbec6629689c705aea65e5ce364d5d' 'b5ec74c2aec76fbdff9bc16951455602e11902bf' '7ed1b265021dd13ce5619501b388e489ddc8e204' '5a6a461079decea452fdcae955bccecf92e07e97' '19d022d67d7353f0e6e9ba255435d3de93862ac4' '5b4288792ff246cf2bda0c81cebcc02d1f631ca3' 'f9cbf56b0a1966d977df87d15a5bdbff2c342062' '995cf0e014b0144edf1125668a97c252c5ab775e' '3ce6f4f943ddd9edc03e450a2a0d89cb025b165b' 'f76ad354146d773d4cad436bb9004d230bffd6dd' '02d4a97ce30c0494ce6a614cd54d583caa0f8016' '5e36be5973b6ac66198220365bffb7a3641038f9' '26d6fd81916e62d2b0568d9756e5f9c33f0f9b7a' '7e17e80c3a7eb2734795f66ba946f933412d597f'
# bad: [eea255893718268e1ab852fb52f70c613d109b99] Add linux-next specific files for 20250311
git bisect bad eea255893718268e1ab852fb52f70c613d109b99
# bad: [21b9e91ad0d8b7af26c672e73f02f786580d0821] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git
git bisect bad 21b9e91ad0d8b7af26c672e73f02f786580d0821
# bad: [c33b43555a71ff56ab56b4e6a6d7af564b1f471f] Merge branch 'perf-tools-next' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git
git bisect bad c33b43555a71ff56ab56b4e6a6d7af564b1f471f
# bad: [9571d285ee2a042d4c23def223a5821d928e3cb2] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
git bisect bad 9571d285ee2a042d4c23def223a5821d928e3cb2
# bad: [f122ed30288bc440d16c3daeb80295c666aabe29] Merge branch 'fs-next' of linux-next
git bisect bad f122ed30288bc440d16c3daeb80295c666aabe29
# bad: [f9d0f6a766b047038cbda245074792176ac5ab19] Merge branch 'next' of https://git.linaro.org/people/jens.wiklander/linux-tee.git
git bisect bad f9d0f6a766b047038cbda245074792176ac5ab19
# bad: [2a99396016d983cc7ed3d0bffda1478bc07d5bec] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git
git bisect bad 2a99396016d983cc7ed3d0bffda1478bc07d5bec
# bad: [c33b43555a71ff56ab56b4e6a6d7af564b1f471f] Merge branch 'perf-tools-next' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git
git bisect bad c33b43555a71ff56ab56b4e6a6d7af564b1f471f
# bad: [5aad1c83f92277e7ce9fe8793d42c388514638e2] foo
git bisect bad 5aad1c83f92277e7ce9fe8793d42c388514638e2
# bad: [8d9b729b3438703296d4a4f9ccc632dcb799056c] selftests/mm: add tests for folio_split(), buddy allocator like split
git bisect bad 8d9b729b3438703296d4a4f9ccc632dcb799056c
# good: [3f655316878130a97f835c3712346cbb4a80f990] mm/damon/sysfs-schemes: return error when for attempts to install filters on wrong sysfs directory
git bisect good 3f655316878130a97f835c3712346cbb4a80f990
# bad: [bcab1e6f685b1ad5a689bdc74d44d48c2c2738d2] mm/damon/sysfs: remove damon_sysfs_cmd_request_callback() and its callers
git bisect bad bcab1e6f685b1ad5a689bdc74d44d48c2c2738d2
# good: [03d1f3409023bcf340e2090d05b2ac4ae606c41b] s390: make setup_zero_pages() use memblock
git bisect good 03d1f3409023bcf340e2090d05b2ac4ae606c41b
# bad: [7fc29589c8529696ad1349b14afc23284f1aecee] arch, mm: make releasing of memory to page allocator more explicit
git bisect bad 7fc29589c8529696ad1349b14afc23284f1aecee
# bad: [fe7e7f9c702bf45fb8a14c47099b3766a6fc7c39] arch, mm: set high_memory in free_area_init()
git bisect bad fe7e7f9c702bf45fb8a14c47099b3766a6fc7c39
# good: [20ffecb95d1cfe7fd89208ec3783c23d56307e22] arch, mm: set max_mapnr when allocating memory map for FLATMEM
git bisect good 20ffecb95d1cfe7fd89208ec3783c23d56307e22
# first bad commit: [fe7e7f9c702bf45fb8a14c47099b3766a6fc7c39] arch, mm: set high_memory in free_area_init()
Mike Rapoport March 11, 2025, 9:06 p.m. UTC | #2
Hi Mark,

On Tue, Mar 11, 2025 at 05:51:06PM +0000, Mark Brown wrote:
> On Thu, Mar 06, 2025 at 08:51:20PM +0200, Mike Rapoport wrote:
> > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> > 
> > high_memory defines upper bound on the directly mapped memory.
> > This bound is defined by the beginning of ZONE_HIGHMEM when a system has
> > high memory and by the end of memory otherwise.
> > 
> > All this is known to generic memory management initialization code that
> > can set high_memory while initializing core mm structures.
> > 
> > Remove per-architecture calculation of high_memory and add a generic
> > version to free_area_init().
> 
> This patch appears to be causing breakage on a number of 32 bit arm
> platforms, including qemu's virt-2.11,gic-version=3.  Affected platforms
> die on boot with no output, a bisect with qemu points at this commit and
> those for physical platforms appear to be converging on the same place.

Can you share how this can be reproduced with qemu?
Mark Brown March 11, 2025, 9:33 p.m. UTC | #3
On Tue, Mar 11, 2025 at 11:06:56PM +0200, Mike Rapoport wrote:
> On Tue, Mar 11, 2025 at 05:51:06PM +0000, Mark Brown wrote:

> > This patch appears to be causing breakage on a number of 32 bit arm
> > platforms, including qemu's virt-2.11,gic-version=3.  Affected platforms
> > die on boot with no output, a bisect with qemu points at this commit and
> > those for physical platforms appear to be converging on the same place.

> Can you share how this can be reproduced with qemu?

https://lava.sirena.org.uk/scheduler/job/1184953

Turns out it's actually producing output on qemu:

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.14.0-rc6-next-20250311 (tuxmake@tuxmake) (arm-linux-gnueabihf-gcc (Debian 13.3.0-5) 13.3.0, GNU ld (GNU Binutils for Debian) 2.43.1) #1 SMP @1741691801
[    0.000000] CPU: ARMv7 Processor [414fc0f0] revision 0 (ARMv7), cr=10c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: linux,dummy-virt
[    0.000000] random: crng init done
[    0.000000] earlycon: pl11 at MMIO 0x09000000 (options '')
[    0.000000] printk: legacy bootconsole [pl11] enabled
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 64 MiB at 0x00000000

- I'd only been sampling the logs for the physical platforms, none of
which had shown anything.

(you dropped me from the CCs BTW!)
Geert Uytterhoeven March 11, 2025, 9:41 p.m. UTC | #4
Hi Mark,

On Tue, 11 Mar 2025 at 22:33, Mark Brown <broonie@kernel.org> wrote:
> On Tue, Mar 11, 2025 at 11:06:56PM +0200, Mike Rapoport wrote:
> > On Tue, Mar 11, 2025 at 05:51:06PM +0000, Mark Brown wrote:
> > > This patch appears to be causing breakage on a number of 32 bit arm
> > > platforms, including qemu's virt-2.11,gic-version=3.  Affected platforms
> > > die on boot with no output, a bisect with qemu points at this commit and
> > > those for physical platforms appear to be converging on the same place.
>
> > Can you share how this can be reproduced with qemu?
>
> https://lava.sirena.org.uk/scheduler/job/1184953
>
> Turns out it's actually producing output on qemu:
>
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 6.14.0-rc6-next-20250311 (tuxmake@tuxmake) (arm-linux-gnueabihf-gcc (Debian 13.3.0-5) 13.3.0, GNU ld (GNU Binutils for Debian) 2.43.1) #1 SMP @1741691801
> [    0.000000] CPU: ARMv7 Processor [414fc0f0] revision 0 (ARMv7), cr=10c5387d
> [    0.000000] CPU: div instructions available: patching division code
> [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
> [    0.000000] OF: fdt: Machine model: linux,dummy-virt
> [    0.000000] random: crng init done
> [    0.000000] earlycon: pl11 at MMIO 0x09000000 (options '')
> [    0.000000] printk: legacy bootconsole [pl11] enabled
> [    0.000000] Memory policy: Data cache writealloc
> [    0.000000] efi: UEFI not found.
> [    0.000000] cma: Reserved 64 MiB at 0x00000000
>
> - I'd only been sampling the logs for the physical platforms, none of
> which had shown anything.

Hangs that early need "earlycon", which the qemu boot above does have.

Gr{oetje,eeting}s,

                        Geert
Russell King (Oracle) March 11, 2025, 9:44 p.m. UTC | #5
On Tue, Mar 11, 2025 at 09:33:29PM +0000, Mark Brown wrote:
> On Tue, Mar 11, 2025 at 11:06:56PM +0200, Mike Rapoport wrote:
> > On Tue, Mar 11, 2025 at 05:51:06PM +0000, Mark Brown wrote:
> 
> > > This patch appears to be causing breakage on a number of 32 bit arm
> > > platforms, including qemu's virt-2.11,gic-version=3.  Affected platforms
> > > die on boot with no output, a bisect with qemu points at this commit and
> > > those for physical platforms appear to be converging on the same place.
> 
> > Can you share how this can be reproduced with qemu?
> 
> https://lava.sirena.org.uk/scheduler/job/1184953
> 
> Turns out it's actually producing output on qemu:
> 
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 6.14.0-rc6-next-20250311 (tuxmake@tuxmake) (arm-linux-gnueabihf-gcc (Debian 13.3.0-5) 13.3.0, GNU ld (GNU Binutils for Debian) 2.43.1) #1 SMP @1741691801
> [    0.000000] CPU: ARMv7 Processor [414fc0f0] revision 0 (ARMv7), cr=10c5387d
> [    0.000000] CPU: div instructions available: patching division code
> [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
> [    0.000000] OF: fdt: Machine model: linux,dummy-virt
> [    0.000000] random: crng init done
> [    0.000000] earlycon: pl11 at MMIO 0x09000000 (options '')
> [    0.000000] printk: legacy bootconsole [pl11] enabled
> [    0.000000] Memory policy: Data cache writealloc
> [    0.000000] efi: UEFI not found.
> [    0.000000] cma: Reserved 64 MiB at 0x00000000
> 
> - I'd only been sampling the logs for the physical platforms, none of
> which had shown anything.
> 
> (you dropped me from the CCs BTW!)

That's because your emails contain a "Mail-Followup-To:" header.

Please read:

https://datatracker.ietf.org/doc/html/draft-ietf-drums-mail-followup-to-00.txt

particularly 2.4.

In effect, by including this header, you asked to be dropped.
Russell King (Oracle) March 11, 2025, 9:59 p.m. UTC | #6
On Tue, Mar 11, 2025 at 05:51:06PM +0000, Mark Brown wrote:
> On Thu, Mar 06, 2025 at 08:51:20PM +0200, Mike Rapoport wrote:
> > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> > 
> > high_memory defines upper bound on the directly mapped memory.
> > This bound is defined by the beginning of ZONE_HIGHMEM when a system has
> > high memory and by the end of memory otherwise.
> > 
> > All this is known to generic memory management initialization code that
> > can set high_memory while initializing core mm structures.
> > 
> > Remove per-architecture calculation of high_memory and add a generic
> > version to free_area_init().
> 
> This patch appears to be causing breakage on a number of 32 bit arm
> platforms, including qemu's virt-2.11,gic-version=3.  Affected platforms
> die on boot with no output, a bisect with qemu points at this commit and
> those for physical platforms appear to be converging on the same place.

I'm not convinced that the old and the new code is doing the same
thing.

The new code:

+       phys_addr_t highmem = memblock_end_of_DRAM();
+
+#ifdef CONFIG_HIGHMEM
+       unsigned long pfn = arch_zone_lowest_possible_pfn[ZONE_HIGHMEM];
+
+       if (arch_has_descending_max_zone_pfns() || highmem > PFN_PHYS(pfn))
+               highmem = PFN_PHYS(pfn);
+#endif
+
+       high_memory = phys_to_virt(highmem - 1) + 1;

First, when CONFIG_HIGHMEM is disabled, this code assumes that the last
byte of DRAM declared to memblock is the highmem limit. This _could_
overflow phys_to_virt() and lead to an invalid value for high_memory.

Second, arch_zone_lowest_possible_pfn[ZONE_HIGHMEM] is the _start_ of
highmem. This is not what arch code sets high_memory to - because
the start of highmem may not contiguously follow on from lowmem.

In arch/arm/mm/mmu.c, lowmem_limit is computed to be the highest + 1
physical address that lowmem can possibly be, taking into account the
amount of vmalloc memory that is required. This is used to set
high_memory.

We also limit the amount of usable RAM via memblock_set_current_limit()
which memblock_end_of_DRAM() doesn't respect.

I don't think the proposed generic version is suitable for 32-bit arm.
Russell King (Oracle) March 11, 2025, 10:05 p.m. UTC | #7
On Tue, Mar 11, 2025 at 09:33:29PM +0000, Mark Brown wrote:
> [    0.000000] Booting Linux on physical CPU 0x0
> [    0.000000] Linux version 6.14.0-rc6-next-20250311 (tuxmake@tuxmake) (arm-linux-gnueabihf-gcc (Debian 13.3.0-5) 13.3.0, GNU ld (GNU Binutils for Debian) 2.43.1) #1 SMP @1741691801
> [    0.000000] CPU: ARMv7 Processor [414fc0f0] revision 0 (ARMv7), cr=10c5387d
> [    0.000000] CPU: div instructions available: patching division code
> [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
> [    0.000000] OF: fdt: Machine model: linux,dummy-virt
> [    0.000000] random: crng init done
> [    0.000000] earlycon: pl11 at MMIO 0x09000000 (options '')
> [    0.000000] printk: legacy bootconsole [pl11] enabled
> [    0.000000] Memory policy: Data cache writealloc
> [    0.000000] efi: UEFI not found.
> [    0.000000] cma: Reserved 64 MiB at 0x00000000

If that CMA address is correct, then it's wrong. virt machines start
DRAM at 0x40000000. This is a small memory VM:

[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000040000000-0x0000000045ffffff]
[    0.000000]   HighMem  empty

and this is a larger memory VM:

[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000040000000-0x000000006fffffff]
[    0.000000]   HighMem  [mem 0x0000000070000000-0x000000007fffffff]

Neither have CMA enabled (it's not necessary for a VM).

On a real platform where CMA and highmem is enabled, then:

[    0.000000] cma: Reserved 16 MiB at 0x4f000000 on node -1
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000010000000-0x000000003fffffff]
[    0.000000]   HighMem  [mem 0x0000000040000000-0x000000004fffffff]

So that "cma:" line you are seeing is indicating that something is very
very wrong - it should definitely not be zero.
Mike Rapoport March 12, 2025, 6:34 a.m. UTC | #8
On Tue, Mar 11, 2025 at 09:59:32PM +0000, Russell King (Oracle) wrote:
> On Tue, Mar 11, 2025 at 05:51:06PM +0000, Mark Brown wrote:
> > On Thu, Mar 06, 2025 at 08:51:20PM +0200, Mike Rapoport wrote:
> > > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> > > 
> > > high_memory defines upper bound on the directly mapped memory.
> > > This bound is defined by the beginning of ZONE_HIGHMEM when a system has
> > > high memory and by the end of memory otherwise.
> > > 
> > > All this is known to generic memory management initialization code that
> > > can set high_memory while initializing core mm structures.
> > > 
> > > Remove per-architecture calculation of high_memory and add a generic
> > > version to free_area_init().
> > 
> > This patch appears to be causing breakage on a number of 32 bit arm
> > platforms, including qemu's virt-2.11,gic-version=3.  Affected platforms
> > die on boot with no output, a bisect with qemu points at this commit and
> > those for physical platforms appear to be converging on the same place.
> 
> I'm not convinced that the old and the new code is doing the same
> thing.
> 
> The new code:
> 
> +       phys_addr_t highmem = memblock_end_of_DRAM();
> +
> +#ifdef CONFIG_HIGHMEM
> +       unsigned long pfn = arch_zone_lowest_possible_pfn[ZONE_HIGHMEM];
> +
> +       if (arch_has_descending_max_zone_pfns() || highmem > PFN_PHYS(pfn))
> +               highmem = PFN_PHYS(pfn);
> +#endif
> +
> +       high_memory = phys_to_virt(highmem - 1) + 1;
> 
> First, when CONFIG_HIGHMEM is disabled, this code assumes that the last
> byte of DRAM declared to memblock is the highmem limit. This _could_
> overflow phys_to_virt() and lead to an invalid value for high_memory.
> 
> Second, arch_zone_lowest_possible_pfn[ZONE_HIGHMEM] is the _start_ of
> highmem. This is not what arch code sets high_memory to - because
> the start of highmem may not contiguously follow on from lowmem.
> 
> In arch/arm/mm/mmu.c, lowmem_limit is computed to be the highest + 1
> physical address that lowmem can possibly be, taking into account the
> amount of vmalloc memory that is required. This is used to set
> high_memory.
> 
> We also limit the amount of usable RAM via memblock_set_current_limit()
> which memblock_end_of_DRAM() doesn't respect.
> 
> I don't think the proposed generic version is suitable for 32-bit arm.

Unless I'm missing something, both memblock.current_limit and start of
ZONE_HIGHMEM are set to arm_lowmem_limit which will be different from
memblock_end_of_DRAM() only for machines with more than nearly 4GiB of RAM
and those will supposedly use HIGHMEM anyway.

But this does not matter anyway because failures Mark reported happen
because 32-bit arm uses high_memory before mem_init() and that what causes
the hangs. 

Here's the fix I have, I'll send v2 shortly.

diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index e492d58a0386..f02f872ea8a9 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -1250,6 +1250,8 @@ void __init adjust_lowmem_bounds(void)
 
 	arm_lowmem_limit = lowmem_limit;
 
+	high_memory = __va(arm_lowmem_limit - 1) + 1;
+
 	if (!memblock_limit)
 		memblock_limit = arm_lowmem_limit;
 
diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
index 65903ed5e80d..1a8f6914ee59 100644
--- a/arch/arm/mm/nommu.c
+++ b/arch/arm/mm/nommu.c
@@ -146,6 +146,7 @@ void __init adjust_lowmem_bounds(void)
 	phys_addr_t end;
 	adjust_lowmem_bounds_mpu();
 	end = memblock_end_of_DRAM();
+	high_memory = __va(end - 1) + 1;
 	memblock_set_current_limit(end);
 }
 
diff --git a/mm/mm_init.c b/mm/mm_init.c
index 545e11f1a3ba..0aef4bef93c4 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -1765,14 +1765,20 @@ static bool arch_has_descending_max_zone_pfns(void)
 
 static void set_high_memory(void)
 {
+	unsigned long pfn = arch_zone_lowest_possible_pfn[ZONE_HIGHMEM];
 	phys_addr_t highmem = memblock_end_of_DRAM();
 
-#ifdef CONFIG_HIGHMEM
-	unsigned long pfn = arch_zone_lowest_possible_pfn[ZONE_HIGHMEM];
+	/*
+	 * Some architectures (e.g. ARM) set high_memory very early and
+	 * use it in arch setup code.
+	 * If an architecture already set high_memory don't overwrite it
+	 */
+	if (high_memory)
+		return;
 
-	if (arch_has_descending_max_zone_pfns() || highmem > PFN_PHYS(pfn))
+	if (IS_ENABLED(CONFIG_HIGHMEM) &&
+	    (arch_has_descending_max_zone_pfns() || highmem > PFN_PHYS(pfn)))
 		highmem = PFN_PHYS(pfn);
-#endif
 
 	high_memory = phys_to_virt(highmem - 1) + 1;
 }
diff mbox series

Patch

diff --git a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c
index ec0eeae9c653..3ab2d2f3c917 100644
--- a/arch/alpha/mm/init.c
+++ b/arch/alpha/mm/init.c
@@ -276,7 +276,6 @@  srm_paging_stop (void)
 void __init
 mem_init(void)
 {
-	high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
 	memblock_free_all();
 }
 
diff --git a/arch/arc/mm/init.c b/arch/arc/mm/init.c
index 7ef883d58dc1..05025122e965 100644
--- a/arch/arc/mm/init.c
+++ b/arch/arc/mm/init.c
@@ -150,8 +150,6 @@  void __init setup_arch_memory(void)
 	 */
 	max_zone_pfn[ZONE_HIGHMEM] = max_high_pfn;
 
-	high_memory = (void *)(min_high_pfn << PAGE_SHIFT);
-
 	arch_pfn_offset = min(min_low_pfn, min_high_pfn);
 	kmap_init();
 #endif /* CONFIG_HIGHMEM */
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index f02f872ea8a9..e492d58a0386 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -1250,8 +1250,6 @@  void __init adjust_lowmem_bounds(void)
 
 	arm_lowmem_limit = lowmem_limit;
 
-	high_memory = __va(arm_lowmem_limit - 1) + 1;
-
 	if (!memblock_limit)
 		memblock_limit = arm_lowmem_limit;
 
diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
index 1a8f6914ee59..65903ed5e80d 100644
--- a/arch/arm/mm/nommu.c
+++ b/arch/arm/mm/nommu.c
@@ -146,7 +146,6 @@  void __init adjust_lowmem_bounds(void)
 	phys_addr_t end;
 	adjust_lowmem_bounds_mpu();
 	end = memblock_end_of_DRAM();
-	high_memory = __va(end - 1) + 1;
 	memblock_set_current_limit(end);
 }
 
diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c
index 9c0b8d9558fc..a48fcccd67fa 100644
--- a/arch/arm64/mm/init.c
+++ b/arch/arm64/mm/init.c
@@ -314,8 +314,6 @@  void __init arm64_memblock_init(void)
 	}
 
 	early_init_fdt_scan_reserved_mem();
-
-	high_memory = __va(memblock_end_of_DRAM() - 1) + 1;
 }
 
 void __init bootmem_init(void)
diff --git a/arch/csky/mm/init.c b/arch/csky/mm/init.c
index ba6694d6170a..a22801aa503a 100644
--- a/arch/csky/mm/init.c
+++ b/arch/csky/mm/init.c
@@ -47,7 +47,6 @@  void __init mem_init(void)
 #ifdef CONFIG_HIGHMEM
 	unsigned long tmp;
 #endif
-	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
 
 	memblock_free_all();
 
diff --git a/arch/hexagon/mm/init.c b/arch/hexagon/mm/init.c
index 508bb6a8dcc9..d412c2314509 100644
--- a/arch/hexagon/mm/init.c
+++ b/arch/hexagon/mm/init.c
@@ -100,12 +100,6 @@  static void __init paging_init(void)
 	 * initial kernel segment table's physical address.
 	 */
 	init_mm.context.ptbase = __pa(init_mm.pgd);
-
-	/*
-	 * Start of high memory area.  Will probably need something more
-	 * fancy if we...  get more fancy.
-	 */
-	high_memory = (void *)((bootmem_lastpg + 1) << PAGE_SHIFT);
 }
 
 #ifndef DMA_RESERVE
diff --git a/arch/loongarch/kernel/numa.c b/arch/loongarch/kernel/numa.c
index 84fe7f854820..8eb489725b1a 100644
--- a/arch/loongarch/kernel/numa.c
+++ b/arch/loongarch/kernel/numa.c
@@ -389,7 +389,6 @@  void __init paging_init(void)
 
 void __init mem_init(void)
 {
-	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
 	memblock_free_all();
 }
 
diff --git a/arch/loongarch/mm/init.c b/arch/loongarch/mm/init.c
index 00449df50db1..6affa3609188 100644
--- a/arch/loongarch/mm/init.c
+++ b/arch/loongarch/mm/init.c
@@ -78,8 +78,6 @@  void __init paging_init(void)
 
 void __init mem_init(void)
 {
-	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
-
 	memblock_free_all();
 }
 #endif /* !CONFIG_NUMA */
diff --git a/arch/m68k/mm/init.c b/arch/m68k/mm/init.c
index 8b11d0d545aa..e03ac556c59e 100644
--- a/arch/m68k/mm/init.c
+++ b/arch/m68k/mm/init.c
@@ -66,8 +66,6 @@  void __init paging_init(void)
 	unsigned long end_mem = memory_end & PAGE_MASK;
 	unsigned long max_zone_pfn[MAX_NR_ZONES] = { 0, };
 
-	high_memory = (void *) end_mem;
-
 	empty_zero_page = memblock_alloc_or_panic(PAGE_SIZE, PAGE_SIZE);
 	max_zone_pfn[ZONE_DMA] = end_mem >> PAGE_SHIFT;
 	free_area_init(max_zone_pfn);
diff --git a/arch/m68k/mm/mcfmmu.c b/arch/m68k/mm/mcfmmu.c
index 19a75029036c..1750cf9f0369 100644
--- a/arch/m68k/mm/mcfmmu.c
+++ b/arch/m68k/mm/mcfmmu.c
@@ -168,7 +168,6 @@  void __init cf_bootmem_alloc(void)
 	memstart = PAGE_ALIGN(_ramstart);
 	min_low_pfn = PFN_DOWN(_rambase);
 	max_pfn = max_low_pfn = PFN_DOWN(_ramend);
-	high_memory = (void *)_ramend;
 
 	/* Reserve kernel text/data/bss */
 	memblock_reserve(_rambase, memstart - _rambase);
diff --git a/arch/m68k/mm/motorola.c b/arch/m68k/mm/motorola.c
index 73651e093c4d..312efcd4b353 100644
--- a/arch/m68k/mm/motorola.c
+++ b/arch/m68k/mm/motorola.c
@@ -472,8 +472,6 @@  void __init paging_init(void)
 	module_fixup(NULL, __start_fixup, __stop_fixup);
 	flush_icache();
 
-	high_memory = phys_to_virt(max_addr) + 1;
-
 	min_low_pfn = availmem >> PAGE_SHIFT;
 	max_pfn = max_low_pfn = (max_addr >> PAGE_SHIFT) + 1;
 
diff --git a/arch/m68k/sun3/config.c b/arch/m68k/sun3/config.c
index cd8af809e0ca..925818278e34 100644
--- a/arch/m68k/sun3/config.c
+++ b/arch/m68k/sun3/config.c
@@ -115,7 +115,6 @@  static void __init sun3_bootmem_alloc(unsigned long memory_start,
 
 	max_pfn = num_pages = __pa(memory_end) >> PAGE_SHIFT;
 
-	high_memory = (void *)memory_end;
 	availmem = memory_start;
 
 	m68k_setup_node(0);
diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
index 857cd2b44bcf..7e2e342e84c5 100644
--- a/arch/microblaze/mm/init.c
+++ b/arch/microblaze/mm/init.c
@@ -120,8 +120,6 @@  void __init setup_memory(void)
 
 void __init mem_init(void)
 {
-	high_memory = (void *)__va(memory_start + lowmem_size - 1);
-
 	/* this will put all memory onto the freelists */
 	memblock_free_all();
 #ifdef CONFIG_HIGHMEM
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 338b3c9fc5bc..99cefb58fba3 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -419,7 +419,6 @@  void __init paging_init(void)
 		max_zone_pfns[ZONE_HIGHMEM] = max_low_pfn;
 	}
 #endif
-	high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
 
 	free_area_init(max_zone_pfns);
 }
@@ -471,7 +470,6 @@  void __init mem_init(void)
 #else  /* CONFIG_NUMA */
 void __init mem_init(void)
 {
-	high_memory = (void *) __va(get_num_physpages() << PAGE_SHIFT);
 	setup_zero_pages();	/* This comes from node 0 */
 	memblock_free_all();
 }
diff --git a/arch/nios2/mm/init.c b/arch/nios2/mm/init.c
index 3cafa87ead9e..4ba8dfa0d238 100644
--- a/arch/nios2/mm/init.c
+++ b/arch/nios2/mm/init.c
@@ -62,12 +62,6 @@  void __init paging_init(void)
 
 void __init mem_init(void)
 {
-	unsigned long end_mem   = memory_end; /* this must not include
-						kernel stack at top */
-
-	end_mem &= PAGE_MASK;
-	high_memory = __va(end_mem);
-
 	/* this will put all memory onto the freelists */
 	memblock_free_all();
 }
diff --git a/arch/openrisc/mm/init.c b/arch/openrisc/mm/init.c
index 9093c336e158..72c5952607ac 100644
--- a/arch/openrisc/mm/init.c
+++ b/arch/openrisc/mm/init.c
@@ -193,8 +193,6 @@  void __init mem_init(void)
 {
 	BUG_ON(!mem_map);
 
-	high_memory = (void *)__va(max_low_pfn * PAGE_SIZE);
-
 	/* clear the zero-page */
 	memset((void *)empty_zero_page, 0, PAGE_SIZE);
 
diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c
index 2cdfc0b1195c..4fbe354dc9b4 100644
--- a/arch/parisc/mm/init.c
+++ b/arch/parisc/mm/init.c
@@ -562,7 +562,6 @@  void __init mem_init(void)
 	BUILD_BUG_ON(TMPALIAS_MAP_START >= 0x80000000);
 #endif
 
-	high_memory = __va((max_pfn << PAGE_SHIFT));
 	memblock_free_all();
 
 #ifdef CONFIG_PA11
diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
index 68d47c53876c..de34c40ccb21 100644
--- a/arch/powerpc/kernel/setup-common.c
+++ b/arch/powerpc/kernel/setup-common.c
@@ -957,7 +957,6 @@  void __init setup_arch(char **cmdline_p)
 
 	/* Parse memory topology */
 	mem_topology_setup();
-	high_memory = (void *)__va(max_low_pfn * PAGE_SIZE);
 
 	/*
 	 * Release secondary cpus out of their spinloops at 0x60 now that
diff --git a/arch/riscv/mm/init.c b/arch/riscv/mm/init.c
index 157c9ca51541..ac6d41e86243 100644
--- a/arch/riscv/mm/init.c
+++ b/arch/riscv/mm/init.c
@@ -295,7 +295,6 @@  static void __init setup_bootmem(void)
 	phys_ram_end = memblock_end_of_DRAM();
 	min_low_pfn = PFN_UP(phys_ram_base);
 	max_low_pfn = max_pfn = PFN_DOWN(phys_ram_end);
-	high_memory = (void *)(__va(PFN_PHYS(max_low_pfn)));
 
 	dma32_phys_limit = min(4UL * SZ_1G, (unsigned long)PFN_PHYS(max_low_pfn));
 
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index 7e64243693c9..08ebc9a9344a 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -161,8 +161,6 @@  void __init mem_init(void)
 	cpumask_set_cpu(0, &init_mm.context.cpu_attach_mask);
 	cpumask_set_cpu(0, mm_cpumask(&init_mm));
 
-        high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
-
 	pv_init();
 	kfence_split_mapping();
 
diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index 72aea5cd1b85..6d459ffba4bc 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -330,13 +330,6 @@  unsigned int mem_init_done = 0;
 
 void __init mem_init(void)
 {
-	pg_data_t *pgdat;
-
-	high_memory = NULL;
-	for_each_online_pgdat(pgdat)
-		high_memory = max_t(void *, high_memory,
-				    __va(pgdat_end_pfn(pgdat) << PAGE_SHIFT));
-
 	memblock_free_all();
 
 	/* Set this up early, so we can take care of the zero page */
diff --git a/arch/sparc/mm/init_32.c b/arch/sparc/mm/init_32.c
index 6b58da14edc6..81a468a9c223 100644
--- a/arch/sparc/mm/init_32.c
+++ b/arch/sparc/mm/init_32.c
@@ -275,7 +275,6 @@  void __init mem_init(void)
 
 	taint_real_pages();
 
-	high_memory = __va(max_low_pfn << PAGE_SHIFT);
 	memblock_free_all();
 
 	for (i = 0; sp_banks[i].num_bytes != 0; i++) {
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 05882bca5b73..34d46adb9571 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -2505,8 +2505,6 @@  static void __init register_page_bootmem_info(void)
 }
 void __init mem_init(void)
 {
-	high_memory = __va(last_valid_pfn << PAGE_SHIFT);
-
 	memblock_free_all();
 
 	/*
diff --git a/arch/um/kernel/um_arch.c b/arch/um/kernel/um_arch.c
index 6414cbf00572..f24a3ce37ab7 100644
--- a/arch/um/kernel/um_arch.c
+++ b/arch/um/kernel/um_arch.c
@@ -385,7 +385,6 @@  int __init linux_main(int argc, char **argv, char **envp)
 
 	high_physmem = uml_physmem + physmem_size;
 	end_iomem = high_physmem + iomem_size;
-	high_memory = (void *) end_iomem;
 
 	start_vm = VMALLOC_START;
 
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index cebee310e200..5c9ec876915e 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -972,8 +972,6 @@  void __init setup_arch(char **cmdline_p)
 		max_low_pfn = e820__end_of_low_ram_pfn();
 	else
 		max_low_pfn = max_pfn;
-
-	high_memory = (void *)__va(max_pfn * PAGE_SIZE - 1) + 1;
 #endif
 
 	/* Find and reserve MPTABLE area */
diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index 6d2f8cb9451e..801b659ead0c 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -643,9 +643,6 @@  void __init initmem_init(void)
 		highstart_pfn = max_low_pfn;
 	printk(KERN_NOTICE "%ldMB HIGHMEM available.\n",
 		pages_to_mb(highend_pfn - highstart_pfn));
-	high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;
-#else
-	high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1;
 #endif
 
 	memblock_set_node(0, PHYS_ADDR_MAX, &memblock.memory, 0);
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index 65fda406e6f2..442ef3facff0 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -41,9 +41,6 @@  void __init initmem_init(void)
 		highstart_pfn = max_low_pfn;
 	printk(KERN_NOTICE "%ldMB HIGHMEM available.\n",
 	       pages_to_mb(highend_pfn - highstart_pfn));
-	high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;
-#else
-	high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1;
 #endif
 	printk(KERN_NOTICE "%ldMB LOWMEM available.\n",
 			pages_to_mb(max_low_pfn));
diff --git a/arch/xtensa/mm/init.c b/arch/xtensa/mm/init.c
index 9f1b0d5fccc7..9b662477b3d4 100644
--- a/arch/xtensa/mm/init.c
+++ b/arch/xtensa/mm/init.c
@@ -164,8 +164,6 @@  void __init mem_init(void)
 {
 	free_highpages();
 
-	high_memory = (void *)__va(max_low_pfn << PAGE_SHIFT);
-
 	memblock_free_all();
 }
 
diff --git a/mm/memory.c b/mm/memory.c
index 126fdd3001e3..2351f3f6b9ed 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -113,14 +113,6 @@  static __always_inline bool vmf_orig_pte_uffd_wp(struct vm_fault *vmf)
 	return pte_marker_uffd_wp(vmf->orig_pte);
 }
 
-/*
- * A number of key systems in x86 including ioremap() rely on the assumption
- * that high_memory defines the upper bound on direct map memory, then end
- * of ZONE_NORMAL.
- */
-void *high_memory;
-EXPORT_SYMBOL(high_memory);
-
 /*
  * Randomize the address space (stacks, mmaps, brk, etc.).
  *
diff --git a/mm/mm_init.c b/mm/mm_init.c
index 50a93714e1c6..5e5f6ba73757 100644
--- a/mm/mm_init.c
+++ b/mm/mm_init.c
@@ -44,6 +44,13 @@  struct page *mem_map;
 EXPORT_SYMBOL(mem_map);
 #endif
 
+/*
+ * high_memory defines the upper bound on direct map memory, then end
+ * of ZONE_NORMAL.
+ */
+void *high_memory;
+EXPORT_SYMBOL(high_memory);
+
 #ifdef CONFIG_DEBUG_MEMORY_INIT
 int __meminitdata mminit_loglevel;
 
@@ -1756,6 +1763,20 @@  static bool arch_has_descending_max_zone_pfns(void)
 	return IS_ENABLED(CONFIG_ARC) && !IS_ENABLED(CONFIG_ARC_HAS_PAE40);
 }
 
+static void set_high_memory(void)
+{
+	phys_addr_t highmem = memblock_end_of_DRAM();
+
+#ifdef CONFIG_HIGHMEM
+	unsigned long pfn = arch_zone_lowest_possible_pfn[ZONE_HIGHMEM];
+
+	if (arch_has_descending_max_zone_pfns() || highmem > PFN_PHYS(pfn))
+		highmem = PFN_PHYS(pfn);
+#endif
+
+	high_memory = phys_to_virt(highmem - 1) + 1;
+}
+
 /**
  * free_area_init - Initialise all pg_data_t and zone data
  * @max_zone_pfn: an array of max PFNs for each zone
@@ -1875,6 +1896,8 @@  void __init free_area_init(unsigned long *max_zone_pfn)
 
 	/* disable hash distribution for systems with a single node */
 	fixup_hashdist();
+
+	set_high_memory();
 }
 
 /**
diff --git a/mm/nommu.c b/mm/nommu.c
index f0209dd26dfa..b9783638fbd4 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -42,8 +42,6 @@ 
 #include <asm/mmu_context.h>
 #include "internal.h"
 
-void *high_memory;
-EXPORT_SYMBOL(high_memory);
 unsigned long highest_memmap_pfn;
 int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;
 int heap_stack_gap = 0;