From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0464849634703324105==" MIME-Version: 1.0 From: Thierry Reding To: lkp@lists.01.org Subject: Re: [drm/fb-helper] BUG: unable to handle kernel paging request at 95d24c70 Date: Fri, 19 Dec 2014 11:15:44 +0100 Message-ID: <20141219101543.GA16504@ulmo.nvidia.com> In-Reply-To: <20141219020445.GA10008@wfg-t540p.sh.intel.com> List-Id: --===============0464849634703324105== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable On Thu, Dec 18, 2014 at 06:04:45PM -0800, Fengguang Wu wrote: > = > Hi Thierry, > = > FYI, here is another bisect result. Thanks. Looking at the cirrus driver more closely it already employs the big hammer upon failure and ends up calling drm_fb_helper_fini() via the cirrus_driver_unload() call in cirrus_driver_load()'s cleanup path. > commit 7bf2844ed14de049a4ccec26eb3d8b4c3d5c1971 > Author: Thierry Reding > AuthorDate: Wed Dec 17 16:39:59 2014 +0100 > Commit: Daniel Vetter > CommitDate: Wed Dec 17 22:05:08 2014 +0100 > = > drm/fb-helper: Propagate errors from initial config failure > = > Make drm_fb_helper_initial_config() return an int rather than a bool = so > that the error can be properly propagated. While at it, update drivers > to propagate errors further rather than just ignore them. > = > Cc: David Airlie > Cc: Daniel Vetter > Cc: Patrik Jakobsson > Cc: Rob Clark > Cc: Tomi Valkeinen > Cc: Alex Deucher > Cc: Christian K=C3=B6nig > Cc: Ben Skeggs > Signed-off-by: Thierry Reding > Reviewed-by: Alex Deucher > Reviewed-by: Patrik Jakobsson > Signed-off-by: Daniel Vetter Using the attached patch on top of this I can no longer reproduce either this or the earlier result. I'll send a revised patch with this squashed in. Thanks, Thierry diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus= /cirrus_fbdev.c index 0682210b068b..f7e8c6530beb 100644 --- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c +++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c @@ -318,26 +318,20 @@ int cirrus_fbdev_init(struct cirrus_device *cdev) ret =3D drm_fb_helper_init(cdev->dev, &gfbdev->helper, cdev->num_crtc, CIRRUSFB_CONN_LIMIT); if (ret) - goto free; + return ret; = ret =3D drm_fb_helper_single_add_all_connectors(&gfbdev->helper); if (ret) - goto fini; + return ret; = /* disable all the possible outputs/crtcs before entering KMS mode */ drm_helper_disable_unused_functions(cdev->dev); = ret =3D drm_fb_helper_initial_config(&gfbdev->helper, bpp_sel); if (ret) - goto fini; + return ret;; = return 0; - -free: - kfree(gfbdev); -fini: - drm_fb_helper_fini(&gfbdev->helper); - return ret; } = void cirrus_fbdev_fini(struct cirrus_device *cdev) --===============0464849634703324105== Content-Type: application/pgp-signature MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.sig" LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIKCmlRSWNCQUVC QWdBR0JRSlVrL3JQQUFvSkVOMGpyTmQvUHJPaGJta1FBSlpZV09uTEV3c3VLSE5NeVp6WU1iRW8K TzBjZ0xZUGs2Si9WbmU0QU5mMXVEMm05QmFPekhsTkVXNEZDcmd3c2JYTkROd0JVbk1oc1I3Ujdi V2JjQjBvYwpxUm1sYklWUGxXVDQ4Ulg3dkpjOXpFSVljM2FuMXQvMG9LcmJaS1hiTlV6bkN3eDJi bmdORE9jUDl3K0QrRVFOCnhUeVoxVWMvcWw2a2IxYXZTQjViK1k3cS9IbjN0TXVIVldGZ3dENnc5 Q05aMGpaL1BkWTBvUWRCRmpkRVhPb2UKak55RVdEcXBrLzJHUUsrcUNNM1UvUXJnL0tlRXlpMUhl REJBaEFwMW1sdXNPSXIwK3NzcU5zeVFpVG11cDlkLwpMc1lNVU9ZN01ta25PajNncTVzKzBXMlk0 bmM2UUJEWWQ0UGJTR0FhcVJxaFdpQ0V6TjJwVmgxbk5Va3Q2Y1ZwCkx6UkZMMFd1aU5iVkgwMlFV dGExRjJZNjN2K08reWlmQnBJMVpSS2pGdjlteklyMy9NMVgxTzFDby9TVytVUlIKbWkyaktEdldO Uzc0YWtOS0liTnBaNWZnbTRHd21FYXREemwxZHdkZ3VqYjVaTHJHQzNTTjlvK0c1Rk4zL1RLZwo5 RE0vYk9jUldiTEl0MkdrZEptZXI4Qk5YT21td3ZZUmlhTnM3WEVTakJ6aU5MZnBwSXZXamU3VW5t M2R3YUw4CkE4ZHd6bUt6K1JwOGFUa3gycnAzL3VSSmVuODRrNzdSTTlxMTRrR2U5M2NKRTZudHM5 bExJaWJ4R2ZQVTl5NGwKOEcrY25VaEdWRUllaFgwUG43ZjJBYW9tNExZZlpHVUhOLzE4SjhqNk1I b3dNWHZMOC9VblVORVM5THgwMnJUZAp0YVpHY3JEWTdHQXAxNWNHUXpTego9bjB1VwotLS0tLUVO RCBQR1AgU0lHTkFUVVJFLS0tLS0K --===============0464849634703324105==-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: Re: [drm/fb-helper] BUG: unable to handle kernel paging request at 95d24c70 Date: Fri, 19 Dec 2014 11:15:44 +0100 Message-ID: <20141219101543.GA16504@ulmo.nvidia.com> References: <20141218170349.GC9298@wfg-t540p.sh.intel.com> <20141219020445.GA10008@wfg-t540p.sh.intel.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="3uo+9/B/ebqu+fSQ" Return-path: In-Reply-To: <20141219020445.GA10008@wfg-t540p.sh.intel.com> Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org To: Fengguang Wu Cc: Daniel Vetter , LKP , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org --3uo+9/B/ebqu+fSQ Content-Type: multipart/mixed; boundary="BOKacYhQ+x31HxR3" Content-Disposition: inline --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Dec 18, 2014 at 06:04:45PM -0800, Fengguang Wu wrote: >=20 > Hi Thierry, >=20 > FYI, here is another bisect result. Thanks. Looking at the cirrus driver more closely it already employs the big hammer upon failure and ends up calling drm_fb_helper_fini() via the cirrus_driver_unload() call in cirrus_driver_load()'s cleanup path. > commit 7bf2844ed14de049a4ccec26eb3d8b4c3d5c1971 > Author: Thierry Reding > AuthorDate: Wed Dec 17 16:39:59 2014 +0100 > Commit: Daniel Vetter > CommitDate: Wed Dec 17 22:05:08 2014 +0100 >=20 > drm/fb-helper: Propagate errors from initial config failure > =20 > Make drm_fb_helper_initial_config() return an int rather than a bool = so > that the error can be properly propagated. While at it, update drivers > to propagate errors further rather than just ignore them. > =20 > Cc: David Airlie > Cc: Daniel Vetter > Cc: Patrik Jakobsson > Cc: Rob Clark > Cc: Tomi Valkeinen > Cc: Alex Deucher > Cc: Christian K=C3=B6nig > Cc: Ben Skeggs > Signed-off-by: Thierry Reding > Reviewed-by: Alex Deucher > Reviewed-by: Patrik Jakobsson > Signed-off-by: Daniel Vetter Using the attached patch on top of this I can no longer reproduce either this or the earlier result. I'll send a revised patch with this squashed in. Thanks, Thierry --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=patch Content-Transfer-Encoding: quoted-printable diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus= /cirrus_fbdev.c index 0682210b068b..f7e8c6530beb 100644 --- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c +++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c @@ -318,26 +318,20 @@ int cirrus_fbdev_init(struct cirrus_device *cdev) ret =3D drm_fb_helper_init(cdev->dev, &gfbdev->helper, cdev->num_crtc, CIRRUSFB_CONN_LIMIT); if (ret) - goto free; + return ret; =20 ret =3D drm_fb_helper_single_add_all_connectors(&gfbdev->helper); if (ret) - goto fini; + return ret; =20 /* disable all the possible outputs/crtcs before entering KMS mode */ drm_helper_disable_unused_functions(cdev->dev); =20 ret =3D drm_fb_helper_initial_config(&gfbdev->helper, bpp_sel); if (ret) - goto fini; + return ret;; =20 return 0; - -free: - kfree(gfbdev); -fini: - drm_fb_helper_fini(&gfbdev->helper); - return ret; } =20 void cirrus_fbdev_fini(struct cirrus_device *cdev) --BOKacYhQ+x31HxR3-- --3uo+9/B/ebqu+fSQ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBAgAGBQJUk/rPAAoJEN0jrNd/PrOhbmkQAJZYWOnLEwsuKHNMyZzYMbEo O0cgLYPk6J/Vne4ANf1uD2m9BaOzHlNEW4FCrgwsbXNDNwBUnMhsR7R7bWbcB0oc qRmlbIVPlWT48RX7vJc9zEIYc3an1t/0oKrbZKXbNUznCwx2bngNDOcP9w+D+EQN xTyZ1Uc/ql6kb1avSB5b+Y7q/Hn3tMuHVWFgwD6w9CNZ0jZ/PdY0oQdBFjdEXOoe jNyEWDqpk/2GQK+qCM3U/Qrg/KeEyi1HeDBAhAp1mlusOIr0+ssqNsyQiTmup9d/ LsYMUOY7MmknOj3gq5s+0W2Y4nc6QBDYd4PbSGAaqRqhWiCEzN2pVh1nNUkt6cVp LzRFL0WuiNbVH02QUta1F2Y63v+O+yifBpI1ZRKjFv9mzIr3/M1X1O1Co/SW+URR mi2jKDvWNS74akNKIbNpZ5fgm4GwmEatDzl1dwdgujb5ZLrGC3SN9o+G5FN3/TKg 9DM/bOcRWbLIt2GkdJmer8BNXOmmwvYRiaNs7XESjBziNLfppIvWje7Unm3dwaL8 A8dwzmKz+Rp8aTkx2rp3/uRJen84k77RM9q14kGe93cJE6nts9lLIibxGfPU9y4l 8G+cnUhGVEIehX0Pn7f2Aaom4LYfZGUHN/18J8j6MHowMXvL8/UnUNES9Lx02rTd taZGcrDY7GAp15cGQzSz =n0uW -----END PGP SIGNATURE----- --3uo+9/B/ebqu+fSQ-- From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752084AbaLSKQl (ORCPT ); Fri, 19 Dec 2014 05:16:41 -0500 Received: from hqemgate15.nvidia.com ([216.228.121.64]:7351 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751696AbaLSKQj (ORCPT ); Fri, 19 Dec 2014 05:16:39 -0500 X-PGP-Universal: processed; by hqnvupgp08.nvidia.com on Fri, 19 Dec 2014 02:14:55 -0800 Date: Fri, 19 Dec 2014 11:15:44 +0100 From: Thierry Reding To: Fengguang Wu CC: Daniel Vetter , LKP , , Subject: Re: [drm/fb-helper] BUG: unable to handle kernel paging request at 95d24c70 Message-ID: <20141219101543.GA16504@ulmo.nvidia.com> References: <20141218170349.GC9298@wfg-t540p.sh.intel.com> <20141219020445.GA10008@wfg-t540p.sh.intel.com> MIME-Version: 1.0 In-Reply-To: <20141219020445.GA10008@wfg-t540p.sh.intel.com> X-NVConfidentiality: public User-Agent: Mutt/1.5.23 (2014-03-12) X-Originating-IP: [10.2.71.5] X-ClientProxiedBy: UKMAIL102.nvidia.com (10.26.138.15) To UKMAIL101.nvidia.com (10.26.138.13) Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="3uo+9/B/ebqu+fSQ" Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --3uo+9/B/ebqu+fSQ Content-Type: multipart/mixed; boundary="BOKacYhQ+x31HxR3" Content-Disposition: inline --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Dec 18, 2014 at 06:04:45PM -0800, Fengguang Wu wrote: >=20 > Hi Thierry, >=20 > FYI, here is another bisect result. Thanks. Looking at the cirrus driver more closely it already employs the big hammer upon failure and ends up calling drm_fb_helper_fini() via the cirrus_driver_unload() call in cirrus_driver_load()'s cleanup path. > commit 7bf2844ed14de049a4ccec26eb3d8b4c3d5c1971 > Author: Thierry Reding > AuthorDate: Wed Dec 17 16:39:59 2014 +0100 > Commit: Daniel Vetter > CommitDate: Wed Dec 17 22:05:08 2014 +0100 >=20 > drm/fb-helper: Propagate errors from initial config failure > =20 > Make drm_fb_helper_initial_config() return an int rather than a bool = so > that the error can be properly propagated. While at it, update drivers > to propagate errors further rather than just ignore them. > =20 > Cc: David Airlie > Cc: Daniel Vetter > Cc: Patrik Jakobsson > Cc: Rob Clark > Cc: Tomi Valkeinen > Cc: Alex Deucher > Cc: Christian K=C3=B6nig > Cc: Ben Skeggs > Signed-off-by: Thierry Reding > Reviewed-by: Alex Deucher > Reviewed-by: Patrik Jakobsson > Signed-off-by: Daniel Vetter Using the attached patch on top of this I can no longer reproduce either this or the earlier result. I'll send a revised patch with this squashed in. Thanks, Thierry --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline; filename=patch Content-Transfer-Encoding: quoted-printable diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus= /cirrus_fbdev.c index 0682210b068b..f7e8c6530beb 100644 --- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c +++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c @@ -318,26 +318,20 @@ int cirrus_fbdev_init(struct cirrus_device *cdev) ret =3D drm_fb_helper_init(cdev->dev, &gfbdev->helper, cdev->num_crtc, CIRRUSFB_CONN_LIMIT); if (ret) - goto free; + return ret; =20 ret =3D drm_fb_helper_single_add_all_connectors(&gfbdev->helper); if (ret) - goto fini; + return ret; =20 /* disable all the possible outputs/crtcs before entering KMS mode */ drm_helper_disable_unused_functions(cdev->dev); =20 ret =3D drm_fb_helper_initial_config(&gfbdev->helper, bpp_sel); if (ret) - goto fini; + return ret;; =20 return 0; - -free: - kfree(gfbdev); -fini: - drm_fb_helper_fini(&gfbdev->helper); - return ret; } =20 void cirrus_fbdev_fini(struct cirrus_device *cdev) --BOKacYhQ+x31HxR3-- --3uo+9/B/ebqu+fSQ Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBAgAGBQJUk/rPAAoJEN0jrNd/PrOhbmkQAJZYWOnLEwsuKHNMyZzYMbEo O0cgLYPk6J/Vne4ANf1uD2m9BaOzHlNEW4FCrgwsbXNDNwBUnMhsR7R7bWbcB0oc qRmlbIVPlWT48RX7vJc9zEIYc3an1t/0oKrbZKXbNUznCwx2bngNDOcP9w+D+EQN xTyZ1Uc/ql6kb1avSB5b+Y7q/Hn3tMuHVWFgwD6w9CNZ0jZ/PdY0oQdBFjdEXOoe jNyEWDqpk/2GQK+qCM3U/Qrg/KeEyi1HeDBAhAp1mlusOIr0+ssqNsyQiTmup9d/ LsYMUOY7MmknOj3gq5s+0W2Y4nc6QBDYd4PbSGAaqRqhWiCEzN2pVh1nNUkt6cVp LzRFL0WuiNbVH02QUta1F2Y63v+O+yifBpI1ZRKjFv9mzIr3/M1X1O1Co/SW+URR mi2jKDvWNS74akNKIbNpZ5fgm4GwmEatDzl1dwdgujb5ZLrGC3SN9o+G5FN3/TKg 9DM/bOcRWbLIt2GkdJmer8BNXOmmwvYRiaNs7XESjBziNLfppIvWje7Unm3dwaL8 A8dwzmKz+Rp8aTkx2rp3/uRJen84k77RM9q14kGe93cJE6nts9lLIibxGfPU9y4l 8G+cnUhGVEIehX0Pn7f2Aaom4LYfZGUHN/18J8j6MHowMXvL8/UnUNES9Lx02rTd taZGcrDY7GAp15cGQzSz =n0uW -----END PGP SIGNATURE----- --3uo+9/B/ebqu+fSQ--