Kernel doesn't boot after DRM updates (drm-next-2024-09-19)
Christophe Leroy
christophe.leroy at csgroup.eu
Tue Oct 1 22:23:13 AEST 2024
Hi All,
Le 01/10/2024 à 14:09, Hoi Pok Wu a écrit :
> [Vous ne recevez pas souvent de courriers de wuhoipok at gmail.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
>
> Hi Thomas,
>
> Could you help on this issue?
> I do not have access to the hardware now.
> Thank you.
The OOPS is from function drm_dp_aux_register(), exactly here below:
static inline const char *dev_name(const struct device *dev)
{
/* Use the init name until the kobject becomes available */
if (dev->init_name)
1ae0: e8 89 00 50 ld r4,80(r9)
As you see in registers dump, r9 register is NULL. That's dev which is NULL:
GPR00: c0000000005b74f0 c0000000800daf10 c0000000015a3600 c00000008033f7ec
GPR04: 0000000000000000 c000000001908f18 c000000080460c80 ffffffffc0c0c0c0
GPR08: c000000080f74008 0000000000000000 0000000000000003 c000000080f74008
GPR12: 0000000048000828 c00000003fffeac0 0000000000000003 0000000001000000
GPR16: c0000000804eaeca 0000000000000013 0000000000003113 0000000000000000
GPR20: 0000000000000008 c0000000800db208 000000000000000a c0000000014d6868
GPR24: 0000000000000000 0000000000000001 c0000000800db29c c0000000800db250
GPR28: c000000080bd8040 0000000000000001 c000000080f74000 c00000008033f4a0
Full dump below:
0000000000001a5c <drm_dp_aux_register>:
{
1a5c: 3c 4c 00 00 addis r2,r12,0
1a5e: R_PPC64_REL16_HA .TOC.+0x2
1a60: 38 42 00 00 addi r2,r2,0
1a62: R_PPC64_REL16_LO .TOC.+0x6
1a64: 7c 08 02 a6 mflr r0
1a68: fb e1 ff f8 std r31,-8(r1)
1a6c: f8 01 00 10 std r0,16(r1)
1a70: 7c 7f 1b 78 mr r31,r3
1a74: f8 21 ff d1 stdu r1,-48(r1)
WARN_ON_ONCE(!aux->drm_dev);
1a78: e9 23 03 38 ld r9,824(r3)
1a7c: 2f a9 00 00 cmpdi cr7,r9,0
1a80: 41 de 00 90 beq- cr7,1b10 <drm_dp_aux_register+0xb4>
if (!aux->ddc.algo)
1a84: e9 3f 00 18 ld r9,24(r31)
1a88: 2f a9 00 00 cmpdi cr7,r9,0
1a8c: 41 de 00 74 beq- cr7,1b00 <drm_dp_aux_register+0xa4>
strscpy(aux->ddc.name, aux->name ? aux->name : dev_name(aux->dev),
1a90: e8 9f 00 00 ld r4,0(r31)
aux->ddc.owner = THIS_MODULE;
1a94: 39 40 00 00 li r10,0
aux->ddc.dev.parent = aux->dev;
1a98: e9 3f 03 30 ld r9,816(r31)
strscpy(aux->ddc.name, aux->name ? aux->name : dev_name(aux->dev),
1a9c: 38 7f 02 74 addi r3,r31,628
aux->ddc.owner = THIS_MODULE;
1aa0: f9 5f 00 08 std r10,8(r31)
strscpy(aux->ddc.name, aux->name ? aux->name : dev_name(aux->dev),
1aa4: 2f a4 00 00 cmpdi cr7,r4,0
aux->ddc.dev.parent = aux->dev;
1aa8: f9 3f 00 b8 std r9,184(r31)
strscpy(aux->ddc.name, aux->name ? aux->name : dev_name(aux->dev),
1aac: 41 de 00 34 beq- cr7,1ae0 <drm_dp_aux_register+0x84>
1ab0: 38 a0 00 30 li r5,48
1ab4: 48 00 00 01 bl 1ab4 <drm_dp_aux_register+0x58>
1ab4: R_PPC64_REL24 sized_strscpy
1ab8: 60 00 00 00 nop
ret = i2c_add_adapter(&aux->ddc);
1abc: 38 7f 00 08 addi r3,r31,8
1ac0: 48 00 00 01 bl 1ac0 <drm_dp_aux_register+0x64>
1ac0: R_PPC64_REL24 i2c_add_adapter
1ac4: 60 00 00 00 nop
}
1ac8: 38 21 00 30 addi r1,r1,48
1acc: e8 01 00 10 ld r0,16(r1)
1ad0: eb e1 ff f8 ld r31,-8(r1)
1ad4: 7c 08 03 a6 mtlr r0
1ad8: 4e 80 00 20 blr
1adc: 60 00 00 00 nop
* Return: The kobject name of the device, or its initial name if
unavailable.
*/
static inline const char *dev_name(const struct device *dev)
{
/* Use the init name until the kobject becomes available */
if (dev->init_name)
1ae0: e8 89 00 50 ld r4,80(r9)
1ae4: 2f a4 00 00 cmpdi cr7,r4,0
1ae8: 40 fe ff c8 bne+ cr7,1ab0 <drm_dp_aux_register+0x54>
return dev->init_name;
return kobject_name(&dev->kobj);
1aec: e8 89 00 00 ld r4,0(r9)
1af0: 4b ff ff c0 b 1ab0 <drm_dp_aux_register+0x54>
1af4: 60 00 00 00 nop
1af8: 60 00 00 00 nop
1afc: 60 00 00 00 nop
drm_dp_aux_init(aux);
1b00: 7f e3 fb 78 mr r3,r31
1b04: 48 00 00 01 bl 1b04 <drm_dp_aux_register+0xa8>
1b04: R_PPC64_REL24 drm_dp_aux_init
1b08: 4b ff ff 88 b 1a90 <drm_dp_aux_register+0x34>
1b0c: 60 00 00 00 nop
WARN_ON_ONCE(!aux->drm_dev);
1b10: 0f e0 00 00 twui r0,0
1b14: 4b ff ff 70 b 1a84 <drm_dp_aux_register+0x28>
>
> Regards,
> Wu Hoi Pok
>
>
> On Tue, Oct 1, 2024 at 12:26 PM Christian Zigotzky
> <chzigotzky at xenosoft.de> wrote:
>>
>> On 30 September 2024 3:27pm, Alex Deucher <alexdeucher at gmail.com> wrote:
>>
>> + Wu Hoi Pok
>>
>> This is likely related to the drm device rework.
>>
>> Alex
>>
>> —————-
>>
>> Hi All,
>>
>> I was able to revert the drm-next-2024-09-19 updates for the RC1 of kernel 6.12.
>>
>> This kernel works on all machines without any problems.
>>
>> This means, the new Radeon DRM driver is unreliable after the DRM rework.
>>
>> Please fix this issue because we can’t deliver the kernels with the new Radeon DRM driver.
>>
>> Error log: https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.xenosoft.de%2FPuTTY_P5040_U-Boot.log&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C9b40f906e2f2493cb25908dce211ee23%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C638633814783011669%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C60000%7C%7C%7C&sdata=fgAj0osIOyJtNrzUKp%2Bpq0NN1sGW2bqGm8nXYj88Ne0%3D&reserved=0
>>
>> Thanks,
>> Christian
More information about the Linuxppc-dev
mailing list