diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
index 83d7d14..2889528 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
@@ -274,22 +274,18 @@
 	int flags;
 } drm_ioctl_desc_t;
 
-typedef struct drm_devstate {
-	pid_t owner;			/**< X server pid holding x_lock */
-} drm_devstate_t;
-
-typedef struct drm_magic_entry {
+struct drm_magic_entry {
 	struct list_head head;
 	drm_hash_item_t hash_item;
 	struct drm_file *priv;
 	struct drm_magic_entry *next;
-} drm_magic_entry_t;
+};
 
-typedef struct drm_vma_entry {
+struct drm_vma_entry {
 	struct list_head head;
 	struct vm_area_struct *vma;
 	pid_t pid;
-} drm_vma_entry_t;
+};
 
 /**
  * DMA buffer.
diff --git a/drivers/char/drm/drm_auth.c b/drivers/char/drm/drm_auth.c
index 905b8bd..52c6354 100644
--- a/drivers/char/drm/drm_auth.c
+++ b/drivers/char/drm/drm_auth.c
@@ -48,12 +48,12 @@
 static struct drm_file *drm_find_file(struct drm_device * dev, drm_magic_t magic)
 {
 	struct drm_file *retval = NULL;
-	drm_magic_entry_t *pt;
+	struct drm_magic_entry *pt;
 	drm_hash_item_t *hash;
 
 	mutex_lock(&dev->struct_mutex);
 	if (!drm_ht_find_item(&dev->magiclist, (unsigned long)magic, &hash)) {
-		pt = drm_hash_entry(hash, drm_magic_entry_t, hash_item);
+		pt = drm_hash_entry(hash, struct drm_magic_entry, hash_item);
 		retval = pt->priv;
 	}
 	mutex_unlock(&dev->struct_mutex);
@@ -74,7 +74,7 @@
 static int drm_add_magic(struct drm_device * dev, struct drm_file * priv,
 			 drm_magic_t magic)
 {
-	drm_magic_entry_t *entry;
+	struct drm_magic_entry *entry;
 
 	DRM_DEBUG("%d\n", magic);
 
@@ -104,7 +104,7 @@
  */
 static int drm_remove_magic(struct drm_device * dev, drm_magic_t magic)
 {
-	drm_magic_entry_t *pt;
+	struct drm_magic_entry *pt;
 	drm_hash_item_t *hash;
 
 	DRM_DEBUG("%d\n", magic);
@@ -114,7 +114,7 @@
 		mutex_unlock(&dev->struct_mutex);
 		return -EINVAL;
 	}
-	pt = drm_hash_entry(hash, drm_magic_entry_t, hash_item);
+	pt = drm_hash_entry(hash, struct drm_magic_entry, hash_item);
 	drm_ht_remove_item(&dev->magiclist, hash);
 	list_del(&pt->head);
 	mutex_unlock(&dev->struct_mutex);
diff --git a/drivers/char/drm/drm_drv.c b/drivers/char/drm/drm_drv.c
index 6c7aae6..56594fd 100644
--- a/drivers/char/drm/drm_drv.c
+++ b/drivers/char/drm/drm_drv.c
@@ -131,9 +131,9 @@
  */
 int drm_lastclose(struct drm_device * dev)
 {
-	drm_magic_entry_t *pt, *next;
+	struct drm_magic_entry *pt, *next;
 	drm_map_list_t *r_list, *list_t;
-	drm_vma_entry_t *vma, *vma_temp;
+	struct drm_vma_entry *vma, *vma_temp;
 	int i;
 
 	DRM_DEBUG("\n");
diff --git a/drivers/char/drm/drm_proc.c b/drivers/char/drm/drm_proc.c
index 3832874..4e234a2 100644
--- a/drivers/char/drm/drm_proc.c
+++ b/drivers/char/drm/drm_proc.c
@@ -478,7 +478,7 @@
 {
 	struct drm_device *dev = (struct drm_device *) data;
 	int len = 0;
-	drm_vma_entry_t *pt;
+	struct drm_vma_entry *pt;
 	struct vm_area_struct *vma;
 #if defined(__i386__)
 	unsigned int pgprot;
diff --git a/drivers/char/drm/drm_vm.c b/drivers/char/drm/drm_vm.c
index f90ef78..25f3bd1 100644
--- a/drivers/char/drm/drm_vm.c
+++ b/drivers/char/drm/drm_vm.c
@@ -196,7 +196,7 @@
 {
 	struct drm_file *priv = vma->vm_file->private_data;
 	struct drm_device *dev = priv->head->dev;
-	drm_vma_entry_t *pt, *temp;
+	struct drm_vma_entry *pt, *temp;
 	struct drm_map *map;
 	drm_map_list_t *r_list;
 	int found_maps = 0;
@@ -407,7 +407,7 @@
 {
 	struct drm_file *priv = vma->vm_file->private_data;
 	struct drm_device *dev = priv->head->dev;
-	drm_vma_entry_t *vma_entry;
+	struct drm_vma_entry *vma_entry;
 
 	DRM_DEBUG("0x%08lx,0x%08lx\n",
 		  vma->vm_start, vma->vm_end - vma->vm_start);
@@ -443,7 +443,7 @@
 {
 	struct drm_file *priv = vma->vm_file->private_data;
 	struct drm_device *dev = priv->head->dev;
-	drm_vma_entry_t *pt, *temp;
+	struct drm_vma_entry *pt, *temp;
 
 	DRM_DEBUG("0x%08lx,0x%08lx\n",
 		  vma->vm_start, vma->vm_end - vma->vm_start);
