• Ben Hutchings's avatar
    drm/i915/cmdparser: Fix jump whitelist clearing · ea0b163b
    Ben Hutchings authored
    When a jump_whitelist bitmap is reused, it needs to be cleared.
    Currently this is done with memset() and the size calculation assumes
    bitmaps are made of 32-bit words, not longs.  So on 64-bit
    architectures, only the first half of the bitmap is cleared.
    
    If some whitelist bits are carried over between successive batches
    submitted on the same context, this will presumably allow embedding
    the rogue instructions that we're trying to reject.
    
    Use bitmap_zero() instead, which gets the calculation right.
    
    Fixes: f8c08d8f ("drm/i915/cmdparser: Add support for backward jumps")
    Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
    Signed-off-by: default avatarJon Bloomfield <jon.bloomfield@intel.com>
    ea0b163b
i915_cmd_parser.c 47.3 KB