• Daniel Vetter's avatar
    drm/i915: Use drmm_add_final_kfree · 7fb81e9d
    Daniel Vetter authored
    With this we can drop the final kfree from the release function.
    
    The mock device in the selftests needed it's pci_device split
    up from the drm_device. In the future we could simplify this again
    by allocating the pci_device as a managed allocation too.
    
    v2: I overlooked that i915_driver_destroy is also called in the
    unwind code of the error path. There we need a drm_dev_put.
    Similar for the mock object.
    
    Now the problem with that is that the drm_driver->release callbacks
    for both the real driver and the mock one assume everything has been
    set up. Hence going through that path for a partially set up driver
    will result in issues. Quickest fix is to disable the ->release() hook
    until the driver is fully initialized, and keep the onion unwinding.
    Long term would be cleanest to move everything over to drmm_ release
    actions, but that's a lot of work for a big driver like i915. Plus
    more core work needed first anyway.
    
    v3: Fix i915_drm pointer wrangling in mock_gem_device. Also switch
    over to start using drm_dev_put() to clean up even on the error path.
    Aside I think the current error path is leaking the allocation.
    
    v4: more fixes for intel-gfx-ci, some if it damage from v3 :-/
    Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Cc: Jani Nikula <jani.nikula@linux.intel.com>
    Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Matthew Auld <matthew.auld@intel.com>
    Cc: Andi Shyti <andi.shyti@intel.com>
    Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
    Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Abdiel Janulgue <abdiel.janulgue@linux.intel.com>
    Cc: intel-gfx@lists.freedesktop.org
    Link: https://patchwork.freedesktop.org/patch/msgid/20200323144950.3018436-9-daniel.vetter@ffwll.ch
    7fb81e9d
i915_drv.c 51.6 KB