Skip to content

FROMLIST: misc: fastrpc: Enable poll mode for specific devices#1335

Open
Jianping-Li wants to merge 19 commits into
qualcomm-linux:tech/mm/fastrpcfrom
Jianping-Li:feature/fastcv_fix
Open

FROMLIST: misc: fastrpc: Enable poll mode for specific devices#1335
Jianping-Li wants to merge 19 commits into
qualcomm-linux:tech/mm/fastrpcfrom
Jianping-Li:feature/fastcv_fix

Conversation

@Jianping-Li

Copy link
Copy Markdown

Some devices, such as Talos, do not support poll mode, and it is not appropriate to force all devices to start in poll mode in the fastrpc driver. In case poll timeout happens, the call will fallback to normal RPC mode. Poll mode can be enabled by user by using FASTRPC_IOCTL_SET_OPTION ioctl request with FASTRPC_POLL_MODE request id.

Link: https://lore.kernel.org/all/20260424095903.1622565-5-ekansh.gupta@oss.qualcomm.com/

CRs-Fixed: 4450320

@qcomlnxci qcomlnxci requested review from a team, Chennak-quic and ekanshibu and removed request for a team June 9, 2026 10:53
ekanshibu
ekanshibu previously approved these changes Jun 11, 2026
The fdlist is currently part of the meta buffer, computed during
put_args. This leads to code duplication when preparing and reading
critical meta buffer contents used by the FastRPC driver.

Move fdlist to the invoke context structure to improve maintainability
and reduce redundancy. This centralizes its handling and simplifies
meta buffer preparation and reading logic.

Link: https://lore.kernel.org/all/20260215182136.3995111-2-ekansh.gupta@oss.qualcomm.com/
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Replace the hardcoded context ID mask (0xFF0) with GENMASK(11, 4) to
improve readability and follow kernel bitfield conventions. Use
FIELD_PREP and FIELD_GET instead of manual shifts for setting and
extracting ctxid values.

Link: https://lore.kernel.org/all/20260215182136.3995111-3-ekansh.gupta@oss.qualcomm.com/
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
…support

Current FastRPC context uses a 12-bit mask:
  [ID(8 bits)][PD type(4 bits)] = GENMASK(11, 4)

This works for normal calls but fails for DSP polling mode.
Polling mode expects a 16-bit layout:
  [15:8] = context ID (8 bits)
  [7:5]  = reserved
  [4]    = async mode bit
  [3:0]  = PD type (4 bits)

If async bit (bit 4) is set, DSP disables polling. With current
mask, odd IDs can set this bit, causing DSP to skip poll updates.

Update FASTRPC_CTXID_MASK to GENMASK(15, 8) so IDs occupy upper
byte and lower byte is left for DSP flags and PD type.

Reserved bits remain unused. This change is compatible with
polling mode and does not break non-polling behavior.

Bit layout:
  [15:8] = CCCCCCCC (context ID)
  [7:5]  = xxx (reserved)
  [4]    = A (async mode)
  [3:0]  = PPPP (PD type)

Link: https://lore.kernel.org/all/20260215182136.3995111-4-ekansh.gupta@oss.qualcomm.com/
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
For any remote call to DSP, after sending an invocation message,
fastRPC driver waits for glink response and during this time the
CPU can go into low power modes. This adds latency to overall fastrpc
call as CPU wakeup and scheduling latencies are included. Add polling
mode support with which fastRPC driver will poll continuously on a
memory after sending a message to remote subsystem which will eliminate
CPU wakeup and scheduling latencies and reduce fastRPC overhead. Poll
mode can be enabled by user by using FASTRPC_IOCTL_SET_OPTION ioctl
request with FASTRPC_POLL_MODE request id.

Link: https://lore.kernel.org/all/20260215182136.3995111-5-ekansh.gupta@oss.qualcomm.com/
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
@ekanshibu ekanshibu dismissed their stale review June 15, 2026 06:50

The merge-base changed after approval.

Jianping-Li and others added 3 commits June 15, 2026 14:47
…rocess abort

When a userspace FastRPC client is abruptly terminated, FastRPC
cleanup paths can race with device and session teardown.

This results in kernel panics in different release paths:
- fastrpc_release() when using remote heap, originating from
  fastrpc_buf_free()
- fastrpc_device_release() when using system heap, originating from
  fastrpc_free_map()

In addition, fastrpc_map_put() may trigger refcount use-after-free
due to concurrent cleanup without proper synchronization.

The root cause is that buffer and map cleanup paths may access map
and buf resources after the associated device or session has
already been released.

Fix this by:
- Introducing mutex protection for map and buf lifetime
- Serializing buffer and map cleanup against device teardown
- Skipping buffer and map operations when the device is already gone

These changes ensure cleanup paths are safe against unexpected
process aborts and prevent use-after-free and kernel panic scenarios.

Link: https://lore.kernel.org/all/20260427105310.4056-1-jianping.li@oss.qualcomm.com/
Fixes: c68cfb7 ("misc: fastrpc: Add support for context Invoke method")
Cc: stable@kernel.org
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
…messages

On some platforms (e.g. QCS615 Talos), fastrpc may temporarily fail
to retrieve DSP attributes during boot, resulting in repeated
"Error: dsp information is incorrect" messages printed on the
console.

These messages are observed continuously during boot when metadata
flashing is enabled as part of RC releases, causing unnecessary
log noise.

Similarly, the absence of reserved DMA memory is a valid
configuration and does not represent an error condition.

Since these scenarios are expected and do not indicate a failure,
downgrade the log level from dev_err/dev_info to dev_dbg to avoid
flooding the console.

No functional change intended.

Link: https://lore.kernel.org/all/20260514062825.50172-1-jianping.li@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
…eue context

There is a race between fastrpc_device_release() and the workqueue
that processes DSP responses. When the user closes the file descriptor,
fastrpc_device_release() frees the fastrpc_user structure. Concurrently,
an in-flight DSP invocation can complete and fastrpc_rpmsg_callback()
schedules context cleanup via schedule_work(&ctx->put_work). If the
workqueue runs fastrpc_context_free() in parallel with or after
fastrpc_device_release() has freed the user structure, it dereferences
the freed fastrpc_user. Depending on the state of the context at the
time of the race, any one of the following accesses can be hit:

 1. fastrpc_buf_free() calls fastrpc_ipa_to_dma_addr(buf->fl->cctx, ...)
    to strip the SID bits from the stored IOVA before passing the
    physical address to dma_free_coherent().

 2. fastrpc_free_map() reads map->fl->cctx->vmperms[0].vmid to
    reconstruct the source permission bitmask needed for the
    qcom_scm_assign_mem() call that returns memory from the DSP VM
    back to HLOS.

 3. fastrpc_free_map() acquires map->fl->lock to safely remove the
    map node from the fl->maps list.

The resulting use-after-free manifests as:

  pc : fastrpc_buf_free+0x38/0x80 [fastrpc]
  lr : fastrpc_context_free+0xa8/0x1b0 [fastrpc]
  fastrpc_context_free+0xa8/0x1b0 [fastrpc]
  fastrpc_context_put_wq+0x78/0xa0 [fastrpc]
  process_one_work+0x180/0x450
  worker_thread+0x26c/0x388

Add kref-based reference counting to fastrpc_user. Have each invoke
context take a reference on the user at allocation time and release it
when the context is freed. Release the initial reference in
fastrpc_device_release() at file close. Move the teardown of the user
structure — freeing pending contexts, maps, mmaps, and the channel
context reference — into the kref release callback fastrpc_user_free(),
so that it runs only when the last reference is dropped, regardless of
whether that happens at device close or after the final in-flight
context completes.

Link:https://lore.kernel.org/all/20260518203507.3754994-1-anandu.e@oss.qualcomm.com/
Fixes: 6cffd79 ("misc: fastrpc: Add support for dmabuf exporter")
Cc: stable@kernel.org
Signed-off-by: Anandu Krishnan E <anandu.e@oss.qualcomm.com>
ekanshibu and others added 12 commits June 15, 2026 15:36
…emory pool

The initial buffer allocated for the Audio PD memory pool is never added
to the pool because pageslen is set to 0. As a result, the buffer is not
registered with Audio PD and is never used, causing a memory leak. Audio
PD immediately falls back to allocating memory from the remote heap since
the pool starts out empty.

