Repository navigation
dmaengine: qcom: gpi: match stale-event comparison width - #78
Conversation
|
Independent automated source review completed on 2026-11-09 using OpenCode with Verdict: APPROVE for the bounded source increment, with no blocking findings. The review covered both generic comparison normalisations, preservation of the configured Denali QSPI full-width path, and the source-extracted regression tests with three mutation controls. No code changes were required. Optional comments and broader fixture cases are deferred to keep this correction focused. The existing 99-case synthetic run, mutation controls, ASan/UBSan, and driver checkpatch checks passed. Linux source-regression CI remains successful at this exact head. This is an automated source review, not a GitHub writer approval or hardware qualification. The earlier review attempt produced no final verdict and is superseded by this completed round. Synthetic high-address coverage does not establish that the Surface allocates generic coherent rings above 4 GiB. The PR stays draft. ARM64 Kbuild compilation, a full kernel build with a new ABI and packages, and Denali/non-Denali hardware and recovery qualification remain pending before promotion or release. OE issue #67 remains open. Source integration update (2026-11-10): Fresh whole-translation-unit ARM64 Kbuild subsequently passed with |
Generic
gpi_read_ev_rp()returns the low hardware pointer word, whilegpi_mark_stale_events()previously compared it with the full local ring address. Under a synthetic high-address allocation, that comparison cannot converge. Match the generic pointer representation at both the initial comparison and every ring advance; preserve the configured Denali-QSPI full-width path.Related: ooaklee/linux-surface-pro-11-oe#67. Ordinary-SPI correction 2 is already carried in the v3 base. This patch addresses only the remaining comparison-width correction.
The candidate is based on released source
8ca6aefb8fb73d7da5c19a536d4ce3f027e2f725. Actual high-address generic coherent-ring reachability is unproved: a streamingdma_set_mask(64)does not itself raise the separate coherent mask. This is a source consistency correction, not an observed Surface hang or generic 64-bit GPI enablement. Existing deferred-slot lifetime concerns and the separate portability cast remain outside this patch.Validation at
9f8fcba48ff9451533f2c633a6d2556a57937d7a:drivers/dma/qcom/gpi.otranslation unit withW=1and no warnings. ELF machine is AArch64. GCC 15.2.0 matches the retained compiler; this check used GNU ld 2.46 instead of the original LLD, with that configuration variation recorded.--no-tree --no-signoff) and whitespace checks pass.With real Kbuild compilation now complete, this PR is ready for a source-only merge. This explicitly replaces the earlier draft disposition: full composition/DTB/module/package validation with a new release ABI and proportionate physical recovery/regression checks remain requirements before distributing or installing a new kernel. They have not been performed for this patch. The fixtures do not establish physical address allocation, hardware MMIO ordering or lifecycle qualification. The running v3 installation and released artifacts remain unchanged; no upstream submitter certification is claimed.
The regression script and workflow are fork-only infrastructure. Exclude the
.githubtest commit from upstream kernel patches; the driver correction is a separate commit.