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

a-development at posteo.de a-development at posteo.de
Tue Sep 2 00:11:55 PDT 2025


Hello - the below diff fixes my issue.
I can finally boot/reboot/shutdown AND use my WiFi module - and not only 
Bluetooth.

Thank you so much!

Can you push the fix upstream?
Also maybe have a look at the linked issue which now would be resolved 
if patch is published?
https://bugzilla.kernel.org/show_bug.cgi?id=220518

On 02.09.2025 04:51, Baochen Qiang wrote:
> 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