Fix this by setting pageslen to 1 so that the initially allocated buffer
is correctly registered and becomes part of the Audio PD memory pool.

Link: https://lore.kernel.org/all/20260609025938.457-2-jianping.li@oss.qualcomm.com/
Fixes: 0871561 ("misc: fastrpc: Add support for audiopd")
Cc: stable@kernel.org
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
…tion

fastrpc_req_munmap_impl() is called to unmap any buffer. The buffer is
getting removed from the list after it is unmapped from DSP. This can
create potential race conditions if multiple threads invoke unmap
concurrently, where one thread may remove the entry from the list while
another thread's unmap operation is still ongoing.

Fix this by removing the buffer entry from the list before calling the
unmap operation. If the unmap fails, the entry is re-added to the list
so that userspace can retry the unmap, or alternatively, the buffer
will be cleaned up during device release when the DSP process is torn
down and all DSP-side mappings are freed along with remaining buffers
in the list.

Link: https://lore.kernel.org/all/20260609025938.457-3-jianping.li@oss.qualcomm.com/
Fixes: 2419e55 ("misc: fastrpc: add mmap/unmap support")
Cc: stable@kernel.org
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
… in probe

Allocating and freeing Audio PD memory from userspace is unsafe because
the kernel cannot reliably determine when the DSP has finished using the
memory. Userspace may free buffers while they are still in use by the DSP,
and remote free requests cannot be safely trusted.

Additionally, the current implementation allows userspace to repeatedly
grow the Audio PD heap, but does not support shrinking it. This can lead
to unbounded memory usage over time, effectively causing a memory leak.

Fix this by allocating the entire Audio PD reserved-memory region during
rpmsg probe and tying its lifetime to the rpmsg channel. This removes
userspace-controlled alloc/free and ensures that memory is reclaimed only
when the DSP process is torn down.

Add explicit validation for remote_heap presence and size before sending
the memory to DSP, and fail early if the reserved-memory region is
missing or incomplete.

Link: https://lore.kernel.org/all/20260609025938.457-4-jianping.li@oss.qualcomm.com/
Fixes: 0871561 ("misc: fastrpc: Add support for audiopd")
Cc: stable@kernel.org
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
Make fastrpc_buf_free() a no-op when passed a NULL pointer, allowing
callers to avoid open-coded NULL checks.

Link: https://lore.kernel.org/all/20260609025938.457-5-jianping.li@oss.qualcomm.com/
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
… driver"

This reverts commit 352cb6c.

Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
…ng mode support"

This reverts commit db409f4.

Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
…NMASK"

This reverts commit 0a6e64c.

Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
…ure"

This reverts commit c75022a.

Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
The fdlist is currently part of the meta buffer which is set during
fastrpc_get_args(), this fdlist is getting recalculated during
fastrpc_put_args().

Move fdlist to the invoke context structure to improve maintainability
and reduce redundancy. This centralizes its handling and simplifies
meta buffer preparation and reading logic.

Link: https://lore.kernel.org/all/20260521054539.128651-2-ekansh.gupta@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
Replace the hardcoded context ID mask (0xFF0) with GENMASK(11, 4) to
improve readability and follow kernel bitfield conventions. Use
FIELD_PREP and FIELD_GET instead of manual shifts for setting and
extracting ctxid values.

Link: https://lore.kernel.org/all/20260521054539.128651-3-ekansh.gupta@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
…support

Current FastRPC context uses a 12-bit mask:
  [ID(8 bits)][PD type(4 bits)] = GENMASK(11, 4)

This works for normal calls but fails for DSP polling mode.
Polling mode expects a 16-bit layout:
  [15:8] = context ID (8 bits)
  [7:5]  = reserved
  [4]    = async mode bit
  [3:0]  = PD type (4 bits)

If async bit (bit 4) is set, DSP disables polling. With current
mask, odd IDs can set this bit, causing DSP to skip poll updates.

Update FASTRPC_CTXID_MASK to GENMASK(15, 8) so IDs occupy upper
byte and lower byte is left for DSP flags and PD type.

Reserved bits remain unused. This change is compatible with
polling mode and does not break non-polling behavior.

