* [PATCH 1/5] accel/qaic: Add missing <linux/device-id/mhi.h> to sahara and timesync
2026-07-27 17:33 [PATCH 0/5] accel/qaic: Add missing <linux/device-id/mhi.h> to .c files Youssef Samir
@ 2026-07-27 17:33 ` Youssef Samir
2026-07-27 17:33 ` [PATCH 2/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_drv.c Youssef Samir
` (3 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Youssef Samir @ 2026-07-27 17:33 UTC (permalink / raw)
To: jeff.hugo, carl.vanderlip, troy.hanson, zachary.mckevitt
Cc: ogabbay, lizhi.hou, linux-arm-msm, dri-devel
qaic_timesync.c and sahara.c use struct mhi_device_id implicitly since
commit 995832b2cebe ("Replace <linux/mod_devicetable.h> by more specific
<linux/device-id/*.h> (c files)") removed <linux/mod_devicetable.h>.
Explicitly include <linux/device-id/mhi.h> in qaic_timesync.c and sahara.c.
Fixes: 995832b2cebe ("Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files)")
Signed-off-by: Youssef Samir <youssef.abdulrahman@oss.qualcomm.com>
---
drivers/accel/qaic/qaic_timesync.c | 1 +
drivers/accel/qaic/sahara.c | 1 +
2 files changed, 2 insertions(+)
diff --git a/drivers/accel/qaic/qaic_timesync.c b/drivers/accel/qaic/qaic_timesync.c
index 45e5f0728ebe..b5162677ccc4 100644
--- a/drivers/accel/qaic/qaic_timesync.c
+++ b/drivers/accel/qaic/qaic_timesync.c
@@ -2,6 +2,7 @@
/* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */
+#include <linux/device-id/mhi.h>
#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/math64.h>
diff --git a/drivers/accel/qaic/sahara.c b/drivers/accel/qaic/sahara.c
index c7c0b3eb4b65..8476be9b9148 100644
--- a/drivers/accel/qaic/sahara.c
+++ b/drivers/accel/qaic/sahara.c
@@ -3,6 +3,7 @@
/* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */
#include <linux/devcoredump.h>
+#include <linux/device-id/mhi.h>
#include <linux/firmware.h>
#include <linux/limits.h>
#include <linux/mhi.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 2/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_drv.c
2026-07-27 17:33 [PATCH 0/5] accel/qaic: Add missing <linux/device-id/mhi.h> to .c files Youssef Samir
2026-07-27 17:33 ` [PATCH 1/5] accel/qaic: Add missing <linux/device-id/mhi.h> to sahara and timesync Youssef Samir
@ 2026-07-27 17:33 ` Youssef Samir
2026-07-27 17:44 ` sashiko-bot
2026-07-27 17:33 ` [PATCH 3/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_debugfs.c Youssef Samir
` (2 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Youssef Samir @ 2026-07-27 17:33 UTC (permalink / raw)
To: jeff.hugo, carl.vanderlip, troy.hanson, zachary.mckevitt
Cc: ogabbay, lizhi.hou, linux-arm-msm, dri-devel
qaic_drv.c uses mhi_device_id implicitly. Include <linux/device-id/mhi.h>.
Fixes: c501ca23a6a3 ("accel/qaic: Add uapi and core driver file")
Signed-off-by: Youssef Samir <youssef.abdulrahman@oss.qualcomm.com>
---
drivers/accel/qaic/qaic_drv.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/accel/qaic/qaic_drv.c b/drivers/accel/qaic/qaic_drv.c
index 0acf6cdd44f8..c1bb6db78d12 100644
--- a/drivers/accel/qaic/qaic_drv.c
+++ b/drivers/accel/qaic/qaic_drv.c
@@ -4,6 +4,7 @@
/* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */
#include <linux/delay.h>
+#include <linux/device-id/mhi.h>
#include <linux/dma-mapping.h>
#include <linux/idr.h>
#include <linux/interrupt.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH 2/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_drv.c
2026-07-27 17:33 ` [PATCH 2/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_drv.c Youssef Samir
@ 2026-07-27 17:44 ` sashiko-bot
0 siblings, 0 replies; 7+ messages in thread
From: sashiko-bot @ 2026-07-27 17:44 UTC (permalink / raw)
To: Youssef Samir; +Cc: dri-devel
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
Pre-existing issues:
- [High] Missing teardown of registered drivers (Sahara, RAS, Timesync) when module initialization fails in qaic_init().
- [High] The return value of init_srcu_struct() is ignored, which can cause a kernel panic if the per-CPU memory allocation fails.
--
--- Patch [2]: [PATCH 2/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_drv.c ---
commit 659a1f299787dffbb6e5f80693c0d8c629fc6ab4
Author: Youssef Samir <youssef.abdulrahman@oss.qualcomm.com>
accel/qaic: Add <linux/device-id/mhi.h> to qaic_drv.c
qaic_drv.c uses mhi_device_id implicitly. Include <linux/device-id/mhi.h>.
> diff --git a/drivers/accel/qaic/qaic_drv.c b/drivers/accel/qaic/qaic_drv.c
> index 0acf6cdd44f81..c1bb6db78d129 100644
> --- a/drivers/accel/qaic/qaic_drv.c
> +++ b/drivers/accel/qaic/qaic_drv.c
> @@ -4,6 +4,7 @@
> /* Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. */
>
> #include <linux/delay.h>
> +#include <linux/device-id/mhi.h>
[Severity: High]
This is a pre-existing issue, but does qaic_init() leave dangling references if
module initialization fails?
If qaic_ssr_register() fails, the code jumps to the free_bootlog label:
drivers/accel/qaic/qaic_drv.c:qaic_init() {
...
free_bootlog:
qaic_bootlog_unregister();
free_mhi:
mhi_driver_unregister(&qaic_mhi_driver);
free_pci:
pci_unregister_driver(&qaic_pci_driver);
return ret;
}
This error path unregisters the bootlog, MHI driver, and PCI driver, but skips
unregistering the sahara, ras, and timesync components that were initialized
earlier.
Could the MHI core eventually access this freed memory, leading to a
use-after-free panic?
[Severity: High]
This is a pre-existing issue, but can the ignored return value of
init_srcu_struct() in qaic_open() lead to a panic?
drivers/accel/qaic/qaic_drv.c:qaic_open() {
...
init_srcu_struct(&usr->qddev_lock);
...
}
If it fails to allocate required internal structures (returning e.g. -ENOMEM),
the srcu_sup pointer in usr->qddev_lock is left as NULL. If the subsequent
mutex_lock_interruptible() fails, the code jumps to cleanup_usr and calls:
drivers/accel/qaic/qaic_drv.c:qaic_open() {
...
cleanup_srcu_struct(&usr->qddev_lock);
...
}
Will cleanup_srcu_struct() blindly dereference the NULL srcu_sup pointer,
causing a crash?
> #include <linux/dma-mapping.h>
> #include <linux/idr.h>
> #include <linux/interrupt.h>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260727173326.2219191-1-youssef.abdulrahman@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_debugfs.c
2026-07-27 17:33 [PATCH 0/5] accel/qaic: Add missing <linux/device-id/mhi.h> to .c files Youssef Samir
2026-07-27 17:33 ` [PATCH 1/5] accel/qaic: Add missing <linux/device-id/mhi.h> to sahara and timesync Youssef Samir
2026-07-27 17:33 ` [PATCH 2/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_drv.c Youssef Samir
@ 2026-07-27 17:33 ` Youssef Samir
2026-07-27 17:33 ` [PATCH 4/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_ras.c Youssef Samir
2026-07-27 17:33 ` [PATCH 5/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_ssr.c Youssef Samir
4 siblings, 0 replies; 7+ messages in thread
From: Youssef Samir @ 2026-07-27 17:33 UTC (permalink / raw)
To: jeff.hugo, carl.vanderlip, troy.hanson, zachary.mckevitt
Cc: ogabbay, lizhi.hou, linux-arm-msm, dri-devel
qaic_debugfs.c uses mhi_device_id implicitly. Include
<linux/device-id/mhi.h>.
Fixes: 5f8df5c6def6 ("accel/qaic: Add bootlog debugfs")
Signed-off-by: Youssef Samir <youssef.abdulrahman@oss.qualcomm.com>
---
drivers/accel/qaic/qaic_debugfs.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/accel/qaic/qaic_debugfs.c b/drivers/accel/qaic/qaic_debugfs.c
index 95c78e12dd61..909a4d774d90 100644
--- a/drivers/accel/qaic/qaic_debugfs.c
+++ b/drivers/accel/qaic/qaic_debugfs.c
@@ -5,6 +5,7 @@
#include <linux/debugfs.h>
#include <linux/device.h>
+#include <linux/device-id/mhi.h>
#include <linux/fs.h>
#include <linux/list.h>
#include <linux/mhi.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 4/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_ras.c
2026-07-27 17:33 [PATCH 0/5] accel/qaic: Add missing <linux/device-id/mhi.h> to .c files Youssef Samir
` (2 preceding siblings ...)
2026-07-27 17:33 ` [PATCH 3/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_debugfs.c Youssef Samir
@ 2026-07-27 17:33 ` Youssef Samir
2026-07-27 17:33 ` [PATCH 5/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_ssr.c Youssef Samir
4 siblings, 0 replies; 7+ messages in thread
From: Youssef Samir @ 2026-07-27 17:33 UTC (permalink / raw)
To: jeff.hugo, carl.vanderlip, troy.hanson, zachary.mckevitt
Cc: ogabbay, lizhi.hou, linux-arm-msm, dri-devel
qaic_ras.c uses mhi_device_id implicitly. Include <linux/device-id/mhi.h>.
Fixes: c11a50b170e7 ("accel/qaic: Add Reliability, Accessibility, Serviceability (RAS)")
Signed-off-by: Youssef Samir <youssef.abdulrahman@oss.qualcomm.com>
---
drivers/accel/qaic/qaic_ras.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/accel/qaic/qaic_ras.c b/drivers/accel/qaic/qaic_ras.c
index e0205c2cda3d..236e520f708f 100644
--- a/drivers/accel/qaic/qaic_ras.c
+++ b/drivers/accel/qaic/qaic_ras.c
@@ -5,6 +5,7 @@
#include <asm/byteorder.h>
#include <linux/device.h>
+#include <linux/device-id/mhi.h>
#include <linux/kernel.h>
#include <linux/mhi.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread* [PATCH 5/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_ssr.c
2026-07-27 17:33 [PATCH 0/5] accel/qaic: Add missing <linux/device-id/mhi.h> to .c files Youssef Samir
` (3 preceding siblings ...)
2026-07-27 17:33 ` [PATCH 4/5] accel/qaic: Add <linux/device-id/mhi.h> to qaic_ras.c Youssef Samir
@ 2026-07-27 17:33 ` Youssef Samir
4 siblings, 0 replies; 7+ messages in thread
From: Youssef Samir @ 2026-07-27 17:33 UTC (permalink / raw)
To: jeff.hugo, carl.vanderlip, troy.hanson, zachary.mckevitt
Cc: ogabbay, lizhi.hou, linux-arm-msm, dri-devel
qaic_ssr.c uses mhi_device_id implicitly. Include <linux/device-id/mhi.h>.
Fixes: 9675093acea0 ("accel/qaic: Implement basic SSR handling")
Signed-off-by: Youssef Samir <youssef.abdulrahman@oss.qualcomm.com>
---
drivers/accel/qaic/qaic_ssr.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/accel/qaic/qaic_ssr.c b/drivers/accel/qaic/qaic_ssr.c
index a98928654959..418f14936f9a 100644
--- a/drivers/accel/qaic/qaic_ssr.c
+++ b/drivers/accel/qaic/qaic_ssr.c
@@ -8,6 +8,7 @@
#include <drm/drm_managed.h>
#include <linux/devcoredump.h>
#include <linux/device.h>
+#include <linux/device-id/mhi.h>
#include <linux/kernel.h>
#include <linux/mhi.h>
#include <linux/workqueue.h>
--
2.43.0
^ permalink raw reply related [flat|nested] 7+ messages in thread