---
id: CVE-2022-50426
title: 'remoteproc: imx_dsp_rproc: Add mutex protection for workqueue'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  remoteproc: imx_dsp_rproc: Add mutex protection for workqueue

  The workqueue may execute late even after remoteproc is stopped or
  stopping, some resources (rpmsg device…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= ec0e5549f3586d2cb99a05edd006d722ebad912c <
    4a3e1fa7a77838617bdbcd95127ce93a959fad44
  - >-
    Linux >= ec0e5549f3586d2cb99a05edd006d722ebad912c <
    b9693304b7133b81741add5bfb56f022596df012
  - >-
    Linux >= ec0e5549f3586d2cb99a05edd006d722ebad912c <
    47e6ab07018edebf94ce873cf50a05ec76ff2dde
  - Linux 5.16
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-05T20:10:28.496850Z'
published: '2025-10-01'
updated: '2026-11-05'
sourceUpdated: '2026-11-05T20:20:43.024Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2022-50426'
references:
  - url: 'https://git.kernel.org/stable/c/4a3e1fa7a77838617bdbcd95127ce93a959fad44'
  - url: 'https://git.kernel.org/stable/c/b9693304b7133b81741add5bfb56f022596df012'
  - url: 'https://git.kernel.org/stable/c/47e6ab07018edebf94ce873cf50a05ec76ff2dde'
tags:
  - cve.org
epss: 0.00157
epssPercentile: 0.04902
ingestedAt: '2026-11-05T22:38:31.733Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

remoteproc: imx_dsp_rproc: Add mutex protection for workqueue

The workqueue may execute late even after remoteproc is stopped or
stopping, some resources (rpmsg device and endpoint) have been
released in rproc_stop_subdevices(), then rproc_vq_interrupt()
accessing these resources will cause kennel dump.

Call trace:
 virtqueue_add_split+0x1ac/0x560
 virtqueue_add_inbuf+0x4c/0x60
 rpmsg_recv_done+0x15c/0x294
 vring_interrupt+0x6c/0xa4
 rproc_vq_interrupt+0x30/0x50
 imx_dsp_rproc_vq_work+0x24/0x40 [imx_dsp_rproc]
 process_one_work+0x1d0/0x354
 worker_thread+0x13c/0x470
 kthread+0x154/0x160
 ret_from_fork+0x10/0x20

Add mutex protection in imx_dsp_rproc_vq_work(), if the state is
not running, then just skip calling rproc_vq_interrupt().

Also the flush workqueue operation can't be added in rproc stop
for the same reason. The call sequence is

rproc_shutdown
-> rproc_stop
   ->rproc_stop_subdevices
   ->rproc->ops->stop()
     ->imx_dsp_rproc_stop
       ->flush_work
         -> rproc_vq_interrupt

The resource needed by rproc_vq_interrupt has been released in
rproc_stop_subdevices, so flush_work is not safe to be called in
imx_dsp_rproc_stop.

## Affected

- `Linux >= ec0e5549f3586d2cb99a05edd006d722ebad912c < 4a3e1fa7a77838617bdbcd95127ce93a959fad44`
- `Linux >= ec0e5549f3586d2cb99a05edd006d722ebad912c < b9693304b7133b81741add5bfb56f022596df012`
- `Linux >= ec0e5549f3586d2cb99a05edd006d722ebad912c < 47e6ab07018edebf94ce873cf50a05ec76ff2dde`
- `Linux 5.16`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
