Re: radeon.ko/i586: BUG: kernel NULL pointerdereference,address:00000004

From: kkabe
Date: Fri Jul 21 2023 - 21:57:28 EST


rostedt@xxxxxxxxxxx sed in <20230717112138.1fd48cca@xxxxxxxxxxxxxxxxxx>

>> On Sat, 15 Jul 2023 11:39:11 +0900
>> <kkabe@xxxxxxxxxxx> wrote:
>>
>>
>> > Yes, this is puzzling. That's why I need other people's opinion on this.
>> > Does it matter the DUT is a slow machine (Pentium 120MHz)?
>> >
>>
>> Hmm, I wonder because the workqueue is running __init functions, could it
>> possibly be that it didn't finish before the end of boot, where it frees
>> all the functions? It shouldn't do that because there's code to make sure
>> it's done before it continues further.
>>
>> But just in case something isn't working as planned, you could try this
>> patch to see if the bug goes away.
>>
>> -- Steve
>>
>> diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
>> index 05c0024815bf..af5a40ef3be4 100644
>> --- a/kernel/trace/ftrace.c
>> +++ b/kernel/trace/ftrace.c
>> @@ -3771,13 +3771,13 @@ static int test_for_valid_rec(struct dyn_ftrace *rec)
>> return 1;
>> }
>>
>> -static struct workqueue_struct *ftrace_check_wq __initdata;
>> -static struct work_struct ftrace_check_work __initdata;
>> +static struct workqueue_struct *ftrace_check_wq;
>> +static struct work_struct ftrace_check_work;
>>
>> /*
>> * Scan all the mcount/fentry entries to make sure they are valid.
>> */
>> -static __init void ftrace_check_work_func(struct work_struct *work)
>> +static void ftrace_check_work_func(struct work_struct *work)
>> {
>> struct ftrace_page *pg;
>> struct dyn_ftrace *rec;
>>

Just in case I tried this patch too;
no banana, it panics (vblank->worker == NULL check fires)

--
kabe