Hi Christian Thanks for your suggestion. I will remove all cleanup/fini code as well. Best Regards Yintian Tao -----Original Message----- From: Koenig, Christian <Christian.Koenig@xxxxxxx> Sent: 2020年2月27日 19:54 To: Tao, Yintian <Yintian.Tao@xxxxxxx>; Deucher, Alexander <Alexander.Deucher@xxxxxxx> Cc: amd-gfx@xxxxxxxxxxxxxxxxxxxxx Subject: Re: [PATCH] drm/amdgpu: no need to clean debugfs at amdgpu If we do this we should probably make nails with heads and remove the whole cleanup/fini code as well. Christian. Am 27.02.20 um 12:50 schrieb Yintian Tao: > drm_minor_unregister will invoke drm_debugfs_cleanup to clean all the > child node under primary minor node. > We don't need to invoke amdgpu_debugfs_fini and > amdgpu_debugfs_regs_cleanup to clean agian. > Otherwise, it will raise the NULL pointer like below. > [ 45.046029] BUG: unable to handle kernel NULL pointer dereference at 00000000000000a8 > [ 45.047256] PGD 0 P4D 0 > [ 45.047713] Oops: 0002 [#1] SMP PTI > [ 45.048198] CPU: 0 PID: 2796 Comm: modprobe Tainted: G W OE 4.18.0-15-generic #16~18.04.1-Ubuntu > [ 45.049538] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 > [ 45.050651] RIP: 0010:down_write+0x1f/0x40 > [ 45.051194] Code: 90 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 53 48 89 fb e8 ce d9 ff ff 48 ba 01 00 00 00 ff ff ff ff 48 89 d8 <f0> 48 0f c1 10 85 d2 74 05 e8 53 1c ff ff 65 48 8b 04 25 00 5c 01 > [ 45.053702] RSP: 0018:ffffad8f4133fd40 EFLAGS: 00010246 > [ 45.054384] RAX: 00000000000000a8 RBX: 00000000000000a8 RCX: ffffa011327dd814 > [ 45.055349] RDX: ffffffff00000001 RSI: 0000000000000001 RDI: 00000000000000a8 > [ 45.056346] RBP: ffffad8f4133fd48 R08: 0000000000000000 R09: ffffffffc0690a00 > [ 45.057326] R10: ffffad8f4133fd58 R11: 0000000000000001 R12: ffffa0113cff0300 > [ 45.058266] R13: ffffa0113c0a0000 R14: ffffffffc0c02a10 R15: ffffa0113e5c7860 > [ 45.059221] FS: 00007f60d46f9540(0000) GS:ffffa0113fc00000(0000) knlGS:0000000000000000 > [ 45.060809] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 45.061826] CR2: 00000000000000a8 CR3: 0000000136250004 CR4: 00000000003606f0 > [ 45.062913] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > [ 45.064404] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > [ 45.065897] Call Trace: > [ 45.066426] debugfs_remove+0x36/0xa0 > [ 45.067131] amdgpu_debugfs_ring_fini+0x15/0x20 [amdgpu] > [ 45.068019] amdgpu_debugfs_fini+0x2c/0x50 [amdgpu] > [ 45.068756] amdgpu_pci_remove+0x49/0x70 [amdgpu] > [ 45.069439] pci_device_remove+0x3e/0xc0 > [ 45.070037] device_release_driver_internal+0x18a/0x260 > [ 45.070842] driver_detach+0x3f/0x80 > [ 45.071325] bus_remove_driver+0x59/0xd0 > [ 45.071850] driver_unregister+0x2c/0x40 > [ 45.072377] pci_unregister_driver+0x22/0xa0 > [ 45.073043] amdgpu_exit+0x15/0x57c [amdgpu] > [ 45.073683] __x64_sys_delete_module+0x146/0x280 > [ 45.074369] do_syscall_64+0x5a/0x120 > [ 45.074916] entry_SYSCALL_64_after_hwframe+0x44/0xa9 > > Signed-off-by: Yintian Tao <yttao@xxxxxxx> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 - > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 - > 2 files changed, 2 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > index 8ef8a49b9255..351096ab4301 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c > @@ -3237,7 +3237,6 @@ void amdgpu_device_fini(struct amdgpu_device *adev) > adev->rmmio = NULL; > amdgpu_device_doorbell_fini(adev); > > - amdgpu_debugfs_regs_cleanup(adev); > device_remove_file(adev->dev, &dev_attr_pcie_replay_count); > if (adev->ucode_sysfs_en) > amdgpu_ucode_sysfs_fini(adev); > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > index 7cf5f597b90a..02d80b9dbfe1 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c > @@ -1139,7 +1139,6 @@ amdgpu_pci_remove(struct pci_dev *pdev) > DRM_ERROR("Hotplug removal is not supported\n"); > drm_dev_unplug(dev); > drm_dev_put(dev); > - amdgpu_debugfs_fini(adev); > amdgpu_driver_unload_kms(dev); > pci_disable_device(pdev); > pci_set_drvdata(pdev, NULL); _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx