aboutsummaryrefslogtreecommitdiffstats
path: root/include/drm
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-11-27 22:43:47 -0500
committerDave Airlie <airlied@linux.ie>2008-12-29 02:47:21 -0500
commite7f7ab45ebcb54fd5f814ea15ea079e079662f67 (patch)
tree53e8206501c0b7a00831ea084b52664f7899d1c0 /include/drm
parent4a6908a3a050aacc9c3a2f36b276b46c0629ad91 (diff)
drm: cleanup exit path for module unload
The current sub-module unload exit path is a mess, it tries to abuse the idr. Just keep a list of devices per driver struct and free them in-order on rmmod. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'include/drm')
-rw-r--r--include/drm/drmP.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index d5e8e5c89548..08b8539e7b3c 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -737,6 +737,8 @@ struct drm_driver {
737 int num_ioctls; 737 int num_ioctls;
738 struct file_operations fops; 738 struct file_operations fops;
739 struct pci_driver pci_driver; 739 struct pci_driver pci_driver;
740 /* List of devices hanging off this driver */
741 struct list_head device_list;
740}; 742};
741 743
742#define DRM_MINOR_UNASSIGNED 0 744#define DRM_MINOR_UNASSIGNED 0
@@ -759,6 +761,7 @@ struct drm_minor {
759 * may contain multiple heads. 761 * may contain multiple heads.
760 */ 762 */
761struct drm_device { 763struct drm_device {
764 struct list_head driver_item; /**< list of devices per driver */
762 char *unique; /**< Unique identifier: e.g., busid */ 765 char *unique; /**< Unique identifier: e.g., busid */
763 int unique_len; /**< Length of unique field */ 766 int unique_len; /**< Length of unique field */
764 char *devname; /**< For /proc/interrupts */ 767 char *devname; /**< For /proc/interrupts */