Bit layout:
  [15:8] = CCCCCCCC (context ID)
  [7:5]  = xxx (reserved)
  [4]    = A (async mode)
  [3:0]  = PPPP (PD type)

Link: https://lore.kernel.org/all/20260521054539.128651-4-ekansh.gupta@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
For any remote call to DSP, after sending an invocation message,
fastRPC driver waits for glink response and during this time the
CPU can go into low power modes. This adds latency to overall fastrpc
call as CPU wakeup and scheduling latencies are included. Add polling
mode support with which fastRPC driver will poll continuously on a
memory after sending a message to remote subsystem which will eliminate
CPU wakeup and scheduling latencies and reduce fastRPC overhead. In case
poll timeout happens, the call will fallback to normal RPC mode.  Poll
mode can be enabled by user by using FASTRPC_IOCTL_SET_OPTION ioctl
request with FASTRPC_POLL_MODE request id.

Link: https://lore.kernel.org/all/20260521054539.128651-5-ekansh.gupta@oss.qualcomm.com/
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>
@qcomlnxci qcomlnxci requested review from a team and removed request for a team June 16, 2026 06:05
@qcomlnxci qcomlnxci requested a review from ekanshibu June 16, 2026 06:05
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1335

PR: #1335
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27597745676

# Error File:Line PR-introduced? Root Cause
1 Merge conflict during automerge Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml No Pre-existing conflict between baseline and topic branch; file not modified by PR
2 Merge conflict during automerge arch/arm64/configs/defconfig No Pre-existing conflict between baseline and topic branch; file not modified by PR
3 Merge conflict during automerge drivers/misc/fastrpc.c Yes PR modifies this file extensively (reverts + re-applies polling mode patches); conflicts with other changes in topic branch
4 Merge conflict during automerge drivers/soc/qcom/ice.c No Pre-existing conflict between baseline and topic branch; file not modified by PR

Verdict

1 of 4 merge conflicts is directly related to this PR's changes; 3 are pre-existing conflicts in the topic branch.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1335

PR: #1335
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27597745676

# Error File:Line PR-introduced? Root Cause
1 Merge conflict during automerge drivers/misc/fastrpc.c Yes PR reverts and re-applies polling mode patches, creating conflicts with topic branch changes
2 Merge conflict during automerge Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml No Pre-existing conflict between baseline and topic branch, unrelated to PR
3 Merge conflict during automerge arch/arm64/configs/defconfig No Pre-existing conflict between baseline and topic branch, unrelated to PR
4 Merge conflict during automerge drivers/soc/qcom/ice.c No Pre-existing conflict between baseline and topic branch, unrelated to PR

Verdict

1 of 4 merge conflicts is introduced by this PR; 3 are pre-existing integration issues unrelated to the PR changes.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1335 — validate-patch

PR: #1335

Verdict Issues Detailed Report
8 Full report

Final Summary

  1. Lore link present: Yes - patches 5-8 include Link: tags to lore.kernel.org series 20260521054539.128651
  2. Lore link matches PR commits: Cannot verify - network restricted, lore links dated May 21, 2026 (future date relative to patch application dates)
  3. Upstream patch status: Unknown - patches marked FROMLIST suggest under review, but cannot verify due to network restrictions and future-dated links
  4. PR present in qcom-next: Not checked - validation scope limited to patch correctness

Required actions before merge:

  1. Fix authorship: Change git author to Ekansh Gupta for patches 5-8
  2. Add Ekansh Gupta's Signed-off-by as first SOB in patches 5-8
  3. Add explanation in cover letter or commit messages for why revert-then-reapply approach was chosen
  4. Verify lore links are accessible and patches match upstream versions
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1335 - fastrpc polling mode patch series (revert + reapply)
Upstream commit: Multiple FROMLIST patches from lore series 20260521054539.128651
Verdict: ❌ FAIL

Commit Message Analysis

Patches 1-4 (Reverts)

Check Status Note
Subject matches upstream N/A Revert commits
Body preserves rationale ⚠️ Minimal revert message, no justification for why reverting
Fixes tag present/correct N/A Not applicable for reverts
Authorship preserved Jianping Li as reverter
Backport note N/A Revert commits

Patches 5-8 (FROMLIST)

Check Status Note
Subject matches upstream ⚠️ Cannot verify - lore links dated May 2026, network restricted
Body preserves rationale Detailed commit messages with technical rationale
Fixes tag present/correct N/A No Fixes tags (new feature, not a fix)
Authorship preserved CRITICAL: Missing original author
Backport note Link tags present for all FROMLIST patches

Diff Analysis

Patch File(s) Status Notes
1 (revert) drivers/misc/fastrpc.c, include/uapi/misc/fastrpc.h Reverts polling mode support
2 (revert) drivers/misc/fastrpc.c Reverts CTXID mask expansion
3 (revert) drivers/misc/fastrpc.c Reverts GENMASK usage
4 (revert) drivers/misc/fastrpc.c Reverts fdlist move
5 (FROMLIST) drivers/misc/fastrpc.c Re-applies fdlist move with same logic
6 (FROMLIST) drivers/misc/fastrpc.c Re-applies GENMASK with bitops.h include
7 (FROMLIST) drivers/misc/fastrpc.c Re-applies CTXID mask expansion
8 (FROMLIST) drivers/misc/fastrpc.c, include/uapi/misc/fastrpc.h ⚠️ Re-applies polling mode with enhanced documentation

Issues

CRITICAL - Authorship Violation:

  • Patches 5-8 are marked FROMLIST with lore links to ekansh.gupta@oss.qualcomm.com
  • All patches show From: Jianping Li <jianping.li@oss.qualcomm.com>
  • Missing From: trailer in commit message body to preserve original authorship
  • Only Jianping Li's Signed-off-by present; original author's SOB missing

Expected format for FROMLIST patches:

From: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>

[commit message body]

Link: https://lore.kernel.org/all/...
Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com>
Signed-off-by: Jianping Li <jianping.li@oss.qualcomm.com>

Minor Issues:

  1. Revert justification missing: Patches 1-4 provide no explanation for why the original patches are being reverted before re-applying
  2. Series structure unclear: The revert-then-reapply pattern suggests the original patches had issues, but no explanation is provided
  3. Patch 8 enhancements: The re-applied polling mode patch includes additional changes (exception list for older platforms, enhanced comments) not visible in the diff between revert and reapply

Positive observations:

  • Link tags properly formatted and present for all FROMLIST patches
  • Commit messages are technically detailed and well-written
  • Code changes appear logically sound
  • UAPI documentation significantly improved in patch 8

Verdict

REJECT - Must fix authorship before merge.

The patches violate kernel contribution guidelines by not preserving original authorship. When applying patches from mailing lists (FROMLIST), the original author must be credited via the From: field in the git commit, and their Signed-off-by must be preserved.

Final Summary

  1. Lore link present: Yes - patches 5-8 include Link: tags to lore.kernel.org series 20260521054539.128651
  2. Lore link matches PR commits: Cannot verify - network restricted, lore links dated May 21, 2026 (future date relative to patch application dates)
  3. Upstream patch status: Unknown - patches marked FROMLIST suggest under review, but cannot verify due to network restrictions and future-dated links
  4. PR present in qcom-next: Not checked - validation scope limited to patch correctness

Required actions before merge:

  1. Fix authorship: Change git author to Ekansh Gupta for patches 5-8
  2. Add Ekansh Gupta's Signed-off-by as first SOB in patches 5-8
  3. Add explanation in cover letter or commit messages for why revert-then-reapply approach was chosen
  4. Verify lore links are accessible and patches match upstream versions

@qlijarvis

Copy link
Copy Markdown

PR #1335 — checker-log-analyzer

PR: #1335
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27597745924

Checker Result Summary
Checker Result Summary
checkpatch Automerge conflict - cannot run
dt-binding-check Automerge conflict - cannot run
dtb-check Automerge conflict - cannot run
sparse-check Automerge conflict - cannot run
check-uapi-headers Automerge conflict - cannot run
check-patch-compliance Automerge conflict - cannot run
tag-check ⏭️ Not applicable (no standalone tag-check job)
qcom-next-check FROMLIST: prefix present on all commits

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1335 - Revert and reapply fastrpc polling mode patches
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27597745924

