[linux-mainline-6.17rc3-1-x86_64] RIP at qmi_handle_release with ath12k on a MSI x870e Carbon WiFi - mainline kernel.

Baochen Qiang baochen.qiang at oss.qualcomm.com
Mon Sep 1 19:51:28 PDT 2025



On 8/31/2025 11:36 PM, a-development at posteo.de wrote:
> Had the joy to build a new machine.
> I had to switch to mainline kernel to boot at all.
> Blacklisting with kernel 6.16 allows me to boot, or using latest mainline kernel.
> 
> Hardware is NEW.
> 
> Log: https://0x0.st/KH4D.txt
> Alternative: https://paste.gg/p/anonymous/52779beef5144f2fbe74be2673951f50
> 
> What should I do?

Could you try if below diff can fix your issue:

diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index 8d2839cf1de3..bc40958e885d 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -2109,14 +2109,27 @@ static int ath12k_core_hw_group_create(struct ath12k_hw_group *ag)
                ret = ath12k_core_soc_create(ab);
                if (ret) {
                        mutex_unlock(&ab->core_lock);
-                       ath12k_err(ab, "failed to create soc core: %d\n", ret);
-                       return ret;
+                       ath12k_err(ab, "failed to create soc %d core: %d\n", i, ret);
+                       goto destroy;
                }

                mutex_unlock(&ab->core_lock);
        }

        return 0;
+
+destroy:
+       for (i--; i >= 0; i--) {
+               ab = ag->ab[i];
+               if (!ab)
+                       continue;
+
+               mutex_lock(&ab->core_lock);
+               ath12k_core_soc_destroy(ab);
+               mutex_unlock(&ab->core_lock);
+       }
+
+       return ret;
 }

 void ath12k_core_hw_group_set_mlo_capable(struct ath12k_hw_group *ag)
@@ -2191,7 +2204,7 @@ int ath12k_core_init(struct ath12k_base *ab)
                if (ret) {
                        mutex_unlock(&ag->mutex);
                        ath12k_warn(ab, "unable to create hw group\n");
-                       goto err_destroy_hw_group;
+                       goto err_unassign_hw_group;
                }
        }

@@ -2199,8 +2212,7 @@ int ath12k_core_init(struct ath12k_base *ab)

        return 0;

-err_destroy_hw_group:
-       ath12k_core_hw_group_destroy(ab->ag);
+err_unassign_hw_group:
        ath12k_core_hw_group_unassign(ab);
 err_unregister_notifier:
        ath12k_core_panic_notifier_unregister(ab);


> 




More information about the ath12k mailing list