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
-
Miscellaneous improvements: These are series or patches that do not really fit into any of the other categories I typically use with my reports.
-
-Wenum-conversion
: This warning occurs when one enumerated type is implicitly converted to another enumerated type, which is typically a bug, although it might not actually be a problem in practice if the used enum has the same value as the intended enum (which is the case here). It is still good to get it corrected, as the enums might not stay in sync.drm/amdkfd: Use proper enum in pm_unmap_queues_v9()
(v1
)
-
-Wimplicit-fallthrough
: Clang’s-Wimplicit-fallthrough
(enabled in commit dee2b702bcf0 (“kconfig: Add support for -Wimplicit-fallthrough”)) is more pedantic than GCC’s version, requiring all case statements to have afallthrough
annotation, not just ones that do not fallthrough tobreak
orreturn
. Clang’s version matches the kernel’s preference for switch statements, so keeping the kernel clean of these warnings is important, in case GCC ever allows a mode that conforms to the kernel’s preference.lib/maple_tree: Fix clang -Wimplicit-fallthrough in mte_set_pivot()
(v1
)
-
-Wunaligned-access
: This is a new warning introduced inclang-14
to help catch unaligned accesses on ARM, which can be expensive, as they have to go through the exception handler for fixups. The warning is quite noisy, so we shut it up for default builds, but we allow it to show up forW=1
to help prevent new instances from creeping in. This should eventually be enabled for default builds as well but cleaning up the instances will take time.Makefile.extrawarn: Move -Wunaligned-access to W=1
(v1
,v2
,stable backport
)
-
-Wunitialized
/-Wsometimes-uninitialized
: As always, Clang will catch uninitialized variables because GCC’s version of the warning was moved toW=2
, which people rarely test with, due to the noise. -
-Wunneeded-internal-declaration
: This is a really interesting warning that only Clang appears to have. When a variable is only used in a compile time expression (such as insizeof()
ortypeof()
), clang will warn about it, as the programmer might have intended to use it elsewhere. In this particular case, it is expected, but there have been other times where it is clearly a bug.mm/page_alloc: Mark pagesets as __maybe_unused
(v1
)
-
-Wunused-function
: This is not typically a Clang specific warning but in this case, only Clang caught it because GCC does not warn onstatic inline
functions in.c
files, whereas Clang does. We make Clang match GCC for a default build but Masahiro Yamada changed that behavior forW=1
to help clean up or fix unused code.ftrace: Remove unused ftrace_startup_enable() stub
(v1
)
-
-Wunused-variable
: Another warning that is not Clang specific but it impacts our builds just like GCC so it is important to clean them up.proc: Avoid unused variable warning in pagemap_pmd_range()
(v1
)
-
-Wvisibility
: This warning merely tells a developer that they have declared a type within a function, which cannot be used outside of the function. GCC has a similar warning, and like the past few warnings, it is important to fix all warnings that appear.thermal: netlink: Fix parameter type of thermal_genl_cpu_capability_event() stub
(v1
)
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] tools: Ignore errors from
which’ when searching a GCC toolchain` -
Re: [PATCH v3] seq_file: fix NULL pointer arithmetic warning
-
Re: [PATCH] kallsyms: ignore all local labels prefixed by '.L'
-
Re: [PATCH] include: drop pointless __compiler_offsetof indirection
-
Re: [PATCH 1/1] Drivers: hv: vmbus: Rework use of DMA_BIT_MASK(64)
-
Re: [PATCH] drm/amd/pm: fix enabled features retrieving on Renoir and Cyan Skillfish
-
Re: [PATCH] spi: Fix warning for Clang build and simplify code
-
Re: [PATCH] [PATCH] AARCH64: Add gcc Shadow Call Stack support
-
Re: [PATCH] KVM: x86: Fix pointer mistmatch warning when patching RET0 static calls
-
Re: [PATCH v21 2/2] dmaengine: tegra: Add tegra gpcdma driver
Issue triage 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.
-
Re: [PATCH 5/5] drm/stm: ltdc: add support of ycbcr pixel formats
-
[LLVM 15] Getting invalid-symbol-name-offset while linking with LLD
-
Skipping BTF generation for net/netfilter/nf_conntrack_h323.ko because it's a Rust module
-
Boot hang with certain PowerPC configurations after da0e5b885b25cf4ded0fa89b965dc6979ac02ca9
-
-Wgnu-variable-sized-type-not-at-end in include/linux/cgroup-defs.h
-
Re: [PATCH V3 4/7] drm/amd/pm: correct the usage for 'supported' member of smu_feature structure
-
Boot issue with CONFIG_ZERO_CALL_USED_REGS=y and _paravirt_ident_64()
-
[AArch64] Adds SUBS and ADDS instructions to the MIPeepholeOpt.
-
Re: kernel/trace/ftrace.c:7157:20: error: unused function 'ftrace_startup_enable'
-
Re: [PATCH v6 7/7] kernfs: Replace per-fs rwsem with hashed ones.
-
-Wattribute-warning in drivers/misc/habanalabs/common/firmware_if.c
-
-Wattribute-warning in drivers/net/ethernet/huawei/hinic/hinic_devlink.c
-
Re: BUG: Kernel NULL pointer dereference on write at 0x00000000 (rtmsg_ifinfo_build_skb)
-
Re: [PATCH v7 1/2] ACPI: APEI: explicit init HEST and GHES in apci_init
-
Re: [PATCH v20 2/2] dmaengine: tegra: Add tegra gpcdma driver
-
-Wpointer-type-mismatch in arch/x86/include/asm/kvm-x86-ops.h
-
-Wdeclaration-after-statement in lib/raid6/ with proposed -std=gnu11
-
[DAG] Attempt to fold bswap(shl(x,c)) -> zext(bswap(trunc(shl(x,c-bw/2))))
Tooling improvements
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 Windows Subsystem for Linux instance, a Raspberry Pi 3 and 4, an Intel-based desktop, an AMD-based desktop, and an Intel-based laptop. 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.
Special thanks to:
- Google and the Linux Foundation for sponsoring my work.