Occasionally, I will forget to link something from the mailing list in this post. To see my full mailing list activity (patches, reviews, and reports), you can view it on lore.kernel.org.
Linux kernel patches
-
Build errors: These are patches to fix various build errors that I found through testing different configurations with LLVM or were exposed by our continuous integration setup. The kernel needs to build in order to be run :)
drm/tidss: dispc: Explicitly include bitfield.h(v1)mfd: tps6594: Explicitly include bitfield.h(v1)md/md-llbitmap: Use DIV_ROUND_UP_SECTOR_T(v1)tpm: loongson: Add bufsiz parameter to tpm_loongson_send()(v1)nfsd: Avoid strlen conflict in nfsd4_encode_components_esc()(v1,v2,v3)Fixes for pmac32_defconfig after fb.h removal from backlight.h(v1)
-
Miscellaneous fixes and improvements: These are fixes and improvements that don’t fit into a particular category but are important to ClangBuiltLinux.
nilfs2: fix CFI failure when accessing /sys/fs/nilfs2/features/*(v1)
-
Stable backports and fixes: It is important to make sure that the stable trees are as free from issues as possible, as those are the trees that devices and users use; for example, Android and Chrome OS regularly merge from stable, so if there is a problem that will impact those trees that we fixed in mainline, it should be backported.
-
Warning fixes: These are patches to fix various warnings that appear with LLVM. I used to go into detail about the different warnings and what they mean, but the important takeaway for this section is that the kernel should build warning free, as all developers should be using
CONFIG_WERROR, which will turn these all into failures. Maybe these should be in the build failures section…compiler-clang.h: Define __SANITIZE_*__ macros only when undefined(v1)objtool: Ignore __pi___cfi_ prefixed symbols(v1)drm/pixpaper: Fix return type of pixpaper_mode_valid()(v1)drm/omap: Mark dispc_save_context() with noinline_for_stack(v1)mei: late_bind: Fix -Wincompatible-function-pointer-types-strict(v1)btrfs: Fix PAGE_SIZE format specifier in open_ctree()(v1)Kconfig fixes for QCOM clk drivers when targeting ARCH=arm(v1)
LLVM patches
Patch review and input
For the next sections, I link directly to my first response in the thread when possible but there are times where the link is to the main post. My responses can be seen inline by going to the bottom of the thread and clicking on my name.
Reviewing patches that are submitted is incredibly important, as it helps ensure good code quality due to catching mistakes before the patches get accepted and it can help get patches accepted faster, as some maintainers will blindly pick up patches that have been reviewed by someone that they trust.
Re: [PATCH 00/17] ASoC: Intel: avs: Adjust platform namesRe: [PATCH 5.4 00/23] 5.4.298-rc1 reviewRe: [PATCH 2/2] kbuild: userprogs: also inherit byte order and ABI from kernelRe: [PATCH v2 1/9] compiler_types.h: Move __nocfi out of compiler-specific headerRe: [PATCH v2 3/9] x86/cfi: Document the "cfi=" bootparam optionsRe: [PATCH v2 4/9] x86/cfi: Standardize on common "CFI:" prefix for CFI reportsRe: [PATCH v2 18/22] phy: apple: Add Apple Type-C PHYRe: [PATCH 1/3] Compiler Attributes: Add __assume macroRe: [PATCH v1 1/1] kexec: Remove unused code in kimage_load_cma_segment()Re: [PATCH net-next V2] net/mlx5: Improve write-combining test reliability for ARM64 Grace CPUsRe: [patch V2 2/6] kbuild: Disable asm goto on clang < 17Re: [PATCH v7 3/8] kbuild: keep .modinfo section in vmlinux.unstrippedRe: [PATCH v2 2/4] compiler_types: Add __assume macroRe: [PATCH v8 0/8] Add generated modalias to modules.builtin.modinfoRe: [PATCH] LoongArch: Fix build error for LTO with LLVM-18Re: [PATCH next] modpost: Initialize builtin_modname to stop SIGSEGVsRe: [PATCH] dmaengine: mmp_pdma: fix DMA mask handling
Issue triage, input, and reporting
The unfortunate thing about working at the intersection of two projects is we will often find bugs that are not strictly related to the project, which require some triage and reporting back to the original author of the breakage so that they can be fixed and not impact our own testing. Some of these bugs fall into that category while others are issues strictly related to this project.
clang-22 -Walloc-size in mm/kfence/kfence_test.c in 6.6 and 6.1Re: next-20250903 x86_64 clang-20 allyesconfig mmp_pdma.c:1188:14: error: shift count >= width of type [-Werror,-Wshift-count-overflow]Re: [PATCH -v1 1/2] x86/microcode: Add microcode= cmdline parsingRe: linux-next: manual merge of the kbuild tree with Lnus' treeRe: [jirislaby:devel 28/53] drivers/tty/vt/keyboard.c:1789:7: error: cannot jump from this asm goto statement to one of its possible targets[InstCombine] Strip leading zero indices from GEPRe: [Linaro-TCWG-CI] llvmorg-22-init-6898-gdf430c33a71f: Failure on aarch64Re: [drm-xe:drm-xe-next 11/13] drivers/gpu/drm/xe/xe_migrate.c:422:3: error: cannot jump from this indirect goto statement to one of its possible targetsRe: [GIT PULL] Immutable branch between MFD, Char and Crypto due for the v6.18 merge windowRe: [jgunthorpe:iommu_pt_vtd 8/34] ERROR: modpost: "__udivdi3" [drivers/iommu/generic_pt/fmt/iommu_amdv1.ko] undefined!PPC: Split 64bit target feature into 64bit and 64bit-supportRe: [linux-next:master 9765/10654] drivers/gpu/drm/xe/tests/xe_pci.c:214:2: error: initializer element is not a compile-time constantRe: [PATCH v1 1/2] LoongArch: Make LTO case independent in MakefileRe: [PATCH V2] LoongArch: Align ACPI structures if ARCH_STRICT_ALIGN enabledRe: linux-next: manual merge of the drm-xe tree with the drm-fixes treeRe: [RFC PATCH v3 6/9] NFSv4/flexfiles: Commit path updates for striped layoutsRe: [PATCH] rv: Fix wrong type cast in enabled_monitors_next()Re: [PATCH v2 2/5] KVM: Export KVM-internal symbols for sub-modules onlyRe: [PATCH v5] tpm: Prevent local DOS via tpm/tpm0/ppi/*operationsRe: Tool directory build problem..
Tooling improvements
These are changes to various tools that we use, such as our continuous integration setup, booting utilities, toolchain building scripts, or other closely related projects such as AOSP’s distribution of LLVM and TuxMake.
patches: tip: Drop drm/msm -Wsometimes-uninitialized patchUpdate patches (September 4, 2025)Revert "generator: yml: Disable CONFIG_DEBUG_INFO_COMPRESSED_ZSTD in Android configs"patches: tip: Drop mt7996 -Wuninitialized-const-pointer changepatches: Remove android15-6.6 (September 8, 2025)Disable ARM allyesconfig on 5.15 with clang-11 and clang-12patches: Drop backport of 87b07a1fbc6b5c23d3b3584ab4288bc9106d3274build-llvm.py: Add ability to override "true" argumentstc_build: kernel: Use virtconfig for arm64 profiling targettc_build: Enable '--conservative-instrumentation' for BOLT on Apple Silicontc_build: llvm: Handle some more deprecated BOLT option valuesUpdate stable anchor to 6.17Handle CONFIG_CFI_CLANG → CONFIG_CFIDisable arm64 big endian builds on -next and mainline
Behind the scenes
-
Every day that there is a new linux-next release, I rebase and build a few different kernel trees then boot and runtime test them on several different machines, including a SolidRun Honeycomb LX2, an Ampere Altra Developer Platform, four Intel-based devices, and an AMD-based device. This is not always visible because I do not report anything unless there is something broken but it can take up to a few hours each day, depending on the amount of churn and issues uncovered.
-
I continue to upload prebuilt, fast versions of LLVM for kernel developers and our continuous integration to use.
Special thanks
Special thanks to Google and the Linux Foundation for sponsoring my work.