• Dave Airlie's avatar
    drm/sysfs: sort out minor and connector device object lifetimes. · 5bdebb18
    Dave Airlie authored
    So drm was abusing device lifetimes, by having embedded device structures
    in the minor and connector it meant that the lifetime of the internal drm
    objects (drm_minor and drm_connector) were tied to the lifetime of the device
    files in sysfs, so if something kept those files opened the current code
    would kfree the objects and things would go downhill from there.
    
    Now in reality there is no need for these lifetimes to be so intertwined,
    especailly with hotplugging of devices where we wish to remove the sysfs
    and userspace facing pieces before we can unwind the internal objects due
    to open userspace files or mmaps, so split the objects out so the struct
    device is no longer embedded and do what fbdev does and just allocate
    and remove the sysfs inodes separately.
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    5bdebb18
radeon_legacy_encoders.c 55.6 KB