Browse Source

drm/nouveau/core: don't leak oclass type bits to user

Fixes not being able to init fence subsystem when multiple boards are
present.

Reported-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Ben Skeggs 11 years ago
parent
commit
2acc868319
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/gpu/drm/nouveau/core/core/parent.c

+ 2 - 2
drivers/gpu/drm/nouveau/core/core/parent.c

@@ -86,7 +86,7 @@ nouveau_parent_lclass(struct nouveau_object *parent, u32 *lclass, int size)
 	sclass = nv_parent(parent)->sclass;
 	sclass = nv_parent(parent)->sclass;
 	while (sclass) {
 	while (sclass) {
 		if (++nr < size)
 		if (++nr < size)
-			lclass[nr] = sclass->oclass->handle;
+			lclass[nr] = sclass->oclass->handle & 0xffff;
 		sclass = sclass->sclass;
 		sclass = sclass->sclass;
 	}
 	}
 
 
@@ -96,7 +96,7 @@ nouveau_parent_lclass(struct nouveau_object *parent, u32 *lclass, int size)
 		if (engine && (oclass = engine->sclass)) {
 		if (engine && (oclass = engine->sclass)) {
 			while (oclass->ofuncs) {
 			while (oclass->ofuncs) {
 				if (++nr < size)
 				if (++nr < size)
-					lclass[nr] = oclass->handle;
+					lclass[nr] = oclass->handle & 0xffff;
 				oclass++;
 				oclass++;
 			}
 			}
 		}
 		}