* [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
@ 2015-03-27 8:10 Daniel Vetter
2015-03-27 8:13 ` Daniel Vetter
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Daniel Vetter @ 2015-03-27 8:10 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter, DRI Development, Daniel Vetter
It's completely unused and Tommi noticed that the #define is borked
since forever. I've done a git search in userspace and only found
broken definitions and no users anywhere.
Cc: Tommi Rantala <tt.rantala@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
drivers/gpu/drm/i915/i915_dma.c | 2 +-
drivers/gpu/drm/i915/intel_drv.h | 2 --
drivers/gpu/drm/i915/intel_sprite.c | 24 ------------------------
3 files changed, 1 insertion(+), 27 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index d49ed68f041e..68e0c85a17cf 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1199,7 +1199,7 @@ const struct drm_ioctl_desc i915_ioctls[] = {
DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
DRM_IOCTL_DEF_DRV(I915_SET_SPRITE_COLORKEY, intel_sprite_set_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
- DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, intel_sprite_get_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
+ DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, drm_noop, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
DRM_IOCTL_DEF_DRV(I915_GEM_WAIT, i915_gem_wait_ioctl, DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_CREATE, i915_gem_context_create_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_DESTROY, i915_gem_context_destroy_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index cb57b9c446f3..6036e3b73b7b 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1282,8 +1282,6 @@ void intel_flush_primary_plane(struct drm_i915_private *dev_priv,
int intel_plane_restore(struct drm_plane *plane);
int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
- struct drm_file *file_priv);
bool intel_pipe_update_start(struct intel_crtc *crtc,
uint32_t *start_vbl_count);
void intel_pipe_update_end(struct intel_crtc *crtc, u32 start_vbl_count);
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
index f41e872ad858..e9ff6fc61267 100644
--- a/drivers/gpu/drm/i915/intel_sprite.c
+++ b/drivers/gpu/drm/i915/intel_sprite.c
@@ -1134,30 +1134,6 @@ out_unlock:
return ret;
}
-int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
- struct drm_file *file_priv)
-{
- struct drm_intel_sprite_colorkey *get = data;
- struct drm_plane *plane;
- struct intel_plane *intel_plane;
- int ret = 0;
-
- drm_modeset_lock_all(dev);
-
- plane = drm_plane_find(dev, get->plane_id);
- if (!plane) {
- ret = -ENOENT;
- goto out_unlock;
- }
-
- intel_plane = to_intel_plane(plane);
- *get = intel_plane->ckey;
-
-out_unlock:
- drm_modeset_unlock_all(dev);
- return ret;
-}
-
int intel_plane_restore(struct drm_plane *plane)
{
if (!plane->crtc || !plane->state->fb)
--
2.1.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
2015-03-27 8:10 [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl Daniel Vetter
@ 2015-03-27 8:13 ` Daniel Vetter
2015-03-27 16:42 ` Jani Nikula
2015-04-02 8:27 ` Jani Nikula
2015-03-27 12:10 ` shuang.he
2015-03-27 12:10 ` Emil Velikov
2 siblings, 2 replies; 8+ messages in thread
From: Daniel Vetter @ 2015-03-27 8:13 UTC (permalink / raw)
To: Intel Graphics Development; +Cc: Daniel Vetter, DRI Development, Daniel Vetter
On Fri, Mar 27, 2015 at 09:10:02AM +0100, Daniel Vetter wrote:
> It's completely unused and Tommi noticed that the #define is borked
> since forever. I've done a git search in userspace and only found
> broken definitions and no users anywhere.
>
> Cc: Tommi Rantala <tt.rantala@gmail.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Hm Tommi discovered oopses in there, so I guess this should be
cherry-picked to -fixes+cc: stable too? Jani?
-Daniel
> ---
> drivers/gpu/drm/i915/i915_dma.c | 2 +-
> drivers/gpu/drm/i915/intel_drv.h | 2 --
> drivers/gpu/drm/i915/intel_sprite.c | 24 ------------------------
> 3 files changed, 1 insertion(+), 27 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index d49ed68f041e..68e0c85a17cf 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1199,7 +1199,7 @@ const struct drm_ioctl_desc i915_ioctls[] = {
> DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
> DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
> DRM_IOCTL_DEF_DRV(I915_SET_SPRITE_COLORKEY, intel_sprite_set_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
> - DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, intel_sprite_get_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
> + DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, drm_noop, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
> DRM_IOCTL_DEF_DRV(I915_GEM_WAIT, i915_gem_wait_ioctl, DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
> DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_CREATE, i915_gem_context_create_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
> DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_DESTROY, i915_gem_context_destroy_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
> index cb57b9c446f3..6036e3b73b7b 100644
> --- a/drivers/gpu/drm/i915/intel_drv.h
> +++ b/drivers/gpu/drm/i915/intel_drv.h
> @@ -1282,8 +1282,6 @@ void intel_flush_primary_plane(struct drm_i915_private *dev_priv,
> int intel_plane_restore(struct drm_plane *plane);
> int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
> struct drm_file *file_priv);
> -int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
> - struct drm_file *file_priv);
> bool intel_pipe_update_start(struct intel_crtc *crtc,
> uint32_t *start_vbl_count);
> void intel_pipe_update_end(struct intel_crtc *crtc, u32 start_vbl_count);
> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
> index f41e872ad858..e9ff6fc61267 100644
> --- a/drivers/gpu/drm/i915/intel_sprite.c
> +++ b/drivers/gpu/drm/i915/intel_sprite.c
> @@ -1134,30 +1134,6 @@ out_unlock:
> return ret;
> }
>
> -int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
> - struct drm_file *file_priv)
> -{
> - struct drm_intel_sprite_colorkey *get = data;
> - struct drm_plane *plane;
> - struct intel_plane *intel_plane;
> - int ret = 0;
> -
> - drm_modeset_lock_all(dev);
> -
> - plane = drm_plane_find(dev, get->plane_id);
> - if (!plane) {
> - ret = -ENOENT;
> - goto out_unlock;
> - }
> -
> - intel_plane = to_intel_plane(plane);
> - *get = intel_plane->ckey;
> -
> -out_unlock:
> - drm_modeset_unlock_all(dev);
> - return ret;
> -}
> -
> int intel_plane_restore(struct drm_plane *plane)
> {
> if (!plane->crtc || !plane->state->fb)
> --
> 2.1.4
>
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
2015-03-27 8:10 [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl Daniel Vetter
2015-03-27 8:13 ` Daniel Vetter
@ 2015-03-27 12:10 ` shuang.he
2015-03-27 12:10 ` Emil Velikov
2 siblings, 0 replies; 8+ messages in thread
From: shuang.he @ 2015-03-27 12:10 UTC (permalink / raw)
To: shuang.he, ethan.gao, intel-gfx, daniel.vetter
Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 6070
-------------------------------------Summary-------------------------------------
Platform Delta drm-intel-nightly Series Applied
PNV 276/276 276/276
ILK 303/303 303/303
SNB -1 304/304 303/304
IVB -1 330/330 329/330
BYT 287/287 287/287
HSW 361/361 361/361
BDW 309/309 309/309
-------------------------------------Detailed-------------------------------------
Platform Test drm-intel-nightly Series Applied
*SNB igt@kms_rotation_crc@primary-rotation PASS(2) DMESG_FAIL(1)PASS(1)
(dmesg patch applied)drm:intel_dp_start_link_train[i915]]*ERROR*too_many_voltage_retries,give_up@too many voltage .* give up
drm:intel_dp_complete_link_train[i915]]*ERROR*failed_to_train_DP,aborting@failed to train .* aborting
*IVB igt@gem_pwrite_pread@snooped-copy-performance PASS(3) DMESG_WARN(1)PASS(1)
(dmesg patch applied)drm:i915_hangcheck_elapsed[i915]]*ERROR*Hangcheck_timer_elapsed...blitter_ring_idle@Hangcheck timer elapsed... blitter ring idle
Note: You need to pay more attention to line start with '*'
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
2015-03-27 8:10 [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl Daniel Vetter
2015-03-27 8:13 ` Daniel Vetter
2015-03-27 12:10 ` shuang.he
@ 2015-03-27 12:10 ` Emil Velikov
2 siblings, 0 replies; 8+ messages in thread
From: Emil Velikov @ 2015-03-27 12:10 UTC (permalink / raw)
To: Daniel Vetter; +Cc: Daniel Vetter, Intel Graphics Development, DRI Development
On 27 March 2015 at 08:10, Daniel Vetter <daniel.vetter@ffwll.ch> wrote:
> It's completely unused and Tommi noticed that the #define is borked
> since forever. I've done a git search in userspace and only found
> broken definitions and no users anywhere.
>
With this said, have you seen any userspace that uses the uapi/drm
headers ? I'm been going through various repos and cannot see a single
one. I'm contemplating on hiding them, so that:
- We can stop the individual picking of changes into libdrm
- Allow easier and automated sync between libdrm and the kernel. Note
that I've fixed the make copy-headers target, but the headers are
severely out of sync.
Although I don't know (see any document) that defines the policy on
this type of changes. Would you have any tips ?
Thanks
Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
2015-03-27 8:13 ` Daniel Vetter
@ 2015-03-27 16:42 ` Jani Nikula
2015-03-27 17:40 ` Tommi Rantala
2015-04-02 8:27 ` Jani Nikula
1 sibling, 1 reply; 8+ messages in thread
From: Jani Nikula @ 2015-03-27 16:42 UTC (permalink / raw)
To: Daniel Vetter, Intel Graphics Development
Cc: Syrjala, Ville, Daniel Vetter, DRI Development, Barnes, Jesse,
Daniel Vetter
On Fri, 27 Mar 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Fri, Mar 27, 2015 at 09:10:02AM +0100, Daniel Vetter wrote:
>> It's completely unused and Tommi noticed that the #define is borked
>> since forever. I've done a git search in userspace and only found
>> broken definitions and no users anywhere.
>>
>> Cc: Tommi Rantala <tt.rantala@gmail.com>
>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>
> Hm Tommi discovered oopses in there, so I guess this should be
> cherry-picked to -fixes+cc: stable too? Jani?
My OCD really wants to know why this blows up. The get/set functions
look so similar that it feels like the set should fail just the same...
Tommi, did you try just the set part of your test program [1]?
Sorry for not trying it out myself, I'm calling it a day (and week)
now...
BR,
Jani.
[1] http://mid.gmane.org/CA+ydwtr+bCo7LJ44JFmUkVRx144UDFgOS+aJTfK6KHtvBDVuAw@mail.gmail.com
> -Daniel
>
>> ---
>> drivers/gpu/drm/i915/i915_dma.c | 2 +-
>> drivers/gpu/drm/i915/intel_drv.h | 2 --
>> drivers/gpu/drm/i915/intel_sprite.c | 24 ------------------------
>> 3 files changed, 1 insertion(+), 27 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
>> index d49ed68f041e..68e0c85a17cf 100644
>> --- a/drivers/gpu/drm/i915/i915_dma.c
>> +++ b/drivers/gpu/drm/i915/i915_dma.c
>> @@ -1199,7 +1199,7 @@ const struct drm_ioctl_desc i915_ioctls[] = {
>> DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> DRM_IOCTL_DEF_DRV(I915_SET_SPRITE_COLORKEY, intel_sprite_set_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> - DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, intel_sprite_get_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> + DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, drm_noop, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> DRM_IOCTL_DEF_DRV(I915_GEM_WAIT, i915_gem_wait_ioctl, DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
>> DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_CREATE, i915_gem_context_create_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
>> DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_DESTROY, i915_gem_context_destroy_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
>> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
>> index cb57b9c446f3..6036e3b73b7b 100644
>> --- a/drivers/gpu/drm/i915/intel_drv.h
>> +++ b/drivers/gpu/drm/i915/intel_drv.h
>> @@ -1282,8 +1282,6 @@ void intel_flush_primary_plane(struct drm_i915_private *dev_priv,
>> int intel_plane_restore(struct drm_plane *plane);
>> int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
>> struct drm_file *file_priv);
>> -int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
>> - struct drm_file *file_priv);
>> bool intel_pipe_update_start(struct intel_crtc *crtc,
>> uint32_t *start_vbl_count);
>> void intel_pipe_update_end(struct intel_crtc *crtc, u32 start_vbl_count);
>> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
>> index f41e872ad858..e9ff6fc61267 100644
>> --- a/drivers/gpu/drm/i915/intel_sprite.c
>> +++ b/drivers/gpu/drm/i915/intel_sprite.c
>> @@ -1134,30 +1134,6 @@ out_unlock:
>> return ret;
>> }
>>
>> -int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
>> - struct drm_file *file_priv)
>> -{
>> - struct drm_intel_sprite_colorkey *get = data;
>> - struct drm_plane *plane;
>> - struct intel_plane *intel_plane;
>> - int ret = 0;
>> -
>> - drm_modeset_lock_all(dev);
>> -
>> - plane = drm_plane_find(dev, get->plane_id);
>> - if (!plane) {
>> - ret = -ENOENT;
>> - goto out_unlock;
>> - }
>> -
>> - intel_plane = to_intel_plane(plane);
>> - *get = intel_plane->ckey;
>> -
>> -out_unlock:
>> - drm_modeset_unlock_all(dev);
>> - return ret;
>> -}
>> -
>> int intel_plane_restore(struct drm_plane *plane)
>> {
>> if (!plane->crtc || !plane->state->fb)
>> --
>> 2.1.4
>>
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
2015-03-27 16:42 ` Jani Nikula
@ 2015-03-27 17:40 ` Tommi Rantala
2015-03-27 17:55 ` Ville Syrjälä
0 siblings, 1 reply; 8+ messages in thread
From: Tommi Rantala @ 2015-03-27 17:40 UTC (permalink / raw)
To: Jani Nikula
Cc: Syrjala, Ville, Daniel Vetter, Intel Graphics Development,
DRI Development, Barnes, Jesse, Daniel Vetter
2015-03-27 18:42 GMT+02:00 Jani Nikula <jani.nikula@linux.intel.com>:
> On Fri, 27 Mar 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
>> On Fri, Mar 27, 2015 at 09:10:02AM +0100, Daniel Vetter wrote:
>>> It's completely unused and Tommi noticed that the #define is borked
>>> since forever. I've done a git search in userspace and only found
>>> broken definitions and no users anywhere.
>>>
>>> Cc: Tommi Rantala <tt.rantala@gmail.com>
>>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>>
>> Hm Tommi discovered oopses in there, so I guess this should be
>> cherry-picked to -fixes+cc: stable too? Jani?
>
> My OCD really wants to know why this blows up. The get/set functions
> look so similar that it feels like the set should fail just the same...
> Tommi, did you try just the set part of your test program [1]?
Yes, both the set and get ioctls crash:
[ 20.868660] BUG: unable to handle kernel NULL pointer dereference
at (null)
[ 20.876527] IP: [< (null)>] (null)
[ 20.881573] PGD c4f7d067 PUD c2a6b067 PMD 0
[ 20.885866] Oops: 0010 [#1] SMP KASAN
[ 20.889549] CPU: 1 PID: 2207 Comm: main Not tainted 4.0.0-rc5+ #89
[ 20.902805] task: ffff8800c4fad380 ti: ffff8800c2b98000 task.ti:
ffff8800c2b98000
[ 20.910257] RIP: 0010:[<0000000000000000>] [< (null)>]
(null)
[ 20.917722] RSP: 0018:ffff8800c2b9fd30 EFLAGS: 00010246
[ 20.923012] RAX: ffffed002e87c961 RBX: ffff88017463d000 RCX: 0000000000000006
[ 20.930116] RDX: dffffc0000000000 RSI: ffff8800c2b9fdd8 RDI: ffff8801743e4800
[ 20.937214] RBP: ffff8800c2b9fd68 R08: 0000000000000000 R09: 0000000000000000
[ 20.944318] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800c2b9fdd8
[ 20.951416] R13: ffff8801743e48d8 R14: 00000000fffffffe R15: ffff8801743e4800
[ 20.958524] FS: 00007f7139b3a700(0000) GS:ffff880175e00000(0000)
knlGS:0000000000000000
[ 20.966575] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 20.972300] CR2: 0000000000000000 CR3: 00000000c2a67000 CR4: 00000000000406e0
[ 20.979407] Stack:
[ 20.981414] ffffffff81b4a11d ffff8800c2b9fd68 ffff88017463d000
ffff8800c4c50c00
[ 20.988838] 0000000000000014 fffffffffffffff2 ffffffff8271c3e0
ffff8800c2b9fe88
[ 20.996238] ffffffff818acbbc ffff8800c2b9fe18 ffffffff8165d7c2
ffffffff8165d660
[ 21.003658] Call Trace:
[ 21.006110] [<ffffffff81b4a11d>] ? intel_sprite_set_colorkey+0xad/0xf0
[ 21.012695] [<ffffffff818acbbc>] drm_ioctl+0x27c/0x890
[ 21.017904] [<ffffffff8165d7c2>] ? avc_has_perm+0x182/0x320
[ 21.023544] [<ffffffff8165d660>] ? avc_has_perm+0x20/0x320
[ 21.029098] [<ffffffff81b4a070>] ? intel_pre_disable_primary+0x90/0x90
[ 21.035690] [<ffffffff8165ffac>] ? inode_has_perm.isra.28+0x7c/0xa0
[ 21.042023] [<ffffffff812f8caf>] do_vfs_ioctl+0x3cf/0x720
[ 21.047488] [<ffffffff81660caa>] ? selinux_file_ioctl+0x6a/0x130
[ 21.053558] [<ffffffff812f9081>] SyS_ioctl+0x81/0xa0
[ 21.058595] [<ffffffff825e08b2>] system_call_fastpath+0x12/0x17
[ 21.064580] Code: Bad RIP value.
[ 21.067916] RIP [< (null)>] (null)
[ 21.073048] RSP <ffff8800c2b9fd30>
[ 21.076524] CR2: 0000000000000000
[ 21.079863] ---[ end trace 161ba639126f6a45 ]---
[ 274.286068] BUG: unable to handle kernel NULL pointer dereference
at (null)
[ 274.295149] IP: [< (null)>] (null)
[ 274.300242] PGD 171999067 PUD 171b93067 PMD 0
[ 274.304744] Oops: 0010 [#1] SMP KASAN
[ 274.308460] CPU: 0 PID: 2202 Comm: main Not tainted 4.0.0-rc5+ #89
[ 274.321856] task: ffff8801726914e0 ti: ffff880172928000 task.ti:
ffff880172928000
[ 274.329383] RIP: 0010:[<0000000000000000>] [< (null)>]
(null)
[ 274.336924] RSP: 0018:ffff88017292fd30 EFLAGS: 00010246
[ 274.342267] RAX: ffffed002e7bc362 RBX: ffff88017442f000 RCX: 0000000000000007
[ 274.349446] RDX: 0000000000000000 RSI: ffff88017292fdd8 RDI: ffff880173de1800
[ 274.356624] RBP: ffff88017292fd68 R08: 0000000000000000 R09: 0000000000000000
[ 274.363803] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[ 274.370979] R13: ffff880173de18d8 R14: ffff88017292fdd8 R15: ffff880173de1800
[ 274.378157] FS: 00007f48d6b16700(0000) GS:ffff880175c00000(0000)
knlGS:0000000000000000
[ 274.386297] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 274.392078] CR2: 0000000000000000 CR3: 000000017188d000 CR4: 00000000000406f0
[ 274.399257] Stack:
[ 274.401280] ffffffff81b4a1f7 ffff88017292fd68 ffff88017442f000
ffff880172cc7c00
[ 274.408761] 0000000000000014 fffffffffffffff2 ffffffff8271c3c0
ffff88017292fe88
[ 274.416244] ffffffff818acbbc ffff88017292fe18 ffffffff8165d7c2
ffffffff8165d660
[ 274.423727] Call Trace:
[ 274.426192] [<ffffffff81b4a1f7>] ? intel_sprite_get_colorkey+0x97/0xc0
[ 274.432849] [<ffffffff818acbbc>] drm_ioctl+0x27c/0x890
[ 274.438107] [<ffffffff8165d7c2>] ? avc_has_perm+0x182/0x320
[ 274.443800] [<ffffffff8165d660>] ? avc_has_perm+0x20/0x320
[ 274.449407] [<ffffffff81b4a160>] ? intel_sprite_set_colorkey+0xf0/0xf0
[ 274.456065] [<ffffffff8165ffac>] ? inode_has_perm.isra.28+0x7c/0xa0
[ 274.462462] [<ffffffff812f8caf>] do_vfs_ioctl+0x3cf/0x720
[ 274.467984] [<ffffffff81660caa>] ? selinux_file_ioctl+0x6a/0x130
[ 274.474115] [<ffffffff812f9081>] SyS_ioctl+0x81/0xa0
[ 274.479199] [<ffffffff825e08b2>] system_call_fastpath+0x12/0x17
[ 274.485240] Code: Bad RIP value.
[ 274.488597] RIP [< (null)>] (null)
[ 274.493776] RSP <ffff88017292fd30>
[ 274.497283] CR2: 0000000000000000
I debugged this a bit, and found that in intel_sprite_set_colorkey(),
the "intel_plane->update_colorkey" function pointer is NULL, and in
intel_sprite_get_colorkey(), the "intel_plane->get_colorkey" pointer
is NULL. Hence the crash.
If I got it right, the pointers are not set for the "primary" and
"cursor" planes, as initialized in intel_primary_plane_create() and
intel_cursor_plane_create().
Tommi
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
2015-03-27 17:40 ` Tommi Rantala
@ 2015-03-27 17:55 ` Ville Syrjälä
0 siblings, 0 replies; 8+ messages in thread
From: Ville Syrjälä @ 2015-03-27 17:55 UTC (permalink / raw)
To: Tommi Rantala
Cc: Syrjala, Ville, Daniel Vetter, Intel Graphics Development,
DRI Development, Barnes, Jesse, Daniel Vetter
On Fri, Mar 27, 2015 at 07:40:43PM +0200, Tommi Rantala wrote:
> 2015-03-27 18:42 GMT+02:00 Jani Nikula <jani.nikula@linux.intel.com>:
> > On Fri, 27 Mar 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
> >> On Fri, Mar 27, 2015 at 09:10:02AM +0100, Daniel Vetter wrote:
> >>> It's completely unused and Tommi noticed that the #define is borked
> >>> since forever. I've done a git search in userspace and only found
> >>> broken definitions and no users anywhere.
> >>>
> >>> Cc: Tommi Rantala <tt.rantala@gmail.com>
> >>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> >>
> >> Hm Tommi discovered oopses in there, so I guess this should be
> >> cherry-picked to -fixes+cc: stable too? Jani?
> >
> > My OCD really wants to know why this blows up. The get/set functions
> > look so similar that it feels like the set should fail just the same...
> > Tommi, did you try just the set part of your test program [1]?
>
> Yes, both the set and get ioctls crash:
>
> [ 20.868660] BUG: unable to handle kernel NULL pointer dereference
> at (null)
> [ 20.876527] IP: [< (null)>] (null)
> [ 20.881573] PGD c4f7d067 PUD c2a6b067 PMD 0
> [ 20.885866] Oops: 0010 [#1] SMP KASAN
> [ 20.889549] CPU: 1 PID: 2207 Comm: main Not tainted 4.0.0-rc5+ #89
> [ 20.902805] task: ffff8800c4fad380 ti: ffff8800c2b98000 task.ti:
> ffff8800c2b98000
> [ 20.910257] RIP: 0010:[<0000000000000000>] [< (null)>]
> (null)
> [ 20.917722] RSP: 0018:ffff8800c2b9fd30 EFLAGS: 00010246
> [ 20.923012] RAX: ffffed002e87c961 RBX: ffff88017463d000 RCX: 0000000000000006
> [ 20.930116] RDX: dffffc0000000000 RSI: ffff8800c2b9fdd8 RDI: ffff8801743e4800
> [ 20.937214] RBP: ffff8800c2b9fd68 R08: 0000000000000000 R09: 0000000000000000
> [ 20.944318] R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800c2b9fdd8
> [ 20.951416] R13: ffff8801743e48d8 R14: 00000000fffffffe R15: ffff8801743e4800
> [ 20.958524] FS: 00007f7139b3a700(0000) GS:ffff880175e00000(0000)
> knlGS:0000000000000000
> [ 20.966575] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 20.972300] CR2: 0000000000000000 CR3: 00000000c2a67000 CR4: 00000000000406e0
> [ 20.979407] Stack:
> [ 20.981414] ffffffff81b4a11d ffff8800c2b9fd68 ffff88017463d000
> ffff8800c4c50c00
> [ 20.988838] 0000000000000014 fffffffffffffff2 ffffffff8271c3e0
> ffff8800c2b9fe88
> [ 20.996238] ffffffff818acbbc ffff8800c2b9fe18 ffffffff8165d7c2
> ffffffff8165d660
> [ 21.003658] Call Trace:
> [ 21.006110] [<ffffffff81b4a11d>] ? intel_sprite_set_colorkey+0xad/0xf0
> [ 21.012695] [<ffffffff818acbbc>] drm_ioctl+0x27c/0x890
> [ 21.017904] [<ffffffff8165d7c2>] ? avc_has_perm+0x182/0x320
> [ 21.023544] [<ffffffff8165d660>] ? avc_has_perm+0x20/0x320
> [ 21.029098] [<ffffffff81b4a070>] ? intel_pre_disable_primary+0x90/0x90
> [ 21.035690] [<ffffffff8165ffac>] ? inode_has_perm.isra.28+0x7c/0xa0
> [ 21.042023] [<ffffffff812f8caf>] do_vfs_ioctl+0x3cf/0x720
> [ 21.047488] [<ffffffff81660caa>] ? selinux_file_ioctl+0x6a/0x130
> [ 21.053558] [<ffffffff812f9081>] SyS_ioctl+0x81/0xa0
> [ 21.058595] [<ffffffff825e08b2>] system_call_fastpath+0x12/0x17
> [ 21.064580] Code: Bad RIP value.
> [ 21.067916] RIP [< (null)>] (null)
> [ 21.073048] RSP <ffff8800c2b9fd30>
> [ 21.076524] CR2: 0000000000000000
> [ 21.079863] ---[ end trace 161ba639126f6a45 ]---
>
>
> [ 274.286068] BUG: unable to handle kernel NULL pointer dereference
> at (null)
> [ 274.295149] IP: [< (null)>] (null)
> [ 274.300242] PGD 171999067 PUD 171b93067 PMD 0
> [ 274.304744] Oops: 0010 [#1] SMP KASAN
> [ 274.308460] CPU: 0 PID: 2202 Comm: main Not tainted 4.0.0-rc5+ #89
> [ 274.321856] task: ffff8801726914e0 ti: ffff880172928000 task.ti:
> ffff880172928000
> [ 274.329383] RIP: 0010:[<0000000000000000>] [< (null)>]
> (null)
> [ 274.336924] RSP: 0018:ffff88017292fd30 EFLAGS: 00010246
> [ 274.342267] RAX: ffffed002e7bc362 RBX: ffff88017442f000 RCX: 0000000000000007
> [ 274.349446] RDX: 0000000000000000 RSI: ffff88017292fdd8 RDI: ffff880173de1800
> [ 274.356624] RBP: ffff88017292fd68 R08: 0000000000000000 R09: 0000000000000000
> [ 274.363803] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> [ 274.370979] R13: ffff880173de18d8 R14: ffff88017292fdd8 R15: ffff880173de1800
> [ 274.378157] FS: 00007f48d6b16700(0000) GS:ffff880175c00000(0000)
> knlGS:0000000000000000
> [ 274.386297] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [ 274.392078] CR2: 0000000000000000 CR3: 000000017188d000 CR4: 00000000000406f0
> [ 274.399257] Stack:
> [ 274.401280] ffffffff81b4a1f7 ffff88017292fd68 ffff88017442f000
> ffff880172cc7c00
> [ 274.408761] 0000000000000014 fffffffffffffff2 ffffffff8271c3c0
> ffff88017292fe88
> [ 274.416244] ffffffff818acbbc ffff88017292fe18 ffffffff8165d7c2
> ffffffff8165d660
> [ 274.423727] Call Trace:
> [ 274.426192] [<ffffffff81b4a1f7>] ? intel_sprite_get_colorkey+0x97/0xc0
> [ 274.432849] [<ffffffff818acbbc>] drm_ioctl+0x27c/0x890
> [ 274.438107] [<ffffffff8165d7c2>] ? avc_has_perm+0x182/0x320
> [ 274.443800] [<ffffffff8165d660>] ? avc_has_perm+0x20/0x320
> [ 274.449407] [<ffffffff81b4a160>] ? intel_sprite_set_colorkey+0xf0/0xf0
> [ 274.456065] [<ffffffff8165ffac>] ? inode_has_perm.isra.28+0x7c/0xa0
> [ 274.462462] [<ffffffff812f8caf>] do_vfs_ioctl+0x3cf/0x720
> [ 274.467984] [<ffffffff81660caa>] ? selinux_file_ioctl+0x6a/0x130
> [ 274.474115] [<ffffffff812f9081>] SyS_ioctl+0x81/0xa0
> [ 274.479199] [<ffffffff825e08b2>] system_call_fastpath+0x12/0x17
> [ 274.485240] Code: Bad RIP value.
> [ 274.488597] RIP [< (null)>] (null)
> [ 274.493776] RSP <ffff88017292fd30>
> [ 274.497283] CR2: 0000000000000000
>
>
> I debugged this a bit, and found that in intel_sprite_set_colorkey(),
> the "intel_plane->update_colorkey" function pointer is NULL, and in
> intel_sprite_get_colorkey(), the "intel_plane->get_colorkey" pointer
> is NULL. Hence the crash.
>
> If I got it right, the pointers are not set for the "primary" and
> "cursor" planes, as initialized in intel_primary_plane_create() and
> intel_cursor_plane_create().
Ah true. So my patch to kill the rmw stuff should actually fix that
crash. Although we should not accept these ioctls for the
primary/cursor planes. I'll toss in a patch for that.
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl
2015-03-27 8:13 ` Daniel Vetter
2015-03-27 16:42 ` Jani Nikula
@ 2015-04-02 8:27 ` Jani Nikula
1 sibling, 0 replies; 8+ messages in thread
From: Jani Nikula @ 2015-04-02 8:27 UTC (permalink / raw)
To: Daniel Vetter, Intel Graphics Development
Cc: Daniel Vetter, DRI Development, Daniel Vetter
On Fri, 27 Mar 2015, Daniel Vetter <daniel@ffwll.ch> wrote:
> On Fri, Mar 27, 2015 at 09:10:02AM +0100, Daniel Vetter wrote:
>> It's completely unused and Tommi noticed that the #define is borked
>> since forever. I've done a git search in userspace and only found
>> broken definitions and no users anywhere.
>>
>> Cc: Tommi Rantala <tt.rantala@gmail.com>
>> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
>
> Hm Tommi discovered oopses in there, so I guess this should be
> cherry-picked to -fixes+cc: stable too? Jani?
I'm picking up Ville's fix [1] for the oops to fixes, cc: stable, and I
think the rest is -next material.
BR,
Jani.
[1] http://mid.gmane.org/1427479180-29894-1-git-send-email-ville.syrjala@linux.intel.com
> -Daniel
>
>> ---
>> drivers/gpu/drm/i915/i915_dma.c | 2 +-
>> drivers/gpu/drm/i915/intel_drv.h | 2 --
>> drivers/gpu/drm/i915/intel_sprite.c | 24 ------------------------
>> 3 files changed, 1 insertion(+), 27 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
>> index d49ed68f041e..68e0c85a17cf 100644
>> --- a/drivers/gpu/drm/i915/i915_dma.c
>> +++ b/drivers/gpu/drm/i915/i915_dma.c
>> @@ -1199,7 +1199,7 @@ const struct drm_ioctl_desc i915_ioctls[] = {
>> DRM_IOCTL_DEF_DRV(I915_OVERLAY_PUT_IMAGE, intel_overlay_put_image, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> DRM_IOCTL_DEF_DRV(I915_OVERLAY_ATTRS, intel_overlay_attrs, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> DRM_IOCTL_DEF_DRV(I915_SET_SPRITE_COLORKEY, intel_sprite_set_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> - DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, intel_sprite_get_colorkey, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> + DRM_IOCTL_DEF_DRV(I915_GET_SPRITE_COLORKEY, drm_noop, DRM_MASTER|DRM_CONTROL_ALLOW|DRM_UNLOCKED),
>> DRM_IOCTL_DEF_DRV(I915_GEM_WAIT, i915_gem_wait_ioctl, DRM_AUTH|DRM_UNLOCKED|DRM_RENDER_ALLOW),
>> DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_CREATE, i915_gem_context_create_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
>> DRM_IOCTL_DEF_DRV(I915_GEM_CONTEXT_DESTROY, i915_gem_context_destroy_ioctl, DRM_UNLOCKED|DRM_RENDER_ALLOW),
>> diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
>> index cb57b9c446f3..6036e3b73b7b 100644
>> --- a/drivers/gpu/drm/i915/intel_drv.h
>> +++ b/drivers/gpu/drm/i915/intel_drv.h
>> @@ -1282,8 +1282,6 @@ void intel_flush_primary_plane(struct drm_i915_private *dev_priv,
>> int intel_plane_restore(struct drm_plane *plane);
>> int intel_sprite_set_colorkey(struct drm_device *dev, void *data,
>> struct drm_file *file_priv);
>> -int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
>> - struct drm_file *file_priv);
>> bool intel_pipe_update_start(struct intel_crtc *crtc,
>> uint32_t *start_vbl_count);
>> void intel_pipe_update_end(struct intel_crtc *crtc, u32 start_vbl_count);
>> diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c
>> index f41e872ad858..e9ff6fc61267 100644
>> --- a/drivers/gpu/drm/i915/intel_sprite.c
>> +++ b/drivers/gpu/drm/i915/intel_sprite.c
>> @@ -1134,30 +1134,6 @@ out_unlock:
>> return ret;
>> }
>>
>> -int intel_sprite_get_colorkey(struct drm_device *dev, void *data,
>> - struct drm_file *file_priv)
>> -{
>> - struct drm_intel_sprite_colorkey *get = data;
>> - struct drm_plane *plane;
>> - struct intel_plane *intel_plane;
>> - int ret = 0;
>> -
>> - drm_modeset_lock_all(dev);
>> -
>> - plane = drm_plane_find(dev, get->plane_id);
>> - if (!plane) {
>> - ret = -ENOENT;
>> - goto out_unlock;
>> - }
>> -
>> - intel_plane = to_intel_plane(plane);
>> - *get = intel_plane->ckey;
>> -
>> -out_unlock:
>> - drm_modeset_unlock_all(dev);
>> - return ret;
>> -}
>> -
>> int intel_plane_restore(struct drm_plane *plane)
>> {
>> if (!plane->crtc || !plane->state->fb)
>> --
>> 2.1.4
>>
>
> --
> Daniel Vetter
> Software Engineer, Intel Corporation
> http://blog.ffwll.ch
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-04-02 8:27 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-27 8:10 [PATCH] drm/i915: Rip out GET_SPRITE_COLORKEY ioctl Daniel Vetter
2015-03-27 8:13 ` Daniel Vetter
2015-03-27 16:42 ` Jani Nikula
2015-03-27 17:40 ` Tommi Rantala
2015-03-27 17:55 ` Ville Syrjälä
2015-04-02 8:27 ` Jani Nikula
2015-03-27 12:10 ` shuang.he
2015-03-27 12:10 ` Emil Velikov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox