• Chris Wilson's avatar
    drm/i915: Fix RPS pointer passed from wait_ioctl to i915_wait_request · b6aa0873
    Chris Wilson authored
    In commit 2e1b8730 [v4.2]
    Author: Chris Wilson <chris@chris-wilson.co.uk>
    Date:   Mon Apr 27 13:41:22 2015 +0100
    
        drm/i915: Convert RPS tracking to a intel_rps_client struct
    
    we converted the __i915_wait_request() to take a new intel_rps_client
    struct (rather than having to pass fake drm_i915_file_private structs).
    However, due to use of passing a void pointer, I didn't spot one
    callsite in wait-ioctl was passing the wrong pointer.
    
    Fwiw, the impact of this bug is zero. Along the rps path, we always
    first call list_empty(rps) which when we pass in the wrong pointer
    always evaluates to false and we return early and never chase the
    invalid pointers.
    
    The user visible impact is then wait-ioctl doesn't get the same
    waitboosting as the other interfaces (set-domain, throttle), which is a
    performance concern for the *very* few users of the wait interface.
    There is also a libdrm_intel patch to use the wait-ioctl for
    drm_intel_bo_wait_rendering() if anyone feels inclined to review
    libdrm_intel patches.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    [danvet: Add Chris' explanation for why the impact of this is pretty
    close to 0.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    b6aa0873
i915_gem.c 133 KB