summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZou Nan hai <nanhai.zou@intel.com>2008-01-15 09:19:02 +0800
committerZou Nan hai <nanhai.zou@intel.com>2008-01-15 09:19:02 +0800
commit806c1929dcd344f6eab3133584a9c4ce9f3f47bc (patch)
tree217db4d5a0d7648d726b70ad7e156621fc31715f
parent62df4f0a48776e55443d7f61a41e1ed0fb77b6ed (diff)
this is to fix a deadloop in drm hang system issue.
(1 << bits) is an undefined value when bits == 32. gcc may generate 1 with this expression which will lead to an infinite retry loop in drm_ht_just_insert_please. Because of the different implement of hash_long, this issue is more frequenly see on 64 bit system
-rw-r--r--linux-core/drm_object.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/linux-core/drm_object.c b/linux-core/drm_object.c
index 5ade6178..7d2e3a2b 100644
--- a/linux-core/drm_object.c
+++ b/linux-core/drm_object.c
@@ -44,7 +44,7 @@ int drm_add_user_object(struct drm_file *priv, struct drm_user_object *item,
item->owner = priv;
ret = drm_ht_just_insert_please(&dev->object_hash, &item->hash,
- (unsigned long)item, 32, 0, 0);
+ (unsigned long)item, 31, 0, 0);
if (ret)
return ret;