Re: [PATCH] drm: fix stalled cliprects when update drawable info with zero rects.

2008-10-17 Thread Eric Anholt
On Fri, 2008-10-17 at 13:15 +0800, Zhenyu Wang wrote:
 From 09a461ca6d05b0c6e82aeca158bad6549ba84904 Mon Sep 17 00:00:00 2001
 From: Zhenyu Wang [EMAIL PROTECTED]
 Date: Fri, 17 Oct 2008 11:20:14 +0800
 Subject: [PATCH] drm: fix stalled cliprects when update drawable info with 
 zero rects.
 
 When passed in drawable's cliprect number as zero, we may
 still alloc and leave a stalled cliprects. Fix by clean up
 cliprects in that case.
 
 Signed-off-by: Zhenyu Wang [EMAIL PROTECTED]
 ---
  drivers/gpu/drm/drm_drawable.c |4 +++-
  1 files changed, 3 insertions(+), 1 deletions(-)
 
 diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c
 index 1839c57..70b15d1 100644
 --- a/drivers/gpu/drm/drm_drawable.c
 +++ b/drivers/gpu/drm/drm_drawable.c
 @@ -111,7 +111,9 @@ int drm_update_drawable_info(struct drm_device *dev, void 
 *data, struct drm_file
  
   switch (update-type) {
   case DRM_DRAWABLE_CLIPRECTS:
 - if (update-num != info-num_rects) {
 + if (update-num == 0)
 + rects = NULL;
 + else if (update-num != info-num_rects) {
   rects = drm_alloc(update-num * sizeof(struct 
 drm_clip_rect),
DRM_MEM_BUFS);
   } else

Well, if I'm reading things right, when you pass zero cliprects, you'd
get either
previously != 0: drm_alloc(0, DRM_MEM_BUFS) = ZERO_SIZE_PTR;
previously == 0: whatever the previous value was (NULL or ZERO_SIZE_PTR)

However, given that I earlier today wrote a fix that tried to use
info-rects != NULL instead of info-num_rects != 0 before dereferening
the first rect, this seems like a sensible change to me.  Pushed to
drm-intel-next with a change of the commit message:

commit 8b4daf046d90f1b60c53f14ef89b6fd6d8b35f30
Author: Zhenyu Wang [EMAIL PROTECTED]
Date:   Fri Oct 17 13:15:48 2008 +0800

drm: Set cliprects to NULL when changing drawable to having 0 cliprects.

This avoids setting the cliprects pointer to a zero-sized allocation.

Signed-off-by: Zhenyu Wang [EMAIL PROTECTED]
Signed-off-by: Eric Anholt [EMAIL PROTECTED]

-- 
Eric Anholt
[EMAIL PROTECTED] [EMAIL PROTECTED]




signature.asc
Description: This is a digitally signed message part
-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel


[PATCH] drm: fix stalled cliprects when update drawable info with zero rects.

2008-10-16 Thread Zhenyu Wang
From 09a461ca6d05b0c6e82aeca158bad6549ba84904 Mon Sep 17 00:00:00 2001
From: Zhenyu Wang [EMAIL PROTECTED]
Date: Fri, 17 Oct 2008 11:20:14 +0800
Subject: [PATCH] drm: fix stalled cliprects when update drawable info with zero 
rects.

When passed in drawable's cliprect number as zero, we may
still alloc and leave a stalled cliprects. Fix by clean up
cliprects in that case.

Signed-off-by: Zhenyu Wang [EMAIL PROTECTED]
---
 drivers/gpu/drm/drm_drawable.c |4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/gpu/drm/drm_drawable.c b/drivers/gpu/drm/drm_drawable.c
index 1839c57..70b15d1 100644
--- a/drivers/gpu/drm/drm_drawable.c
+++ b/drivers/gpu/drm/drm_drawable.c
@@ -111,7 +111,9 @@ int drm_update_drawable_info(struct drm_device *dev, void 
*data, struct drm_file
 
switch (update-type) {
case DRM_DRAWABLE_CLIPRECTS:
-   if (update-num != info-num_rects) {
+   if (update-num == 0)
+   rects = NULL;
+   else if (update-num != info-num_rects) {
rects = drm_alloc(update-num * sizeof(struct 
drm_clip_rect),
 DRM_MEM_BUFS);
} else
-- 
1.5.6.5

-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827


signature.asc
Description: Digital signature
-
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK  win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100url=/--
___
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel