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.
We build on
ea_6.12.yfor 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()andep_dequeue(), which both do. Requests come back with stalenum_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.cea2a1257a3b1b72b834511d, first released in v6.12.75 (2026-03-04)ea_6.12.yThe stable patch applies cleanly to the branch as-is:
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.yfork pointbe78e49cb433(2025-09-03), kernel 6.12.34ea_6.12.ytip0c84bcfb8292(2026-07-10) — still 6.12.34lf-6.12.ylf-6.18.ySo 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.