From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=209.85.210.41 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1793661278; b=RZUiZ5fxKDdVmkmgET9ejpv+C536ngtvvqDT0ovhqoMZYa/43vPuGDLzjUksNEfX4DOO O/XDZ9berU1JfCO5QSn0WX5bIIfhz7BZX6JpTlmnvxVRsPPNB7UpUEJE/Mj080ICnkngi ePaX1DHEY6WISit9CHJbWJlq9ag3LG9MATn9UnlnrykBZeozpbXr0FKM42UELJlE44eHA ek9a3GMq1UCRfF2AQvUOFniHmug1yLGjA6Y9X63sVPBYKO9XcgNM2lhja+GzDzJ4a49Sr ob/iXKZ1r8mmPb196p76cU2hkBkJz7WzPnj193JKqTzZf4TTMowQ3I8yFqc7uFu7Pqg== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1793661278; h=DMARC-Filter:Received:DKIM-Signature:X-Google-DKIM-Signature: X-Gm-Message-State:X-Gm-Gg:X-Received:Received:From:Subject:Date: Message-Id:MIME-Version:Content-Type:Content-Transfer-Encoding: X-B4-Tracking:X-Change-ID:To:Cc:X-Mailer; bh=8ie4pbCN1ao35v2BouDGoB7zJuUvm/Ft3KnRznJEoYw=; b=XB9XfsCNcgLlobU91rW4uveqZ+yn4KtEKF/3OlI2M+iN+KhiY6CrvXumllWQuakcretM NvN5jFbVkg9WhQSREBW+Rts7eaqcIPmerbrRhw2KaaG0W/6sHOEkEl6Sk9kHpCoQlTWFV pcm0AwTBN4NnyGo9kOafn+muVIyHKHm+21ffQzspopn+w7Lg/VRh5mjag/48Dlh/Cw9rw nPi4dJ7n2xDaCgD2FX8P/NcroE6FxJuclCmgLHjZroaK8N259KedRqYSB8dUVK1Nkwi4v 35U9mtbH3N7YCINcBR2v1ebvn1I2Ag7Wme4NLHeBOJsM/Z0uhhkPl/uqq3tlG6zzsBg== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=YNfzY38L; arc=none smtp.remote-ip=209.85.210.41 Received: from mail-ot1-f41.google.com (mail-ot1-f41.google.com [209.85.210.41]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98C2B606D80E for ; Mon, 2 Nov 2026 23:14:37 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 98C2B606D80E Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20260707 header.b=YNfzY38L Received: by mail-ot1-f41.google.com with SMTP id 46e09a7af769-843b6f8e2c7so4609219a34.1 for ; Mon, 02 Nov 2026 15:14:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20260707; t=1793661276; x=1794266076; darn=vger.kernel.org; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:from:to:cc:subject:date:message-id :reply-to:content-type; bh=8ie4pbCN1ao35v2BouDGoB7zJuUvm/Ft3KnRznJEoYw=; b=YNfzY38Lic7l1IZzOzK6/oVZutQxQzuLmuyrM2bImqUnQYApR3ITfHzPoxqC9D38yL ySa7LDrzMmUuIc34CDfDX3eMEIDFPqDduvfhym/SA44DBpYKnNgDjG3y76BX8wI5iC3x QTHPiwQVKX8D/PCtlD6FU5e/P1DsAuWhYNEy2r9cdbd26bmhNXdOPmDgikabkd3JGsWZ OJoGkp6ksGM6Or4ivxIQyeTE9l2y+muhq1+d5Y9Uks0gNiC2HE4FvVlHm7xgBiKV6F9t JVRcCsUdGc9TTPFp8py7Wcokp8X4/+bTzYu9EGYfq7+FAQSIiN39pcNL734vHDJeL0x+ R79A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1793661276; x=1794266076; h=cc:to:content-transfer-encoding:content-type:mime-version :message-id:date:subject:from:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=8ie4pbCN1ao35v2BouDGoB7zJuUvm/Ft3KnRznJEoYw=; b=r8IaMvyhDondxW6sFUn7EG8FtszCoTtFjBFv7A0f9NW1wWTffbwzX2vHESWIin6hvt yfQXTMdf5APCqvF30up5GuveFokMhidZOcf/Mo7qY9PBhfqLh18gr4p5aWOWjhL0HCaS rQBsoZy+QU3J62dIZpiBPvbKjZRAsnp8FcBC2fm60THwf0VcwIjoB7d9jIpvGDLEWgDk 0d+3ovINgIN51m5BjNlWOXTCVZxkv49zws4F833idxAmwaC3j6Ofr0vyGWj3vyJj+RCR y2O1OUqQjAi/Kp03h9t1VXLzmHXAUu/3/A88cHIrxk4guUV8ic7ANZZNZRVaJfN/cKVR zclA== X-Gm-Message-State: AFq9FYLoZ9Cg/9wMRPzmWah8WT6bx8BdEnxhiGWztcYpQ9LJy6Kb4yzt kvw1M3UEVy9xl9yWIZRr4nPzp11X9V+uXiWlaJ55KRWlmihcunV5+8kV X-Gm-Gg: AYBFou0a8s8VO7QGT8uGqKKGoFQpSKE7+H++h7t93n9QW4oaczF00pSpGJx1O1z4c7a 2l1QnWSfg4CdDMSX6WNTpgeomAZ/RWZGGmTT2gycoVdgTGiq4i5THSZS6vZklQrsNXjZVJtpwGp Ml+VTfi4BIrGfYLtRKwM4ddQ6Ht3dOFF2svPvOhfDCibfQ6KpUaNT9uzCGBDzO3BMI01K88SCT/ UzaKIxr4HrHTxdOy45lgIGRNdcrPsu6sDuxcj5ovyghbovynpJzG4TLEPJdLsvrGQwoe35v8rwr AxT1fcIdTLztset/4jhZPNP8gK6SxxsqxSJ9SeQvtp5PjUEhRBlBOp/Qljbj5QYZRjq1r9rNkTI 579ycFrAphCoH8lTyyiie+4Q50p99TurmXA6XCuK7hbLotcBLTMz0bKOb5yuVgD6ntWeU/3EM/s 8feGz2i+44jgaFJ0ajkvCK3lEZ5LfCy8amarG5JQ3hQBZu6pjM34QR/xKwUB68qurg2QC+e6IFN T+IkS4J10yCgEz5ry1b51/44QwyOGMZkaVdGWaHVPfJv65DegThBcvd2E3DFbdqKjhHY0K3ojSG u+feZOc6SLV1o4Ks1oVNsUF5aT9XT6yZM+XVId2oEYBLPnn16V+eZGFZ+q++jPkjwlnDQ0S3e8b /+loFvmkkIBEpITN+JhB4vA0VwVm/xeAxlddoXS1MfIpefqJ1Ohw3cyjRA0RnjnBP89SzQhRTrN +B9QKmAkFbWjmHsJuZZwhsyky8/6oH7jNxwmFDjftGVM7cXMuAMsA= X-Received: by 2002:a05:6820:1354:b0:6e0:8fc2:84b2 with SMTP id 006d021491bc7-714f23f630amr5925156eaf.20.1793661276175; Mon, 02 Nov 2026 15:14:36 -0800 (PST) Received: from [127.0.1.1] (174-29-1-49.hlrn.qwest.net. [174.29.1.49]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-714f2ce869asm10134463eaf.4.2026.11.02.15.14.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 Nov 2026 15:14:35 -0800 (PST) From: James Hilliard Subject: [PATCH v9 0/8] serial: 8250: serialize DMA cancellation with buffer reuse Date: Mon, 02 Nov 2026 16:14:27 -0700 Message-Id: <20261102-submit-serial-8250-dma-cancel-v1-v9-0-9159caade148@gmail.com> X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-B4-Tracking: v=1; b=H4sIAAAAAAAC/5WT3W4TQQyFXyXKNQtjz5/dK94DceGZsZtFTQtJG oGqvjvelIt0EVKQVivNyv7OOR7vy/aoh1mP27vNy/ag5/k4Pz36gT9stn0nj/c6zcPPWwxYICB Mx+e2n0/T0iYPE2EO09jL1OWx68N0hqlhIKOkxB22jvl+UJt/XiS+fH07O+Ob9tPCXSqaHHVqB yfslk9ecNAfn/6lQH+gXvPsdk9v5DdIf9q7ubtNaanlFE2Aaq7IVXrNRYpp0ZIsh9IqpSQXlJz 6zlPebWIJqZlIFOgIibkOBQOAgo1AUk4glqW976o8RuBo1mJWzEkrh+EnIqrm9dBckVN930VB3 AUMSj3kLCX1WnzEZNp0QOVeqDZmW2mN1pKbFAOjAkzYrUhqNecRuZv2nAgxvu9KgciVQLA2zya eBEN0FfCUntcQuNZCK63iBm1ww+jm3BpiNUugyeMSK6GjUlxpDXJYqREhDOmEI8qQliBXMkOrx TIV7LxySCWzZrVo2edY6wieCSxQDD0MTYUZvW27LNBuPp6eDr8uK3uGy+Xfvp3+hElN/UbZMIb 4+X4v88NH35wL/IzXQLwBiA70Aatk0EgMa2C8BsYbgNGBw8fFmnriiGtg+l9gWiLXzL7NFP29B uZrYLoBmB3o14VciJHGXw7L/wKLA4vF4lsAlktZA+s1sN4ArItDyuIDav5/pDWQroF8A5AcGG3 k0iRm1HENfH19/Q2L0CUuSAUAAA== X-Change-ID: 20261021-submit-serial-8250-dma-cancel-v1-b208f84e89c1 To: Greg Kroah-Hartman , Jiri Slaby , Raul E Rangel , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Andy Shevchenko , Heikki Krogerus , Tony Lindgren , Sebastian Andrzej Siewior , Richard Genoud , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Jacky Huang , Shan-Chun Hung , =?utf-8?q?Pali_Roh=C3=A1r?= , Frank Li , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , "Maciej W. Rozycki" , Timur Tabi , Peter Ujfalusi , Vignesh Raghavendra , Patrice Chotard Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linuxppc-dev@lists.ozlabs.org, James Hilliard X-Mailer: b4 0.15.2 Reserve canceled transmit and receive storage until DMA and its completion callbacks have retired. Serial-core write backpressure protects a flushed TX FIFO while normal transfers continue to DMA directly from that FIFO. The preparatory patches separate OMAP's locked TX completion processing, serialize asynchronous write wakeups, and fix OMAP RX locking and shutdown ordering. Serial-core reservation helpers then protect 8250 TX storage. Flushing empties the logical queue immediately. While the old transfer owns its storage, write_room() reports zero and write-ready notifications wait for retirement. Failed termination retains the reservation until normal completion, without advancing the reset FIFO. DMA retirement releases the reservation independently of port readiness. Serial core keeps writes and write-ready notifications gated during shutdown until successful startup or resume. Flushes still notify threads waiting for the logical FIFO to empty, independently of whether its storage can be reused. RX delivers paused data before the PIO fallback and retires callbacks in process context. Track FIFO access separately from buffer retirement so PIO and the DesignWare empty-FIFO timeout handling can run once DMA has released the FIFO. Retry ambiguous pause failures until a successful pause or reported completion makes the buffer stable. Keep receive interrupts masked meanwhile, preserving the requested enables in the IER shadow. Back off pause retries from 1 ms to one second, with completion and shutdown waking the worker immediately. Report prolonged stalls while retaining the transfer, and reset the retry delay when the pending flush finishes. Confirmed DMA errors use synchronous recovery and leave RX on PIO until reopen. Shutdown excludes new retirement work before releasing the channels. Final shutdown retains both channels and their storage until synchronous termination succeeds. Retry failed channels outside the port lock, starting with a 1 ms sleep and doubling it up to one second to limit sustained retries. Report the initial error, rate-limit subsequent failures with elapsed time, and report recovery once both channels have stopped and drained. A permanently failed DMA engine blocks teardown while retaining its storage and callback state. DMA providers must supply the callback-drain guarantee of dmaengine_synchronize() before retirement releases storage. The related provider synchronization fixes are tracked separately and must precede these consumer changes on affected controllers. Based on tty-next at 6b4b543fa187 with the posted shutdown guard [0], channel configuration error handling [1], RX TTY accounting fix [2], RZ/N1 transfer-length fix [3], transmit-PM shutdown fix [4], serport write-wakeup deferral v2 [5], DesignWare BUSY-safe fractional-divisor programming [6], and Intel MID RX DMA timeout locking [7]. The serport fix is needed before serializing the remaining write-wakeup callers with the port lock. [0] https://lore.kernel.org/r/20261021-submit-serial-8250-dma-shutdown-v1-v1-1-3d3ce383c614@gmail.com [1] https://lore.kernel.org/r/20261021-submit-serial-8250-dma-config-errors-v1-v1-1-c067587d1ef2@gmail.com [2] https://lore.kernel.org/r/20261021-submit-serial-8250-dma-rx-accounting-v1-v1-1-c11795914ab4@gmail.com [3] https://lore.kernel.org/r/20261023-submit-serial-8250-dma-tx-length-v1-v2-1-c3106ef4d2df@gmail.com [4] https://lore.kernel.org/r/20261022-submit-serial-8250-tx-pm-shutdown-v1-v1-1-0e894afa3bb8@gmail.com [5] https://lore.kernel.org/r/20261028-submit-serport-write-wakeup-v1-v2-1-c05d96259985@gmail.com [6] https://lore.kernel.org/r/20261027-submit-serial-8250-dw-divisor-v1-v4-1-41714a75e15a@gmail.com [7] https://lore.kernel.org/r/20261024-submit-serial-8250-mid-rx-lock-v1-v1-1-2b9afdf869d7@gmail.com Assisted-by: Codex:gpt-6-astra Signed-off-by: James Hilliard --- Changes in v9: - Back off pending RX pause retries from 1 ms to one second, wake the worker on completion and shutdown, and report prolonged stalls once per flush through a rate-limited warning. Reset the delay for each new flush. - Lock ST ASC startup's transmit servicing and RX interrupt enable after requesting the IRQ, covering write wakeups from an empty FIFO as well. - Wake logical-FIFO drain waiters after a flush even while TX storage is reserved or the port is not ready, keeping line-discipline write-ready callbacks deferred until writes are allowed. - Use plain port locking where interrupt context or an enclosing IRQ-saving lock already supplies the required exclusion, retaining IRQ-saving locks in workers, tasklets and mixed-context callers. - Separate OMAP RX completion/flush locking and shutdown IRQ draining into two preparatory fixes, with their own rationale and Fixes tags. - Place the new delay header before the existing include block. - Back off failed final DMA termination retries from 1 ms to a one-second cap. Report the initial failure, rate-limit ongoing failures with elapsed time and current RX/TX errors, and report successful recovery. - Link to v8: https://patch.msgid.link/20261029-submit-serial-8250-dma-cancel-v1-v8-0-3fd56ba352ed@gmail.com Changes in v8: - Retain RX transfers after ambiguous pause failures and retry in the worker until pause succeeds or completion is reported, preserving delayed data while masking RX interrupts and allowing shutdown to take over. - Retain both DMA channels and their storage during final shutdown until synchronous termination succeeds, retrying failures outside the port lock. - Update the serport write-wakeup prerequisite to the posted v2. - Cover DZ transmit servicing, DECstation ZS TX/modem handling and JSM Classic modem notifications with the port lock. - Defer ZS console-triggered TX restart to a worker, preserving the port-before-SCC lock order and draining work during teardown. - Release Lantiq's private hardware lock before write-wakeup callbacks. - Assert the port-lock contract in uart_write_wakeup(). - Retain the tx_running guard in generic and OMAP TX callbacks. - Publish OMAP's shutdown gate before the final RX flush, serialize RX completion and runtime-suspend flushes with port and RX DMA locks, and drain its UART interrupt before releasing DMA state. - Link to v7: https://patch.msgid.link/20261027-submit-serial-8250-dma-cancel-v1-v7-0-985a023ba4b4@gmail.com Changes in v7: - Rebase onto tty-next at 6b4b543fa187. - Use v4 of the DesignWare BUSY-safe fractional-divisor prerequisite. - Use an unsigned long bitmap and for_each_set_bit() for SCCNXP deferred write wakeups, with unsigned port indices. - Narrow SB1250 modem-status locking to shared-state updates and avoid taking the port lock for RX-only interrupts. Keep TX FIFO consumption and interrupt masking serialized with writers. - Link to v6: https://lore.kernel.org/r/20261024-submit-serial-8250-dma-cancel-v1-v6-0-6f366591f566@gmail.com Changes in v6: - Use v2 of the DesignWare BUSY-safe fractional-divisor prerequisite. - Serialize CLPS711x TX servicing and interrupt-enable state with the port lock. Use non-waiting IRQ disable in stop_tx(), skip queued TX interrupts after stopping, and drain the handler outside the lock during shutdown. - Make the Atmel RX/TX tasklets and SB1250 termios locking IRQ-safe alongside their interrupt-handler locking, preserving the caller's interrupt state when releasing the port lock. - Report RX DMA recovery after releasing the port lock, keeping the state changes and interrupt-enable restoration serialized. - Link to v5: https://patch.msgid.link/20261024-submit-serial-8250-dma-cancel-v1-v5-0-9e52968928d2@gmail.com Changes in v5: - Add the posted serport write-wakeup deferral as a prerequisite for the caller-locking preparation. - Add a preparatory patch serializing asynchronous write-wakeup callers with the port lock, including indirect CTS and transmit-helper calls. Keep sleeping register accesses outside the lock and defer SCCNXP notifications until its controller lock is released. - Use the separately posted DesignWare BUSY-safe fractional-divisor fix and Intel MID RX DMA timeout locking fix as prerequisites, leaving five patches in this series. - Separate serial-core write readiness from DMA storage reservations. Record retirement during startup and shutdown while keeping writes and wakeups gated until the port is ready. - Wake deferred writers after successful startup or resume, including when reopening with a retained FIFO, and restart any retained queued output. - Keep the write-ready notification pending while retained output is at or above the normal wakeup threshold, until TX completion drains it. - Publish resume readiness under the TX restart lock without releasing a reservation that may belong to a newly flushed transfer. - Release 8250's TX reservation after shutdown has stopped DMA and unmapped the source; serial core retains control of write readiness. - Link to v4: https://patch.msgid.link/20261023-submit-serial-8250-dma-cancel-v1-v4-0-e759de1839de@gmail.com Changes in v4: - Retain flushed TX reservations through shutdown and failed resume. Release them after successful resume, or when allocating a new FIFO on reopen, so retirement cannot wake writers into a closing port. - Treat RX flush as complete once the channel is inactive, and clear the shutdown guard before startup configures the UART and tests interrupts. - Check completion after a failed pause so a transfer that finished before its callback acquired the port lock is delivered and retired normally. - Keep DesignWare's BUSY-safe divisor setter after fractional-divisor discovery, writing DLF and DLL/DLH only after confirming DLAB. - Link to v3: https://patch.msgid.link/20261023-submit-serial-8250-dma-cancel-v1-v3-0-d78f9e4c4932@gmail.com Changes in v3: - Defer write-ready wakeups while flushed TX storage is reserved, and serialize the flush wakeup with the reservation under the port lock. - Suppress ordinary TX starts during the reservation while preserving high-priority flow-control characters, which use separate storage. - Separate RX FIFO access from callback retirement, allowing PIO and the DesignWare empty-FIFO timeout workaround after a successful pause and termination while keeping the receive buffer reserved. - Use the existing IER shadow for requested enables and a shared register writer to keep receive interrupts masked throughout DMA error recovery, including termios, RS485, modem-status and overrun-backoff updates. - Preserve the timeout-enable bit across stop_rx(), exclude late shutdown interrupts from PIO, and avoid FIFO resets during RX DMA recovery. - Preserve the completion-path LSR read after stop_rx(), while gating DMA resubmission on the receive interrupt enable. - Pack the cancellation flags after moving all their accesses under the port lock, including the recovery worker's snapshot and initialization. - Apply the early-return, shared-helper and line-wrapping cleanups. - Link to v2: https://patch.msgid.link/20261022-submit-serial-8250-dma-cancel-v1-v2-0-088ea51e3891@gmail.com Changes in v2: - Add serial-core helpers to reserve flushed transmit storage until DMA retirement. Apply write backpressure during that interval and keep normal TX using the FIFO directly, replacing the private transmit buffer in v1. - Document the flush callback's reservation, writer backpressure and retirement requirements, including release before shutdown returns. - Split the OMAP completion refactor into a preparatory patch and move the RZ/N1 preparation-order and shutdown PM fixes to independent submissions, keeping four patches in this series. - Take runtime PM references around worker UART accesses, and leave normal RX retirement to release ownership without reading LSR or restarting DMA. - Synchronize the queued TX ranges before preparing the descriptor and return the mapping to CPU ownership before releasing the reservation. - Keep the TX transfer length separate from FIFO cancellation, so a failed termination can account completion without advancing the reset FIFO. - Exclude late RX flush work during shutdown, including Intel MID DMA timeout interrupts which are independent of UART_IER. - Accept DMA_IN_PROGRESS after successful pause, and recover from failed pause, termination or DMA_ERROR before handing the receiver to PIO. - Preserve stop_rx() and shutdown across recovery, and retain the DesignWare empty-FIFO timeout workaround when receiving through PIO. - Apply the requested guard spacing and container_of() formatting. - Link to v1: https://patch.msgid.link/20261021-submit-serial-8250-dma-cancel-v1-v1-0-efe2b89f2303@gmail.com To: Greg Kroah-Hartman To: Jiri Slaby To: Richard Genoud To: Nicolas Ferre To: Alexandre Belloni To: Claudiu Beznea To: "Maciej W. Rozycki" To: Jacky Huang To: Shan-Chun Hung To: Pali Rohár To: Frank Li To: Sascha Hauer To: Pengutronix Kernel Team To: Fabio Estevam To: Timur Tabi To: Peter Ujfalusi To: Vignesh Raghavendra To: Tony Lindgren To: Raul E Rangel To: Ilpo Järvinen To: Andy Shevchenko To: Heikki Krogerus To: Patrice Chotard Cc: linux-kernel@vger.kernel.org Cc: linux-serial@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: imx@lists.linux.dev Cc: linuxppc-dev@lists.ozlabs.org --- James Hilliard (8): serial: 8250_omap: separate locked TX DMA completion processing serial: serialize asynchronous write wakeups with the port lock serial: 8250_omap: serialize RX DMA completion and flushing serial: 8250_omap: quiesce DMA IRQ handling before shutdown serial: core: allow drivers to reserve flushed transmit storage serial: 8250: drain canceled TX DMA before reusing its buffer serial: 8250: retire canceled RX DMA before reusing the receive buffer serial: 8250: retain DMA resources when termination fails drivers/tty/serial/21285.c | 2 + drivers/tty/serial/8250/8250.h | 66 +++++- drivers/tty/serial/8250/8250_core.c | 2 +- drivers/tty/serial/8250/8250_dma.c | 395 +++++++++++++++++++++++++++++------- drivers/tty/serial/8250/8250_dw.c | 28 ++- drivers/tty/serial/8250/8250_omap.c | 68 +++++-- drivers/tty/serial/8250/8250_port.c | 36 +++- drivers/tty/serial/atmel_serial.c | 12 +- drivers/tty/serial/clps711x.c | 23 ++- drivers/tty/serial/cpm_uart.c | 2 + drivers/tty/serial/dz.c | 9 +- drivers/tty/serial/fsl_lpuart.c | 2 +- drivers/tty/serial/jsm/jsm_cls.c | 6 +- drivers/tty/serial/jsm/jsm_neo.c | 9 +- drivers/tty/serial/lantiq.c | 12 +- drivers/tty/serial/ma35d1_serial.c | 6 +- drivers/tty/serial/max3100.c | 6 +- drivers/tty/serial/max310x.c | 9 +- drivers/tty/serial/mux.c | 13 +- drivers/tty/serial/mvebu-uart.c | 2 + drivers/tty/serial/mxs-auart.c | 2 + drivers/tty/serial/sb1250-duart.c | 25 ++- drivers/tty/serial/sccnxp.c | 45 +++- drivers/tty/serial/serial_core.c | 106 +++++++++- drivers/tty/serial/st-asc.c | 2 + drivers/tty/serial/ucc_uart.c | 6 +- drivers/tty/serial/zs.c | 94 ++++++--- drivers/tty/serial/zs.h | 3 + include/linux/serial_core.h | 18 +- 29 files changed, 790 insertions(+), 219 deletions(-) --- base-commit: 6b4b543fa18757297ac756a6fe6e64f506b7844a change-id: 20261021-submit-serial-8250-dma-cancel-v1-b208f84e89c1 prerequisite-patch-id: 3604bfaa3a1c214997de1f11162b81a4541af5ab prerequisite-patch-id: 79dd093ffb35e254e790dffb8887faf51b64f947 prerequisite-patch-id: 80a5061d84c055a64c760268febed179c687b99f prerequisite-patch-id: 7dbb404baf1f861982cf6a4b755d39cfec548223 prerequisite-patch-id: 40881d81a27b3a1aa45203d171214faaf2197768 prerequisite-patch-id: 76506fd9b234c7268227ff41e4d0989e82a1a433 prerequisite-patch-id: d8219673210dac82d3adab41578ff2f76f5862c9 prerequisite-patch-id: 48659e5ef3f5fb377d0b751f0830c0de4699262c Best regards, -- James Hilliard