Skip to content

WORKAROUND: arm64: dts: qcom: Add PCIe IOMMU mappings in Monaco and Lemans staging dtso#808

Open
Hariharan Sreedhar (hariharan-sree) wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
hariharan-sree:iommu-map-lemans-monaco-staging
Open

WORKAROUND: arm64: dts: qcom: Add PCIe IOMMU mappings in Monaco and Lemans staging dtso#808
Hariharan Sreedhar (hariharan-sree) wants to merge 2 commits into
qualcomm-linux:qcom-6.18.yfrom
hariharan-sree:iommu-map-lemans-monaco-staging

Conversation

@hariharan-sree

Copy link
Copy Markdown

Add iommu-map entries to the Monaco PCIe staging DTSO file to enable SMMUv2 translation for PCIe devices

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qlijarvis

Copy link
Copy Markdown

PR #808 — validate-patch

PR: #808

Verdict Issues Detailed Report
⚠️ 0 Full report

Final Summary

  1. Lore link present: No — WORKAROUND: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only workaround, not posted upstream
  4. PR present in qcom-next: Not checked — WORKAROUND: vendor-only commits
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #808 — Add PCIe IOMMU mappings for Monaco and Lemans staging DTSOs
Upstream commit: N/A (WORKAROUND: vendor-only commits)
Verdict: ⚠️ PARTIAL — Vendor-only commits with formatting issues


Commit 1: WORKAROUND: arm64: dts: qcom: monaco: add PCIe IOMMU mappings in staging dtso

Commit Message

Check Status Note
Subject matches upstream N/A WORKAROUND: prefix — no upstream equivalent
Body preserves rationale Brief but adequate for vendor workaround
Fixes tag present/correct N/A Not a fix; new functionality
Authorship preserved Signed-off-by present
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
arch/arm64/boot/dts/qcom/monaco-staging.dtso ⚠️ Formatting inconsistencies and missing newline at EOF

Commit 2: WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso

Commit Message

Check Status Note
Subject matches upstream N/A WORKAROUND: prefix — no upstream equivalent
Body preserves rationale Brief but adequate for vendor workaround
Fixes tag present/correct N/A Not a fix; new functionality
Authorship preserved Signed-off-by present
Backport note (if applicable) N/A Not a backport

Diff

File Status Notes
arch/arm64/boot/dts/qcom/lemans-staging.dtso ⚠️ Formatting inconsistencies and missing newline at EOF

Issues

Formatting inconsistencies in both commits:

  1. Inconsistent indentation in &pcie1 block:

    • Line 1 of iommu-map property uses 4 spaces: + iommu-map =<0x0 ...
    • Subsequent lines use tabs: +^I^I^I<0x100 ...
    • The &pcie0 block correctly uses tabs throughout
    • Fix: Replace leading spaces with a tab on the first iommu-map line in &pcie1
  2. Missing space after = operator in &pcie1 block:

    • iommu-map =<0x0 should be iommu-map = <0x0
    • The &pcie0 block has correct spacing: iommu-map = <0x0
    • Fix: Add space between = and <
  3. Missing newline at end of file:

    • Both monaco-staging.dtso and lemans-staging.dtso end without a newline
    • Linux kernel coding style requires a newline at EOF
    • Fix: Add newline after the final }; in both files

Example of correct formatting (from &pcie0 block):

+&pcie1 {
+	iommu-map = <0x0 &pcie_smmu 0x80 0x1>,
+			<0x100 &pcie_smmu 0x81 0x1>,

Verdict

PARTIAL — These are vendor-only workarounds (not intended for upstream) with correct commit message structure and appropriate WORKAROUND: prefix. However, the patches contain DTS formatting inconsistencies that should be fixed:

  • Inconsistent indentation (spaces vs tabs) in &pcie1 blocks
  • Missing space after = operator in &pcie1 property assignment
  • Missing newline at end of both files

Recommendation: Fix the formatting issues before merging. The functional content is appropriate for a vendor workaround, but the style should match the rest of the file and kernel DTS conventions.


Final Summary

  1. Lore link present: No — WORKAROUND: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only workaround, not posted upstream
  4. PR present in qcom-next: Not checked — WORKAROUND: vendor-only commits

@qlijarvis

Copy link
Copy Markdown

PR #808 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch ⚠️ 1 warning on commit 3c77297
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check Passed
sparse-check ⏭️ Skipped (no C/H changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Both commits fail prefix check
tag-check Both commits have valid WORKAROUND: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #808 - Add PCIe IOMMU mappings for Monaco and Lemans
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28769115940
Target branch: qcom-6.18.y

Checker Result Summary
checkpatch ⚠️ 1 warning on commit 3c77297
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check Passed
sparse-check ⏭️ Skipped (no C/H changes)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Both commits fail prefix check
tag-check Both commits have valid WORKAROUND: prefix

⚠️ checkpatch

Root cause: Commit message body line exceeds 75 characters (line wrapping issue).

Failure details:

Commit 3c772976ddaf ("WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso")
WARNING: Prefer a maximum 75 chars per line (possible unwrapped commit description?)
#7: 
Add the iommu-map entries to the Lemans staging DTSO file to support SMMUv2.

3c772976ddaf49c49bd846ebe2ec84c582cc23b4 total: 0 errors, 1 warnings, 0 checks, 49 lines checked

Fix: Wrap the commit body line at 75 characters:

git rebase -i a1690589c9de   # mark commit 3c772976ddaf as 'edit'
git commit --amend
# Edit the commit message to wrap the line:
# "Add the iommu-map entries to the Lemans staging DTSO file to
# support SMMUv2."
git rebase --continue

Reproduce locally:

./scripts/checkpatch.pl --strict --ignore FILE_PATH_CHANGES --git a1690589c9de..3c772976ddaf

❌ check-patch-compliance

Root cause: WORKAROUND: prefix is not in the allowed list for check-patch-compliance.

Failure details:

Checking commit: WORKAROUND: arm64: dts: qcom: monaco: add PCIe IOMMU mappings in staging dtso
Commit summary does not start with a required prefix

Checking commit: WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso
Commit summary does not start with a required prefix

Analysis:

The check-patch-compliance checker only accepts these prefixes:

  • FROMLIST: (posted to mailing list)
  • FROMGIT: (from maintainer tree)
  • UPSTREAM: (merged into mainline)
  • BACKPORT: (backported with modifications)

The WORKAROUND: prefix is not in this list, which is why the checker fails. However, WORKAROUND: is a valid prefix for the mandatory tag-check (see below).

This is a known limitation of the check-patch-compliance checker — it does not recognize vendor-internal prefixes like WORKAROUND:, QCLINUX:, or PENDING:. These commits will always fail this checker even though they are valid for the target branch.

Options:

  1. Accept the failure — This is expected behavior for WORKAROUND: commits. The tag-check passes (see below), which confirms the prefix is valid for qcom-6.18.y.

  2. Add Link: tags — If these workarounds are based on upstream discussions or patches, add Link: tags pointing to the relevant lore.kernel.org threads. This won't fix the prefix issue but provides traceability.

  3. Change to QCLINUX: — If these are vendor-only changes with no upstream equivalent, QCLINUX: is semantically more accurate, but it will still fail check-patch-compliance for the same reason.

Recommendation: Accept this failure as expected for WORKAROUND: commits targeting qcom-6.18.y.


✅ tag-check (mandatory for qcom-6.18.y)

Status: PASS

Analysis:

Since the target branch is qcom-6.18.y (not qcom-next or qcom-next-staging), every commit must start with a valid prefix tag.

Both commits use the WORKAROUND: prefix:

  • Commit 2e3cf50: WORKAROUND: arm64: dts: qcom: monaco: add PCIe IOMMU mappings in staging dtso
  • Commit 3c77297: WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso

WORKAROUND: is a valid prefix for branches other than qcom-next/qcom-next-staging, indicating a temporary fix not suitable for upstream submission.

Verdict: ✅ Both commits comply with the mandatory subject-line prefix requirement.


Verdict

1 non-blocking issue to fix before merge:

  • checkpatch warning on commit 3c77297 — wrap the commit body line at 75 characters.

2 expected failures (no action needed):

  • check-patch-compliance failures are expected for WORKAROUND: commits — this is a known checker limitation for vendor-internal prefixes. The commits are valid for qcom-6.18.y as confirmed by the passing tag-check.

Summary: Fix the commit message line wrapping issue, then the PR is ready to merge. The check-patch-compliance failures can be ignored as they are inherent to the WORKAROUND: prefix.

@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

…ing dtso

Add the iommu-map entries to the Monaco PCIe staging DTSO file
to support SMMUv2.

Signed-off-by: Hariharan Sreedhar <hsreedha@qti.qualcomm.com>
…ing dtso

Add the iommu-map entries to the Lemans staging DTSO file
to support SMMUv2.

Signed-off-by: Hariharan Sreedhar <hsreedha@qti.qualcomm.com>
@qswat-orbit-external

Copy link
Copy Markdown

Merge Check Failed: No CR Numbers Found

Error: No Change Request numbers were found.

Please add Change Request numbers to your pull request description in the format CRs-Fixed: 12345 or link GitHub issues that are associated with Change Requests.

@qlijarvis

Copy link
Copy Markdown

PR #808 — validate-patch

PR: #808

Verdict Issues Detailed Report
N/A 0 Full report

Final Summary

  1. Lore link present: No — WORKAROUND: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only workaround, not posted upstream
  4. PR present in qcom-next: No — neither commit found in qcom-next
Verdict: N/A — click to expand

🔍 Patch Validation

PR: #808 - WORKAROUND: arm64: dts: qcom: monaco/lemans: add PCIe IOMMU mappings in staging dtso
Upstream commit: N/A
Verdict: ⏭️ SKIP (vendor-only workaround)

Analysis

This PR contains 2 commits, both with the WORKAROUND: prefix:

  1. WORKAROUND: arm64: dts: qcom: monaco: add PCIe IOMMU mappings in staging dtso

    • Changes: arch/arm64/boot/dts/qcom/monaco-staging.dtso
    • Adds iommu-map entries for pcie0 and pcie1 nodes to support SMMUv2
  2. WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso

    • Changes: arch/arm64/boot/dts/qcom/lemans-staging.dtso
    • Adds iommu-map entries for pcie0 and pcie1 nodes to support SMMUv2

Commit Message

Both commits follow the expected pattern for WORKAROUND: prefixed changes:

  • ✅ Subject clearly indicates temporary workaround nature
  • ✅ Body provides brief rationale (SMMUv2 support)
  • ✅ Proper Signed-off-by trailer present
  • N/A No Fixes tag (not applicable for workarounds)
  • N/A No upstream authorship to preserve (vendor-only)
  • N/A No backport note (not a backport)

Diff

Both commits add identical iommu-map structures to their respective staging DTSO files:

  • 20 iommu-map entries for pcie0 (SIDs 0x00-0x13)
  • 20 iommu-map entries for pcie1 (SIDs 0x80-0x93)

Minor style issue noted: In both commits, the pcie1 node has inconsistent spacing:

&pcie1 {
    iommu-map =<0x0 &pcie_smmu 0x80 0x1>,

Missing space after = (should be iommu-map = <0x0...). This is inconsistent with the pcie0 node formatting.

qcom-next Presence

Commit Status
monaco: add PCIe IOMMU mappings ⚠️ Not in qcom-next
lemans: add PCIe IOMMU mappings ⚠️ Not in qcom-next

Both staging DTSO files exist in qcom-next with other commits, but these specific PCIe IOMMU mapping additions are not present.

Verdict

Skip validationWORKAROUND: prefix indicates this is a temporary, vendor-only fix not intended for upstream submission. No lore.kernel.org link is expected or required for such commits.

The commits are properly formatted for vendor-only workarounds. The minor DTS formatting inconsistency (missing space after = in pcie1 nodes) should be corrected for consistency, but does not block merging.

Final Summary

  1. Lore link present: No — WORKAROUND: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only workaround, not posted upstream
  4. PR present in qcom-next: No — neither commit found in qcom-next

@qlijarvis

Copy link
Copy Markdown

PR #808 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch Both commits passed with no style issues
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check Passed (new errors filtered out)
sparse-check ⏭️ Skipped (no C/H files changed)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Both commits failed prefix validation
tag-check Both commits have valid WORKAROUND: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #808 - WORKAROUND: arm64: dts: qcom: monaco/lemans: add PCIe IOMMU mappings in staging dtso
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28787355775
Target branch: qcom-6.18.y

Checker Result Summary
checkpatch Both commits passed with no style issues
dt-binding-check ⏭️ Skipped (no binding changes)
dtb-check Passed (new errors filtered out)
sparse-check ⏭️ Skipped (no C/H files changed)
check-uapi-headers ⏭️ Skipped (no UAPI changes)
check-patch-compliance Both commits failed prefix validation
tag-check Both commits have valid WORKAROUND: prefix

❌ check-patch-compliance

Root cause: The WORKAROUND: prefix is not in the checker's allowed list (FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:).

Failure details:

Checking commit: WORKAROUND: arm64: dts: qcom: monaco: add PCIe IOMMU mappings in staging dtso
Commit summary does not start with a required prefix

Checking commit: WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso
Commit summary does not start with a required prefix

Analysis:

This is a known limitation of the check-patch-compliance checker. The checker enforces a strict subset of prefixes (FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:) and does not accept vendor-internal prefixes like WORKAROUND:, QCLINUX:, or PENDING:.

According to the skill's reference documentation (Section 7):

Note on QCLINUX: and PENDING:: These are vendor-internal prefixes used in the tree but not accepted by check-patch-compliance. If a commit is vendor-only with no upstream equivalent, the checker will always fail for it. This is a known limitation — the checker enforces upstream-linkable prefixes only.

The same limitation applies to WORKAROUND:.

Why WORKAROUND: is appropriate here:

  • These commits add temporary IOMMU mappings to staging DTSO files
  • The WORKAROUND: prefix correctly signals that this is a temporary fix not suitable for upstream submission
  • The commits are vendor-specific and have no upstream equivalent

Fix options:

  1. Accept the failure (recommended) — This is a known checker limitation for vendor-only commits. The WORKAROUND: prefix is semantically correct and follows the tree's tagging conventions. The failure does not indicate a defect in the patches.

  2. Change prefix to QCLINUX: — This would still fail check-patch-compliance (same limitation) but might better reflect that these are vendor-specific changes rather than temporary workarounds.

  3. Add a Link: tag — If these patches were posted to a mailing list (even if not intended for merge), adding a Link: trailer might satisfy the checker. However, this is not appropriate if the patches were never posted upstream.

Reproduce locally:

cd kernel
bash ../kernel-checkers/check-patch-compliance.sh \
  --base a1690589c9de49fbc6b0cb3a645ab4a0650b3c69 \
  --head 74c04cafb2055d1f3f69e4f9f20cca5e039801a4

Verdict

The PR is ready to merge despite the CI failure.

The check-patch-compliance failure is a known limitation of the checker when vendor-internal prefixes (WORKAROUND:, QCLINUX:, PENDING:) are used. All other checkers passed:

  • checkpatch — No coding style issues
  • dtb-check — DTB validation passed (no new errors introduced)
  • tag-check — Both commits have valid subject-line prefixes for the qcom-6.18.y branch

The WORKAROUND: prefix is semantically correct for these temporary IOMMU mapping additions and follows the tree's tagging conventions. No patch changes are required.

@qlijarvis

Copy link
Copy Markdown

PR #808 — validate-patch

PR: #808

Verdict Issues Detailed Report
N/A 0 Full report

Final Summary

  1. Lore link present: No — WORKAROUND: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only workaround, not posted upstream
  4. PR present in qcom-next: Not checked — WORKAROUND: vendor-only commits
Verdict: N/A — click to expand

🔍 Patch Validation

PR: #808 - Add PCIe IOMMU mappings for Monaco and Lemans staging DTSOs
Upstream commit: N/A
Verdict: ⏭️ SKIP (Not Applicable)

Analysis

This PR contains 2 commits, both with the WORKAROUND: prefix:

  1. WORKAROUND: arm64: dts: qcom: monaco: add PCIe IOMMU mappings in staging dtso
  2. WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso

Commit Prefix Classification

According to the validate-patch skill, commits with the WORKAROUND: prefix are:

  • Temporary fixes, not suitable for upstream
  • No lore.kernel.org link expected or required
  • Cannot be validated with this skill by design

Commit Message Quality

Both commits follow proper structure:

  • ✅ Clear subject line with WORKAROUND: prefix
  • ✅ Descriptive body explaining the change (adding iommu-map entries for SMMUv2 support)
  • ✅ Proper Signed-off-by: trailer present
  • ✅ Consistent authorship (Hariharan Sreedhar hsreedha@qti.qualcomm.com)

Diff Content

Both patches add identical iommu-map properties to PCIe nodes:

  • monaco-staging.dtso: Adds iommu-map to &pcie0 and &pcie1 (46 lines)
  • lemans-staging.dtso: Adds iommu-map to &pcie0 and &pcie1 (46 lines)

The changes are:

  • ✅ Well-formed device tree syntax
  • ✅ Consistent mapping patterns across both SoCs
  • ✅ Applied to staging DTSO files (appropriate for workarounds)

Verdict

This PR cannot be validated against upstream sources because WORKAROUND: commits are vendor-specific temporary fixes that are not posted to lore.kernel.org or intended for upstream submission.

The commits are properly formatted and clearly marked as workarounds. No upstream validation is required or applicable.

Final Summary

  1. Lore link present: No — WORKAROUND: prefix; no lore link expected or required
  2. Lore link matches PR commits: N/A — no lore link to compare against
  3. Upstream patch status: N/A — vendor-only workaround, not posted upstream
  4. PR present in qcom-next: Not checked — WORKAROUND: vendor-only commits

@qlijarvis

Copy link
Copy Markdown

PR #808 — checker-log-analyzer

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

Checker Result Summary
Checker Result Summary
checkpatch All commits passed style checks
dt-binding-check ⏭️ Skipped — no binding changes
dtb-check All DTB validation passed
sparse-check ⏭️ Skipped — no C/H file changes
check-uapi-headers ⏭️ Skipped — no UAPI changes
check-patch-compliance WORKAROUND: prefix not accepted by checker
tag-check Both commits have valid WORKAROUND: prefix

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #808 — Add PCIe IOMMU mappings in staging DTSO for Monaco and Lemans
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28788752312

Checker Result Summary
checkpatch All commits passed style checks
dt-binding-check ⏭️ Skipped — no binding changes
dtb-check All DTB validation passed
sparse-check ⏭️ Skipped — no C/H file changes
check-uapi-headers ⏭️ Skipped — no UAPI changes
check-patch-compliance WORKAROUND: prefix not accepted by checker
tag-check Both commits have valid WORKAROUND: prefix

❌ check-patch-compliance

Root cause: The checker rejects WORKAROUND: prefix — it only accepts FROMLIST:, FROMGIT:, UPSTREAM:, and BACKPORT:.

Failure details:

Checking commit: WORKAROUND: arm64: dts: qcom: monaco: add PCIe IOMMU mappings in staging dtso
Commit summary does not start with a required prefix

Checking commit: WORKAROUND: arm64: dts: qcom: lemans: add PCIe IOMMU mappings in staging dtso
Commit summary does not start with a required prefix

Analysis:

This is a known checker limitation, not a patch defect. The check-patch-compliance checker enforces a strict subset of allowed prefixes (FROMLIST:, FROMGIT:, UPSTREAM:, BACKPORT:) and does not recognize vendor-internal prefixes like WORKAROUND:, QCLINUX:, or PENDING:.

However, according to the project's tagging policy (documented in the skill's Step 2.7), WORKAROUND: is a valid prefix for commits targeting branches other than qcom-next or qcom-next-staging. The target branch for this PR is qcom-6.18.y, so the WORKAROUND: prefix is appropriate.

Context:

Both commits add temporary PCIe IOMMU mappings to staging DTSO files to support SMMUv2. The WORKAROUND: prefix correctly signals that these are temporary fixes not suitable for upstream submission.

Fix:

Option 1 (Recommended): Merge as-is. The WORKAROUND: prefix is correct per project policy. The checker failure is a known limitation and can be ignored for vendor-internal workarounds.

Option 2: If upstream submission is planned, change the prefix to FROMLIST: and add a Link: trailer pointing to the lore.kernel.org posting. However, this is only appropriate if the patches have actually been posted upstream.

Reproduce locally:

cd kernel
bash ../kernel-checkers/check-patch-compliance.sh \
  --base a1690589c9de49fbc6b0cb3a645ab4a0650b3c69 \
  --head 4de28d7006870be9acf41af0fb4c3066991216df

Verdict

Ready to merge. The check-patch-compliance failure is a known checker limitation for WORKAROUND: prefixed commits. All other checkers passed, and the commits follow project tagging policy correctly.

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.

2 participants