diff options
| author | Dave Airlie <airlied@redhat.com> | 2008-11-27 22:43:47 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@linux.ie> | 2008-12-29 02:47:21 -0500 |
| commit | e7f7ab45ebcb54fd5f814ea15ea079e079662f67 (patch) | |
| tree | 53e8206501c0b7a00831ea084b52664f7899d1c0 /include/drm | |
| parent | 4a6908a3a050aacc9c3a2f36b276b46c0629ad91 (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.h | 3 |
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 | */ |
| 761 | struct drm_device { | 763 | struct 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 */ |
