summaryrefslogtreecommitdiff
path: root/include/asm-mips/git@git.tavy.me:linux.git
diff options
context:
space:
mode:
authorChenghai Huang <huangchenghai2@huawei.com>2025-12-02 14:12:56 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-01-16 16:43:17 +0100
commit26c08dabe5475d99a13f353d8dd70e518de45663 (patch)
treec38e768ea6eb40fd8193d4714046ac4d3bbcecd5 /include/asm-mips/git@git.tavy.me:linux.git
parent02695347be532b628f22488300d40c4eba48b9b7 (diff)
uacce: ensure safe queue release with state management
Directly calling `put_queue` carries risks since it cannot guarantee that resources of `uacce_queue` have been fully released beforehand. So adding a `stop_queue` operation for the UACCE_CMD_PUT_Q command and leaving the `put_queue` operation to the final resource release ensures safety. Queue states are defined as follows: - UACCE_Q_ZOMBIE: Initial state - UACCE_Q_INIT: After opening `uacce` - UACCE_Q_STARTED: After `start` is issued via `ioctl` When executing `poweroff -f` in virt while accelerator are still working, `uacce_fops_release` and `uacce_remove` may execute concurrently. This can cause `uacce_put_queue` within `uacce_fops_release` to access a NULL `ops` pointer. Therefore, add state checks to prevent accessing freed pointers. Fixes: 015d239ac014 ("uacce: add uacce driver") Cc: stable@vger.kernel.org Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Signed-off-by: Yang Shen <shenyang39@huawei.com> Acked-by: Zhangfei Gao <zhangfei.gao@linaro.org> Link: https://patch.msgid.link/20251202061256.4158641-5-huangchenghai2@huawei.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/asm-mips/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions