[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 02:02:53 PDT 2025


Tested-by: a-development <a-development at posteo.de>

On 02.09.2025 09:56, Baochen Qiang wrote:
> On 9/2/2025 3:11 PM, a-development at posteo.de wrote:
>> 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!
> 
> Thank you for quick testing!
> 
> Would you mind providing a 'Tested-by:' tag such that I can include it
> in the patch?
> 
>> 
>> 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
> 
> This seems the same issue, so yeah I think it should be resolved with
> the diff here.
> 
>> 
>> 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