• Ben Widawsky's avatar
    drm: pre allocate node for create_block · b3a070cc
    Ben Widawsky authored
    For an upcoming patch where we introduce the i915 VMA, it's ideal to
    have the drm_mm_node as part of the VMA struct (ie. it's pre-allocated).
    Part of the conversion to VMAs is to kill off obj->gtt_space. Doing this
    will break a bunch of code, but amongst them are 2 callers of
    drm_mm_create_block(), both related to stolen memory.
    
    It also allows us to embed the drm_mm_node into the object currently
    which provides a nice transition over to the new code.
    
    v2: Reordered to do before ripping out obj->gtt_offset.
    Some minor cleanups made available because of reordering.
    
    v3: s/continue/break on failed stolen node allocation (David)
    Set obj->gtt_space on failed node allocation (David)
    Only unref stolen (fix double free) on failed create_stolen (David)
    Free node, and NULL it in failed create_stolen (David)
    Add back accidentally removed newline (David)
    
    CC: <dri-devel@lists.freedesktop.org>
    Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: default avatarBen Widawsky <ben@bwidawsk.net>
    Acked-by: default avatarDavid Airlie <airlied@linux.ie>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b3a070cc
drm_mm.c 20.6 KB