[PATCH ath-next 2/6] wifi: ath11k: Register debugfs for CFR configuration

Baochen Qiang baochen.qiang at oss.qualcomm.com
Sun Nov 2 19:14:10 PST 2025



On 11/2/2025 5:21 PM, Yu Zhang(Yuriy) wrote:
> 
> 
> On 10/31/2025 10:43 AM, Baochen Qiang wrote:
>>
>>
>> On 10/30/2025 12:31 PM, Yu Zhang(Yuriy) wrote:
>>
>>> @@ -88,6 +275,7 @@ void ath11k_cfr_deinit(struct ath11k_base *ab)
>>>               ar = ab->pdevs[i].ar;
>>>               cfr = &ar->cfr;
>>>   +            ath11k_cfr_debug_unregister(ar);
>>>               ath11k_cfr_ring_free(ar);
>>>                 spin_lock_bh(&cfr->lut_lock);
>>> @@ -140,6 +328,8 @@ int ath11k_cfr_init(struct ath11k_base *ab)
>>>           }
>>>             cfr->lut_num = num_lut_entries;
>>> +
>>> +        ath11k_cfr_debug_register(ar);
>>>       }
>>>         return 0;
>>
>> miss _debug_unregister() in the error handling?
>>
>>
> The documention for debugfs_create_file() tells us:
>  * NOTE: it's expected that most callers should _ignore_ the errors returned
>  * by this function. Other debugfs functions handle the fact that the "dentry"
>  * passed to them could be an error and they don't crash in that case.
>  * Drivers should generally work fine even if debugfs fails to init anyway.
> 
> So IMO any failure to create the file should be ignored.

Maybe I was not clear ...

I was not meaning the error check on ath11k_cfr_debug_register() or debugfs_create_file(),
but was meaning that in the err handling below it, _debug_unregistered needs to be added:

		cfr->lut_num = num_lut_entries;
+
+               ath11k_cfr_debug_register(ar);
	}

	return 0;

err:
	for (i = i - 1; i >= 0; i--) {
		ar = ab->pdevs[i].ar;
		cfr = &ar->cfr;

+		ath11k_cfr_debug_unregister()
		ath11k_cfr_ring_free(ar);

		spin_lock_bh(&cfr->lut_lock);
		kfree(cfr->lut);
		cfr->lut = NULL;
		spin_unlock_bh(&cfr->lut_lock);
	}
	return ret;
}

> 
> 



More information about the ath11k mailing list