All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <treding@nvidia.com>
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	[thread overview]
Message-ID: <20141219101543.GA16504@ulmo.nvidia.com> (raw)
In-Reply-To: <20141219020445.GA10008@wfg-t540p.sh.intel.com>

[-- Attachment #1: Type: text/plain, Size: 2683 bytes --]

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 <treding@nvidia.com>
> AuthorDate: Wed Dec 17 16:39:59 2014 +0100
> Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
> 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 <airlied@linux.ie>
>     Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>     Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
>     Cc: Rob Clark <robdclark@gmail.com>
>     Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
>     Cc: Alex Deucher <alexander.deucher@amd.com>
>     Cc: Christian König <christian.koenig@amd.com>
>     Cc: Ben Skeggs <bskeggs@redhat.com>
>     Signed-off-by: Thierry Reding <treding@nvidia.com>
>     Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
>     Reviewed-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
>     Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

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 = drm_fb_helper_init(cdev->dev, &gfbdev->helper,
 				 cdev->num_crtc, CIRRUSFB_CONN_LIMIT);
 	if (ret)
-		goto free;
+		return ret;
 
 	ret = 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 = 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)

[-- Attachment #2: attachment.sig --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <treding@nvidia.com>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, LKP <lkp@01.org>,
	dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [drm/fb-helper] BUG: unable to handle kernel paging request at 95d24c70
Date: Fri, 19 Dec 2014 11:15:44 +0100	[thread overview]
Message-ID: <20141219101543.GA16504@ulmo.nvidia.com> (raw)
In-Reply-To: <20141219020445.GA10008@wfg-t540p.sh.intel.com>


[-- Attachment #1.1: Type: text/plain, Size: 1721 bytes --]

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 <treding@nvidia.com>
> AuthorDate: Wed Dec 17 16:39:59 2014 +0100
> Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
> 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 <airlied@linux.ie>
>     Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>     Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
>     Cc: Rob Clark <robdclark@gmail.com>
>     Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
>     Cc: Alex Deucher <alexander.deucher@amd.com>
>     Cc: Christian König <christian.koenig@amd.com>
>     Cc: Ben Skeggs <bskeggs@redhat.com>
>     Signed-off-by: Thierry Reding <treding@nvidia.com>
>     Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
>     Reviewed-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
>     Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

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

[-- Attachment #1.2: patch --]
[-- Type: text/plain, Size: 960 bytes --]

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 = drm_fb_helper_init(cdev->dev, &gfbdev->helper,
 				 cdev->num_crtc, CIRRUSFB_CONN_LIMIT);
 	if (ret)
-		goto free;
+		return ret;
 
 	ret = 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 = 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)

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <treding@nvidia.com>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>, LKP <lkp@01.org>,
	<dri-devel@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [drm/fb-helper] BUG: unable to handle kernel paging request at 95d24c70
Date: Fri, 19 Dec 2014 11:15:44 +0100	[thread overview]
Message-ID: <20141219101543.GA16504@ulmo.nvidia.com> (raw)
In-Reply-To: <20141219020445.GA10008@wfg-t540p.sh.intel.com>


[-- Attachment #1.1: Type: text/plain, Size: 1721 bytes --]

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 <treding@nvidia.com>
> AuthorDate: Wed Dec 17 16:39:59 2014 +0100
> Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
> 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 <airlied@linux.ie>
>     Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
>     Cc: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
>     Cc: Rob Clark <robdclark@gmail.com>
>     Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
>     Cc: Alex Deucher <alexander.deucher@amd.com>
>     Cc: Christian König <christian.koenig@amd.com>
>     Cc: Ben Skeggs <bskeggs@redhat.com>
>     Signed-off-by: Thierry Reding <treding@nvidia.com>
>     Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
>     Reviewed-by: Patrik Jakobsson <patrik.r.jakobsson@gmail.com>
>     Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>

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

[-- Attachment #1.2: patch --]
[-- Type: text/plain, Size: 960 bytes --]

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 = drm_fb_helper_init(cdev->dev, &gfbdev->helper,
 				 cdev->num_crtc, CIRRUSFB_CONN_LIMIT);
 	if (ret)
-		goto free;
+		return ret;
 
 	ret = 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 = 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)

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

  reply	other threads:[~2014-12-19 10:15 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-18 17:03 [drm/fb-helper] WARNING: CPU: 1 PID: 1 at lib/idr.c:506 idr_remove() Fengguang Wu
2014-12-18 17:03 ` Fengguang Wu
2014-12-19  2:04 ` [drm/fb-helper] BUG: unable to handle kernel paging request at 95d24c70 Fengguang Wu
2014-12-19  2:04   ` Fengguang Wu
2014-12-19  2:04   ` Fengguang Wu
2014-12-19 10:15   ` Thierry Reding [this message]
2014-12-19 10:15     ` Thierry Reding
2014-12-19 10:15     ` Thierry Reding

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141219101543.GA16504@ulmo.nvidia.com \
    --to=treding@nvidia.com \
    --cc=lkp@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.