From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 55FC2C433DB for ; Mon, 1 Mar 2021 08:28:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1F9A264E04 for ; Mon, 1 Mar 2021 08:28:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232932AbhCAI1x (ORCPT ); Mon, 1 Mar 2021 03:27:53 -0500 Received: from mx2.suse.de ([195.135.220.15]:34492 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232621AbhCAI1l (ORCPT ); Mon, 1 Mar 2021 03:27:41 -0500 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.221.27]) by mx2.suse.de (Postfix) with ESMTP id EE1CEAF57; Mon, 1 Mar 2021 08:26:58 +0000 (UTC) To: Tong Zhang , Maarten Lankhorst , Maxime Ripard , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <20210228044625.171151-1-ztong0001@gmail.com> From: Thomas Zimmermann Subject: Re: [PATCH] drm/fb-helper: only unmap if buffer not null Message-ID: Date: Mon, 1 Mar 2021 09:26:57 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1 MIME-Version: 1.0 In-Reply-To: <20210228044625.171151-1-ztong0001@gmail.com> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="2gaxzLuaBxKNi8jonaw1h25DxRkGPJur0" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --2gaxzLuaBxKNi8jonaw1h25DxRkGPJur0 Content-Type: multipart/mixed; boundary="vk3q8Gd4T06b8hmS6a4wlgtSjvS4R02LM"; protected-headers="v1" From: Thomas Zimmermann To: Tong Zhang , Maarten Lankhorst , Maxime Ripard , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Message-ID: Subject: Re: [PATCH] drm/fb-helper: only unmap if buffer not null References: <20210228044625.171151-1-ztong0001@gmail.com> In-Reply-To: <20210228044625.171151-1-ztong0001@gmail.com> --vk3q8Gd4T06b8hmS6a4wlgtSjvS4R02LM Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: quoted-printable Hi Am 28.02.21 um 05:46 schrieb Tong Zhang: > drm_fbdev_cleanup() can be called when fb_helper->buffer is null, hence= > fb_helper->buffer should be checked before calling > drm_client_buffer_vunmap(). This buffer is also checked in > drm_client_framebuffer_delete(), so we should also do the same thing fo= r > drm_client_buffer_vunmap(). I think a lot of drivers are affected by this problem; probably most of=20 the ones that use the generic fbdev code. How did you produce the error? What I'm more concerned about is why the buffer is NULL. Was ther eno=20 hotplug event? Do you have a display attached? Best regards Thomas >=20 > [ 199.128742] RIP: 0010:drm_client_buffer_vunmap+0xd/0x20 > [ 199.129031] Code: 43 18 48 8b 53 20 49 89 45 00 49 89 55 08 5b 44 89= e0 41 5c 41 5d 41 5e 5d > c3 0f 1f 00 53 48 89 fb 48 8d 7f 10 e8 73 7d a1 ff <48> 8b 7b 10 48 8d = 73 18 5b e9 75 53 fc ff 0 > f 1f 44 00 00 48 b8 00 > [ 199.130041] RSP: 0018:ffff888103f3fc88 EFLAGS: 00010282 > [ 199.130329] RAX: 0000000000000001 RBX: 0000000000000000 RCX: fffffff= f8214d46d > [ 199.130733] RDX: 1ffffffff079c6b9 RSI: 0000000000000246 RDI: fffffff= f83ce35c8 > [ 199.131119] RBP: ffff888103d25458 R08: 0000000000000001 R09: fffffbf= ff0791761 > [ 199.131505] R10: ffffffff83c8bb07 R11: fffffbfff0791760 R12: 0000000= 000000000 > [ 199.131891] R13: ffff888103d25468 R14: ffff888103d25418 R15: ffff888= 103f18120 > [ 199.132277] FS: 00007f36fdcbb6a0(0000) GS:ffff88815b400000(0000) kn= lGS:0000000000000000 > [ 199.132721] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > [ 199.133033] CR2: 0000000000000010 CR3: 0000000103d26000 CR4: 0000000= 0000006f0 > [ 199.133420] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000= 000000000 > [ 199.133807] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000= 000000400 > [ 199.134195] Call Trace: > [ 199.134333] drm_fbdev_cleanup+0x179/0x1a0 > [ 199.134562] drm_fbdev_client_unregister+0x2b/0x40 > [ 199.134828] drm_client_dev_unregister+0xa8/0x180 > [ 199.135088] drm_dev_unregister+0x61/0x110 > [ 199.135315] mgag200_pci_remove+0x38/0x52 [mgag200] > [ 199.135586] pci_device_remove+0x62/0xe0 > [ 199.135806] device_release_driver_internal+0x148/0x270 > [ 199.136094] driver_detach+0x76/0xe0 > [ 199.136294] bus_remove_driver+0x7e/0x100 > [ 199.136521] pci_unregister_driver+0x28/0xf0 > [ 199.136759] __x64_sys_delete_module+0x268/0x300 > [ 199.137016] ? __ia32_sys_delete_module+0x300/0x300 > [ 199.137285] ? call_rcu+0x3e4/0x580 > [ 199.137481] ? fpregs_assert_state_consistent+0x4d/0x60 > [ 199.137767] ? exit_to_user_mode_prepare+0x2f/0x130 > [ 199.138037] do_syscall_64+0x33/0x40 > [ 199.138237] entry_SYSCALL_64_after_hwframe+0x44/0xae > [ 199.138517] RIP: 0033:0x7f36fdc3dcf7 >=20 > Signed-off-by: Tong Zhang > --- > drivers/gpu/drm/drm_fb_helper.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) >=20 > diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_h= elper.c > index b9a616737c0e..f6baa2046124 100644 > --- a/drivers/gpu/drm/drm_fb_helper.c > +++ b/drivers/gpu/drm/drm_fb_helper.c > @@ -2048,7 +2048,7 @@ static void drm_fbdev_cleanup(struct drm_fb_helpe= r *fb_helper) > =20 > if (shadow) > vfree(shadow); > - else > + else if (fb_helper->buffer) > drm_client_buffer_vunmap(fb_helper->buffer); > =20 > drm_client_framebuffer_delete(fb_helper->buffer); >=20 --=20 Thomas Zimmermann Graphics Driver Developer SUSE Software Solutions Germany GmbH Maxfeldstr. 5, 90409 N=C3=BCrnberg, Germany (HRB 36809, AG N=C3=BCrnberg) Gesch=C3=A4ftsf=C3=BChrer: Felix Imend=C3=B6rffer --vk3q8Gd4T06b8hmS6a4wlgtSjvS4R02LM-- --2gaxzLuaBxKNi8jonaw1h25DxRkGPJur0 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wsF5BAABCAAjFiEExndm/fpuMUdwYFFolh/E3EQov+AFAmA8pVEFAwAAAAAACgkQlh/E3EQov+Bf yA//bWkzWWVyyv4cxfhtRfNrC7GZd+DrKRIfSEB4ejyKzkn6PilvtdIQ92ZiI03jqbut/tYXXX3k Zy1YB/TQOsfZaCdG63IpN5HfCameZihKx0JyatfVTqjXnn8Z0iUsVu+zWl9mwC3ZGR+6AwBeJ2hT bgePBOMki+B45TwvAqdxmHkJbNe5edF929FBUpxguy1P6ZA7qJi3o1xJBZhKopsUsXO0oAPdS7/v 6VdcG5m1k3O632mo481QL9k0wmD+xK6/tQDg3jT4ZpSa2J9ZcEkt38tr4IBEVfw0r5cLloPRYFh2 CmLdQoUKypYqrjG1VTDVIlNagTeUW3x8Fn67KNedLU7Gl35lc8gl+Blu61bNEIIRPm7kjudk6PqW j7x2BZHiXeEFKtFqcUWPxCx1xz7LO+Q81w0vnsVimYTymg/Ffu4PubB4Ah/vfiKmG2sGeNDsQ/Tb rjjCcpQjXl/2Hou4c1NkORTU0vXr4n5gS20WebtQiNwxza4s0VYAiNAUv+YXkPelliOkk/JDNqSP DVcauz8eG4jHtWTyE1ynIgXx6FuE0TKyog3PDsiMhTdfyUAERboeIpdkts/QrpfkQuIeCBKCow+8 omWbqYTm6SFBnHd1X5meAoNe65Ixe6BALbAIfoqLV8m2hIigmyHQ+RHEsV7hio1VGlUovpfuXRXE Szs= =ie+l -----END PGP SIGNATURE----- --2gaxzLuaBxKNi8jonaw1h25DxRkGPJur0--