Re: Kernel doesn't boot after DRM updates (drm-next-2024-09-19)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

Le 01/10/2024 à 14:09, Hoi Pok Wu a écrit :
[Vous ne recevez pas souvent de courriers de wuhoipok@xxxxxxxxx. 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@xxxxxxxxxxx> wrote:

On 30 September 2024 3:27pm, Alex Deucher <alexdeucher@xxxxxxxxx> 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



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux