Re: [RFC PATCH] drm/amdgpu: Avoid unnecessary Call Traces in amdgpu_irq_put()

From: Christian König

Date: Mon Jan 19 2026 - 05:45:52 EST


On 1/19/26 09:53, Tiezhu Yang wrote:
> On 2026/1/16 下午6:03, Christian König wrote:
>> On 1/16/26 02:20, Tiezhu Yang wrote:
>>> On 2026/1/15 下午9:47, Christian König wrote:
>>>> On 1/15/26 02:28, Tiezhu Yang wrote:
>>>>> Currently, there are many Call Traces when booting kernel on LoongArch,
>>>>> here are the trimmed kernel log messages:
>>>>>
>>>>>     amdgpu 0000:07:00.0: amdgpu: hw_init of IP block <gfx_v6_0> failed -110
>>>>>     amdgpu 0000:07:00.0: amdgpu: amdgpu_device_ip_init failed
>>>>>     amdgpu 0000:07:00.0: amdgpu: Fatal error during GPU init
>>>>>     amdgpu 0000:07:00.0: amdgpu: amdgpu: finishing device.
>>>>>     ------------[ cut here ]------------
>>>>>     WARNING: drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c:639 at amdgpu_irq_put+0xb0/0x140 [amdgpu], CPU#0: kworker/0:0/9
>>>>>     ...
>>>>>     Call Trace:
>
> ...
>
>> The warning can basically only be triggered by two conditions:
>> 1. A fatal problem while loading the driver and the error handling is not 100% clean.
>> 2. A driver coding error.
>>
>> And we really need to catch all of those, so there is no real rational to limit the warning.
>>
>> I mean when you run into any of those they should potentially be fixed at some point.
>
> I did the following change and it can fix the problem, given that I am
> not familiar with amdgpu driver, could you please check it? If it is OK,
> I will send a formal patch later.
>
> ----->8-----
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> index 8112ffc85995..ac19565e7c45 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c
> @@ -138,6 +138,9 @@ void amdgpu_irq_disable_all(struct amdgpu_device *adev)
>                         if (!src || !src->funcs->set || !src->num_types)
>                                 continue;
>
> +                       kfree(src->enabled_types);
> +                       src->enabled_types = NULL;
> +

Mhm, I need to double check that but that looks like not such a bad idea of hand.

Christian.

>                         for (k = 0; k < src->num_types; ++k) {
>                                 r = src->funcs->set(adev, src, k,
>
> AMDGPU_IRQ_STATE_DISABLE);
>
> Thanks,
> Tiezhu
>