[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
Tue Sep 2 00:56:40 PDT 2025



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