Debian Patches

Status for fastrpc/1.0.6-2

Patch Description Author Forwarded Bugs Origin Last update
dsprpcd-fix-restart-behavior dsprpcd: fix daemon restart behavior for SIGTERM and ENOMEM Exit the internal restart loop on AEE_ENOMEMORY so the daemon does not
spin indefinitely when the kernel reports OOM; it is pointless to retry
in that condition.
.
Add RestartForceExitStatus=SIGTERM to all service files so that an
unintended SIGTERM (e.g. pkill) is treated as a failure and triggers a
restart, consistent with SIGKILL behavior.
.
Add RestartPreventExitStatus=2 (AEE_ENOMEMORY) to the audiopd service
only, since the kernel returns ENOMEM when the remote heap DMA region is
not configured, which is a permanent condition that restarting cannot
recover from.
.
Without this, adsprpcd_audiopd.service is restarted endlessly on boards
whose device tree lacks the audio remote heap DMA region, which was
observed to send RB1 (Agatti) into a reboot loop with mainline kernels.
.
Debian delta relative to the upstream commit: upstream writes the
audiopd setting as
.
RestartPreventExitStatus=2 # AEE_ENOMEMORY
.
but systemd unit files do not support trailing comments, so systemd
fails to parse the value and ignores the setting; the comment is moved
to a line of its own here. To be reported upstream.
Vinayak Katoch <vinayak.katoch@oss.qualcomm.com> yes upstream upstream, https://github.com/qualcomm/fastrpc/commit/cd0c0dbbfef8ae950f9ebb4483a9b0192d8fb6a6 2026-08-13
udev-start-offline-dsp-remoteprocs udev: start DSP remoteprocs left offline When qcom_q6v5_pas is loaded from the initramfs, rproc_add() auto-boots
the core before the root filesystem is mounted. /lib/firmware is not
reachable yet, so request_firmware() fails with -ENOENT, and the
remoteproc core has no retry path: the DSP stays "offline" for the rest
of the boot even though the firmware is present on disk. With no DSP
there is no rpmsg channel, so no /dev/fastrpc-* node appears and none of
the daemons in 60-fastrpc.rules can start.
.
Add a udev rule that writes "start" to the remoteproc state attribute.
The event fires twice: once in the initramfs, where the write still
fails for the same reason the kernel's did, and again from the coldplug
pass that systemd-udev-trigger.service runs after switch_root, where the
firmware is reachable and the boot succeeds. udev logs and ignores the
failed write, so the first pass is harmless.
.
Only cores that qcom_q6v5_pas auto-boots and that FastRPC uses are
matched. modem and wpss have .auto_boot = false: modem is absent by
design on some SoCs, and ath11k owns the wpss lifecycle.
.
The ATTR{state}=="offline" gate is required: rproc_boot() increments
rproc->power unconditionally, so writing to an already-running core
would pin an extra reference and prevent a later shutdown or subsystem
restart from taking effect.
.
This is a userspace stopgap for the kernel bug; it can be dropped once a
kernel-side retry lands.
.
Relates to https://github.com/qualcomm-linux/kernel/issues/923
Loïc Minier <loic.minier@oss.qualcomm.com> yes upstream upstream, https://github.com/qualcomm/fastrpc/pull/372 2026-08-13

All known versions for source package 'fastrpc'

Links