Checker Result Summary
checkpatch Automerge conflict - cannot run
dt-binding-check Automerge conflict - cannot run
dtb-check Automerge conflict - cannot run
sparse-check Automerge conflict - cannot run
check-uapi-headers Automerge conflict - cannot run
check-patch-compliance Automerge conflict - cannot run
tag-check ⏭️ Not applicable (no standalone tag-check job)
qcom-next-check FROMLIST: prefix present on all commits

❌ All Checkers (Automerge Failure)

Root cause: The PR modifies drivers/misc/fastrpc.c and include/uapi/misc/fastrpc.h, which conflict with changes already present in the integration baseline when merging topic branch topic/tech/mm/fastrpc.

Failure details:

CONFLICT (content): Merge conflict in Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
CONFLICT (content): Merge conflict in arch/arm64/configs/defconfig
CONFLICT (content): Merge conflict in drivers/misc/fastrpc.c
CONFLICT (content): Merge conflict in drivers/soc/qcom/ice.c
Automatic merge failed; fix conflicts and then commit the result.
automerge returned non-zero; check logs for conflicts

The checker workflow runs automerge as a prerequisite step to integrate the PR's topic branch (topic/tech/mm/fastrpc) with the baseline. This automerge step failed with merge conflicts in 4 files:

  • Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml
  • arch/arm64/configs/defconfig
  • drivers/misc/fastrpc.c (directly modified by this PR)
  • drivers/soc/qcom/ice.c

Because automerge failed, none of the individual checkers (checkpatch, dt-binding-check, dtb-check, sparse-check, check-uapi-headers, check-patch-compliance) could proceed.

Fix: Resolve the merge conflicts in the topic branch before the PR can be validated by CI.

Steps to resolve:

  1. Locally reproduce the conflict:

    git clone https://github.com/qualcomm-linux/kernel-topics.git
    cd kernel-topics
    git fetch origin pull/1335/head:pr-1335
    git checkout pr-1335
    
    # Fetch the baseline (v7.1-rc7 or latest tag)
    git fetch https://github.com/qualcomm-linux/kernel.git
    git checkout -b test-merge f74a35752ee9fde35f8980d2635660334bff6446
    
    # Attempt the merge
    git merge pr-1335
  2. Resolve conflicts in each file:

    • drivers/misc/fastrpc.c - This is the primary file modified by the PR (revert + reapply patches). Carefully review the conflict markers and ensure the final state matches the intended patch series logic.
    • arch/arm64/configs/defconfig - Likely a trivial config ordering conflict; keep both changes.
    • drivers/soc/qcom/ice.c - Unrelated to fastrpc; review and keep appropriate changes.
    • Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml - Unrelated to fastrpc; review and keep appropriate changes.
  3. Alternative approach - Rebase the topic branch:

    git checkout topic/tech/mm/fastrpc
    git fetch https://github.com/qualcomm-linux/kernel.git
    git rebase f74a35752ee9fde35f8980d2635660334bff6446
    # Resolve conflicts during rebase
    git push --force-with-lease origin topic/tech/mm/fastrpc
  4. Verify the resolution builds:
    After resolving conflicts, ensure the kernel builds cleanly:

    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)
  5. Re-trigger CI:
    Once conflicts are resolved and pushed, close and reopen the PR or push a new commit to trigger a fresh CI run.

Reproduce locally:

git clone https://github.com/qualcomm-linux/kernel-topics.git
cd kernel-topics
git fetch origin pull/1335/head:pr-1335
git checkout -b test-integ f74a35752ee9fde35f8980d2635660334bff6446
git merge pr-1335
# Observe merge conflicts

Verdict

Cannot validate - 1 blocker: The PR cannot be validated by any checker until the automerge conflicts are resolved. The topic branch topic/tech/mm/fastrpc must be rebased or the conflicts must be resolved manually before CI can proceed with checkpatch, dt-binding-check, dtb-check, sparse-check, check-uapi-headers, and check-patch-compliance validation.

Action required: Resolve merge conflicts in 4 files (drivers/misc/fastrpc.c, arch/arm64/configs/defconfig, drivers/soc/qcom/ice.c, Documentation/devicetree/bindings/crypto/qcom,inline-crypto-engine.yaml) and update the topic branch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants