Skip to content

ea_6.12.y: stable base pinned at 6.12.34 — missing USB gadget fix and ~41 stable releases #4

Description

@HASSVEP

We build on ea_6.12.y for an i.MX8MM uCOM based product. While investigating a USB gadget issue we found a fix that is in 6.12 stable but not in this branch, and the reason turns out to be general rather than specific to that fix.

Missing fix: ChipIdea UDC DMA/SG cleanup

drivers/usb/chipidea/udc.c, _ep_nuke() returns requests to the gadget layer without unmapping their DMA buffers or cleaning up SG bounce buffers — unlike _hardware_dequeue() and ep_dequeue(), which both do. Requests come back with stale num_mapped_sgs / dma_mapped, so on reuse after reconnect _hardware_enqueue() dispatches on that stale field and takes the wrong TD-preparation path. DMA mappings leak.

Upstream cea2a1257a3b
Stable backport 1b72b834511d, first released in v6.12.75 (2026-03-04)
Status in ea_6.12.y not present

The stable patch applies cleanly to the branch as-is:

 		list_del_init(&hwreq->queue);
 		hwreq->req.status = -ESHUTDOWN;
 
+		/* Unmap DMA and clean up bounce buffers before giving back */
+		usb_gadget_unmap_request_by_dev(hwep->ci->dev->parent,
+					&hwreq->req, hwep->dir);
+
+		if (hwreq->sgt.sgl)
+			sglist_do_debounce(hwreq, false);
+
 		if (hwreq->req.complete != NULL) {

We are carrying it locally. We are still confirming whether it fully explains the bulk IN endpoint stall we are chasing, but the defect itself is clear-cut independent of our symptom.

Underlying gap: the branch is not tracking 6.12 stable

ea_6.12.y fork point be78e49cb433 (2025-09-03), kernel 6.12.34
ea_6.12.y tip 0c84bcfb8292 (2026-07-10) — still 6.12.34
Current 6.12.y stable 6.12.81
NXP lf-6.12.y stopped 2025-11-21 at 6.12.49; newer fixes only on lf-6.18.y

So roughly 41 stable releases of fixes are absent, and tracking NXP would not close the gap either. The branch is clearly still maintained, which is why this looks like an oversight rather than an intentional freeze.

6.12 is longterm through December 2028, so the base is a good choice — it just isn't receiving the fixes that come with it.

One note on effort: the delta over NXP is 36 commits across 79 files, of which 74 are device trees and defconfigs and only three are driver changes. Merging current 6.12.y stable should carry low conflict risk against your own patches.

Question

Do you plan to advance the stable base of ea_6.12.y, and on what cadence?

We would much rather take fixes from this branch than maintain a parallel stable merge and drift from your board support, but with the branch a year behind on an actively maintained LTS we need to plan for one or the other. Happy to share the patches we are carrying if that is useful.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions