* [PATCH 0/2] drm/i915: Fix wait_req unreferencing.
@ 2016-08-08 11:23 Maarten Lankhorst
2016-08-08 11:23 ` [PATCH 1/2] drm/i915: Remove early return in prepare/cleanup plane Maarten Lankhorst
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Maarten Lankhorst @ 2016-08-08 11:23 UTC (permalink / raw)
To: intel-gfx
Small cleanup plus a fix for the reference dropping.
This removes a source of heisenbugs. :-)
Maarten Lankhorst (2):
drm/i915: Remove early return in prepare/cleanup plane
drm/i915: Drop reference to current state wait req as soon as it goes
unused
drivers/gpu/drm/i915/intel_display.c | 16 ++++------------
1 file changed, 4 insertions(+), 12 deletions(-)
--
2.7.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] drm/i915: Remove early return in prepare/cleanup plane
2016-08-08 11:23 [PATCH 0/2] drm/i915: Fix wait_req unreferencing Maarten Lankhorst
@ 2016-08-08 11:23 ` Maarten Lankhorst
2016-08-08 11:23 ` [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused Maarten Lankhorst
2016-08-08 11:25 ` ✗ Ro.CI.BAT: failure for drm/i915: Fix wait_req unreferencing Patchwork
2 siblings, 0 replies; 9+ messages in thread
From: Maarten Lankhorst @ 2016-08-08 11:23 UTC (permalink / raw)
To: intel-gfx
This is a noop in prepare_plane, which already carefully handles this
with if guards and early return.
cleanup_plane_fb has it as a noop too, it only unpins old_fb and
unsets wait_req. The latter is a noop because prepare_plane won't
set wait_req when obj == NULL. It's also dangerous to keep because
plane->state may change before cleanup_plane_fb is called.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
---
drivers/gpu/drm/i915/intel_display.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index b12c8302580f..f56707289615 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14117,9 +14117,6 @@ intel_prepare_plane_fb(struct drm_plane *plane,
struct reservation_object *resv;
int ret = 0;
- if (!obj && !old_obj)
- return 0;
-
if (old_obj) {
struct drm_crtc_state *crtc_state =
drm_atomic_get_existing_crtc_state(new_state->state, plane->state->crtc);
@@ -14193,15 +14190,10 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
const struct drm_plane_state *old_state)
{
struct drm_device *dev = plane->dev;
- struct intel_plane_state *old_intel_state;
struct intel_plane_state *intel_state = to_intel_plane_state(plane->state);
struct drm_i915_gem_object *old_obj = intel_fb_obj(old_state->fb);
- struct drm_i915_gem_object *obj = intel_fb_obj(plane->state->fb);
-
- old_intel_state = to_intel_plane_state(old_state);
-
- if (!obj && !old_obj)
- return;
+ struct intel_plane_state *old_intel_state =
+ to_intel_plane_state(old_state);
if (old_obj && (plane->type != DRM_PLANE_TYPE_CURSOR ||
!INTEL_INFO(dev)->cursor_needs_physical))
--
2.7.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused
2016-08-08 11:23 [PATCH 0/2] drm/i915: Fix wait_req unreferencing Maarten Lankhorst
2016-08-08 11:23 ` [PATCH 1/2] drm/i915: Remove early return in prepare/cleanup plane Maarten Lankhorst
@ 2016-08-08 11:23 ` Maarten Lankhorst
2016-08-08 15:34 ` Daniel Vetter
2016-08-08 11:25 ` ✗ Ro.CI.BAT: failure for drm/i915: Fix wait_req unreferencing Patchwork
2 siblings, 1 reply; 9+ messages in thread
From: Maarten Lankhorst @ 2016-08-08 11:23 UTC (permalink / raw)
To: intel-gfx; +Cc: David Airlie, Daniel Vetter, Keith Packard, dri-devel
There are two paths into intel_cleanup_plane_fb, the normal completion
path and the failure path.
In the failure case, intel_cleanup_plane_fb is called before
drm_atomic_helper_swap_state, so any wait_req reference made in
intel_prepare_plane_fb will be in old_intel_state->wait_req.
In the normal completion path, wait_req is not freed until
the next commit, which is no longer used after waiting.
Free it as soon as possible, so we don't hold on to it indefinitely.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Keith Packard <keithp@keithp.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: David Airlie <airlied@linux.ie>
Cc: intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Fixes: 849782575325 ("drm/i915: cleanup_plane_fb: also drop reference to current state wait_req")
---
drivers/gpu/drm/i915/intel_display.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index f56707289615..e72ad97998a4 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13754,6 +13754,8 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
/* EIO should be eaten, and we can't get interrupted in the
* worker, and blocking commits have waited already. */
WARN_ON(ret);
+
+ i915_gem_request_assign(&intel_plane_state->wait_req, NULL);
}
if (!state->legacy_cursor_update)
@@ -14190,7 +14192,6 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
const struct drm_plane_state *old_state)
{
struct drm_device *dev = plane->dev;
- struct intel_plane_state *intel_state = to_intel_plane_state(plane->state);
struct drm_i915_gem_object *old_obj = intel_fb_obj(old_state->fb);
struct intel_plane_state *old_intel_state =
to_intel_plane_state(old_state);
@@ -14199,7 +14200,6 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
!INTEL_INFO(dev)->cursor_needs_physical))
intel_unpin_fb_obj(old_state->fb, old_state->rotation);
- i915_gem_request_assign(&intel_state->wait_req, NULL);
i915_gem_request_assign(&old_intel_state->wait_req, NULL);
}
--
2.7.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* ✗ Ro.CI.BAT: failure for drm/i915: Fix wait_req unreferencing.
2016-08-08 11:23 [PATCH 0/2] drm/i915: Fix wait_req unreferencing Maarten Lankhorst
2016-08-08 11:23 ` [PATCH 1/2] drm/i915: Remove early return in prepare/cleanup plane Maarten Lankhorst
2016-08-08 11:23 ` [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused Maarten Lankhorst
@ 2016-08-08 11:25 ` Patchwork
2 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2016-08-08 11:25 UTC (permalink / raw)
To: Maarten Lankhorst; +Cc: intel-gfx
== Series Details ==
Series: drm/i915: Fix wait_req unreferencing.
URL : https://patchwork.freedesktop.org/series/10781/
State : failure
== Summary ==
Applying: drm/i915: Remove early return in prepare/cleanup plane
Applying: drm/i915: Drop reference to current state wait req as soon as it goes unused
fatal: sha1 information is lacking or useless (drivers/gpu/drm/i915/intel_display.c).
error: could not build fake ancestor
Patch failed at 0002 drm/i915: Drop reference to current state wait req as soon as it goes unused
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused
2016-08-08 11:23 ` [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused Maarten Lankhorst
@ 2016-08-08 15:34 ` Daniel Vetter
2016-08-08 15:49 ` Keith Packard
2016-08-09 9:18 ` [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused Maarten Lankhorst
0 siblings, 2 replies; 9+ messages in thread
From: Daniel Vetter @ 2016-08-08 15:34 UTC (permalink / raw)
To: Maarten Lankhorst
Cc: David Airlie, Daniel Vetter, intel-gfx, Keith Packard, dri-devel
On Mon, Aug 8, 2016 at 1:23 PM, Maarten Lankhorst
<maarten.lankhorst@linux.intel.com> wrote:
> There are two paths into intel_cleanup_plane_fb, the normal completion
> path and the failure path.
>
> In the failure case, intel_cleanup_plane_fb is called before
> drm_atomic_helper_swap_state, so any wait_req reference made in
> intel_prepare_plane_fb will be in old_intel_state->wait_req.
>
> In the normal completion path, wait_req is not freed until
> the next commit, which is no longer used after waiting.
>
> Free it as soon as possible, so we don't hold on to it indefinitely.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Keith Packard <keithp@keithp.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: David Airlie <airlied@linux.ie>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org
> Fixes: 849782575325 ("drm/i915: cleanup_plane_fb: also drop reference to current state wait_req")
We still need to clean up the reference in case of failure, which
means latest in intel_plane_destroy_state(). Also hanging onto a
request isn't that evil really, why can't we just only clean up in the
destroy function?
-Daniel
> ---
> drivers/gpu/drm/i915/intel_display.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index f56707289615..e72ad97998a4 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -13754,6 +13754,8 @@ static void intel_atomic_commit_tail(struct drm_atomic_state *state)
> /* EIO should be eaten, and we can't get interrupted in the
> * worker, and blocking commits have waited already. */
> WARN_ON(ret);
> +
> + i915_gem_request_assign(&intel_plane_state->wait_req, NULL);
> }
>
> if (!state->legacy_cursor_update)
> @@ -14190,7 +14192,6 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
> const struct drm_plane_state *old_state)
> {
> struct drm_device *dev = plane->dev;
> - struct intel_plane_state *intel_state = to_intel_plane_state(plane->state);
> struct drm_i915_gem_object *old_obj = intel_fb_obj(old_state->fb);
> struct intel_plane_state *old_intel_state =
> to_intel_plane_state(old_state);
> @@ -14199,7 +14200,6 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
> !INTEL_INFO(dev)->cursor_needs_physical))
> intel_unpin_fb_obj(old_state->fb, old_state->rotation);
>
> - i915_gem_request_assign(&intel_state->wait_req, NULL);
> i915_gem_request_assign(&old_intel_state->wait_req, NULL);
> }
>
> --
> 2.7.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused
2016-08-08 15:34 ` Daniel Vetter
@ 2016-08-08 15:49 ` Keith Packard
2016-08-09 10:15 ` [PATCH 2/2] drm/i915: Drop reference to plane state wait req in destructor Maarten Lankhorst
2016-08-09 9:18 ` [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused Maarten Lankhorst
1 sibling, 1 reply; 9+ messages in thread
From: Keith Packard @ 2016-08-08 15:49 UTC (permalink / raw)
To: Daniel Vetter, Maarten Lankhorst
Cc: David Airlie, Daniel Vetter, intel-gfx, dri-devel
[-- Attachment #1.1: Type: text/plain, Size: 660 bytes --]
Daniel Vetter <daniel@ffwll.ch> writes:
> We still need to clean up the reference in case of failure, which
> means latest in intel_plane_destroy_state(). Also hanging onto a
> request isn't that evil really, why can't we just only clean up in the
> destroy function?
Sticking a cleanup there as well is good insurance, but it seems like a
reasonable policy to drop references when values go 'out of scope' as
they do in cleanup_plane_fb. But, you're right, we only *need* to drop
the reference in the destroy function, it's just that the state hangs
around until the next mode setting operation, which is likely to be days
away.
--
-keith
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 810 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused
2016-08-08 15:34 ` Daniel Vetter
2016-08-08 15:49 ` Keith Packard
@ 2016-08-09 9:18 ` Maarten Lankhorst
1 sibling, 0 replies; 9+ messages in thread
From: Maarten Lankhorst @ 2016-08-09 9:18 UTC (permalink / raw)
To: Daniel Vetter
Cc: David Airlie, Daniel Vetter, intel-gfx, Keith Packard, dri-devel
Op 08-08-16 om 17:34 schreef Daniel Vetter:
> On Mon, Aug 8, 2016 at 1:23 PM, Maarten Lankhorst
> <maarten.lankhorst@linux.intel.com> wrote:
>> There are two paths into intel_cleanup_plane_fb, the normal completion
>> path and the failure path.
>>
>> In the failure case, intel_cleanup_plane_fb is called before
>> drm_atomic_helper_swap_state, so any wait_req reference made in
>> intel_prepare_plane_fb will be in old_intel_state->wait_req.
>>
>> In the normal completion path, wait_req is not freed until
>> the next commit, which is no longer used after waiting.
>>
>> Free it as soon as possible, so we don't hold on to it indefinitely.
>>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
>> Cc: Keith Packard <keithp@keithp.com>
>> Cc: Daniel Vetter <daniel.vetter@intel.com>
>> Cc: David Airlie <airlied@linux.ie>
>> Cc: intel-gfx@lists.freedesktop.org
>> Cc: dri-devel@lists.freedesktop.org
>> Fixes: 849782575325 ("drm/i915: cleanup_plane_fb: also drop reference to current state wait_req")
> We still need to clean up the reference in case of failure, which
> means latest in intel_plane_destroy_state(). Also hanging onto a
> request isn't that evil really, why can't we just only clean up in the
> destroy function?
Hm true, we're still guaranteed to call cleanup_plane_fb in case of failure though, else the WARN in unref would trigger.
I think it's harmless to hang onto the request, worst case we keep an extra MAX_PLANES * MAX_CRTCS * sizeof(i915_gem_request) allocated,
which is slightly more than 4k memory. (4 * 3 * 352)
If we unref the request in the destructor, it's also one step closer to constifying plane_state.
~Maarten
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2] drm/i915: Drop reference to plane state wait req in destructor.
2016-08-08 15:49 ` Keith Packard
@ 2016-08-09 10:15 ` Maarten Lankhorst
2016-08-09 11:20 ` Daniel Vetter
0 siblings, 1 reply; 9+ messages in thread
From: Maarten Lankhorst @ 2016-08-09 10:15 UTC (permalink / raw)
To: Keith Packard, Daniel Vetter
Cc: David Airlie, Daniel Vetter, intel-gfx, dri-devel
With gem requests reworked to only keep some memory around after
it's completed it's now mostly harmless to keep a reference to the
request until the state is destroyed. This makes it easy to hang
on to the request until the plane state is destroyed since it is
just a bunch of memory now.
On my 64-bits system a i915_gem_request is 352 bytes. With all
3 crtc's, each 4 planes enabled the total is 4224 bytes,
low enough not to optimize this case too much.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Keith Packard <keithp@keithp.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>
Cc: David Airlie <airlied@linux.ie>
Cc: intel-gfx@lists.freedesktop.org
Cc: dri-devel@lists.freedesktop.org
Fixes: 849782575325 ("drm/i915: cleanup_plane_fb: also drop reference to current state wait_req")
---
drivers/gpu/drm/i915/intel_atomic_plane.c | 5 ++++-
drivers/gpu/drm/i915/intel_display.c | 6 ------
2 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
index 7de7721f65bc..f98071a1dcc0 100644
--- a/drivers/gpu/drm/i915/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
@@ -101,7 +101,10 @@ void
intel_plane_destroy_state(struct drm_plane *plane,
struct drm_plane_state *state)
{
- WARN_ON(state && to_intel_plane_state(state)->wait_req);
+ struct intel_plane_state *intel_state = to_intel_plane_state(state);
+
+ i915_gem_request_assign(&intel_state->wait_req, NULL);
+
drm_atomic_helper_plane_destroy_state(plane, state);
}
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index af45ee206239..774895288bcc 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -14063,17 +14063,11 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
const struct drm_plane_state *old_state)
{
struct drm_device *dev = plane->dev;
- struct intel_plane_state *intel_state = to_intel_plane_state(plane->state);
struct drm_i915_gem_object *old_obj = intel_fb_obj(old_state->fb);
- struct intel_plane_state *old_intel_state =
- to_intel_plane_state(old_state);
if (old_obj && (plane->type != DRM_PLANE_TYPE_CURSOR ||
!INTEL_INFO(dev)->cursor_needs_physical))
intel_unpin_fb_obj(old_state->fb, old_state->rotation);
-
- i915_gem_request_assign(&intel_state->wait_req, NULL);
- i915_gem_request_assign(&old_intel_state->wait_req, NULL);
}
int
--
2.7.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] drm/i915: Drop reference to plane state wait req in destructor.
2016-08-09 10:15 ` [PATCH 2/2] drm/i915: Drop reference to plane state wait req in destructor Maarten Lankhorst
@ 2016-08-09 11:20 ` Daniel Vetter
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2016-08-09 11:20 UTC (permalink / raw)
To: Maarten Lankhorst
Cc: Keith Packard, David Airlie, intel-gfx, dri-devel, Daniel Vetter
On Tue, Aug 09, 2016 at 12:15:51PM +0200, Maarten Lankhorst wrote:
> With gem requests reworked to only keep some memory around after
> it's completed it's now mostly harmless to keep a reference to the
> request until the state is destroyed. This makes it easy to hang
> on to the request until the plane state is destroyed since it is
> just a bunch of memory now.
>
> On my 64-bits system a i915_gem_request is 352 bytes. With all
> 3 crtc's, each 4 planes enabled the total is 4224 bytes,
> low enough not to optimize this case too much.
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> Cc: Keith Packard <keithp@keithp.com>
> Cc: Daniel Vetter <daniel.vetter@intel.com>
> Cc: David Airlie <airlied@linux.ie>
> Cc: intel-gfx@lists.freedesktop.org
> Cc: dri-devel@lists.freedesktop.org
> Fixes: 849782575325 ("drm/i915: cleanup_plane_fb: also drop reference to current state wait_req")
Yeah, I think hanging onto requests like that is perfectly fine, and it
simplifies the gymnastics for tracking things if we always allocate
drm_*_state resources in atomic_duplicate, update the refs in atomic_check
(with the various set functions the core has, or our own) and then release
references in atomic_state destroy.
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> ---
> drivers/gpu/drm/i915/intel_atomic_plane.c | 5 ++++-
> drivers/gpu/drm/i915/intel_display.c | 6 ------
> 2 files changed, 4 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_atomic_plane.c b/drivers/gpu/drm/i915/intel_atomic_plane.c
> index 7de7721f65bc..f98071a1dcc0 100644
> --- a/drivers/gpu/drm/i915/intel_atomic_plane.c
> +++ b/drivers/gpu/drm/i915/intel_atomic_plane.c
> @@ -101,7 +101,10 @@ void
> intel_plane_destroy_state(struct drm_plane *plane,
> struct drm_plane_state *state)
> {
> - WARN_ON(state && to_intel_plane_state(state)->wait_req);
> + struct intel_plane_state *intel_state = to_intel_plane_state(state);
> +
> + i915_gem_request_assign(&intel_state->wait_req, NULL);
> +
> drm_atomic_helper_plane_destroy_state(plane, state);
> }
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index af45ee206239..774895288bcc 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -14063,17 +14063,11 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
> const struct drm_plane_state *old_state)
> {
> struct drm_device *dev = plane->dev;
> - struct intel_plane_state *intel_state = to_intel_plane_state(plane->state);
> struct drm_i915_gem_object *old_obj = intel_fb_obj(old_state->fb);
> - struct intel_plane_state *old_intel_state =
> - to_intel_plane_state(old_state);
>
> if (old_obj && (plane->type != DRM_PLANE_TYPE_CURSOR ||
> !INTEL_INFO(dev)->cursor_needs_physical))
> intel_unpin_fb_obj(old_state->fb, old_state->rotation);
> -
> - i915_gem_request_assign(&intel_state->wait_req, NULL);
> - i915_gem_request_assign(&old_intel_state->wait_req, NULL);
> }
>
> int
> --
> 2.7.4
>
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2016-08-09 11:20 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-08 11:23 [PATCH 0/2] drm/i915: Fix wait_req unreferencing Maarten Lankhorst
2016-08-08 11:23 ` [PATCH 1/2] drm/i915: Remove early return in prepare/cleanup plane Maarten Lankhorst
2016-08-08 11:23 ` [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused Maarten Lankhorst
2016-08-08 15:34 ` Daniel Vetter
2016-08-08 15:49 ` Keith Packard
2016-08-09 10:15 ` [PATCH 2/2] drm/i915: Drop reference to plane state wait req in destructor Maarten Lankhorst
2016-08-09 11:20 ` Daniel Vetter
2016-08-09 9:18 ` [PATCH 2/2] drm/i915: Drop reference to current state wait req as soon as it goes unused Maarten Lankhorst
2016-08-08 11:25 ` ✗ Ro.CI.BAT: failure for drm/i915: Fix wait_req unreferencing Patchwork
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.