• Brad Volkin's avatar
    drm/i915: Implement command buffer parsing logic · 351e3db2
    Brad Volkin authored
    The command parser scans batch buffers submitted via execbuffer ioctls before
    the driver submits them to hardware. At a high level, it looks for several
    things:
    
    1) Commands which are explicitly defined as privileged or which should only be
       used by the kernel driver. The parser generally rejects such commands, with
       the provision that it may allow some from the drm master process.
    2) Commands which access registers. To support correct/enhanced userspace
       functionality, particularly certain OpenGL extensions, the parser provides a
       whitelist of registers which userspace may safely access (for both normal and
       drm master processes).
    3) Commands which access privileged memory (i.e. GGTT, HWS page, etc). The
       parser always rejects such commands.
    
    See the overview comment in the source for more details.
    
    This patch only implements the logic. Subsequent patches will build the tables
    that drive the parser.
    
    v2: Don't set the secure bit if the parser succeeds
    Fail harder during init
    Makefile cleanup
    Kerneldoc cleanup
    Clarify module param description
    Convert ints to bools in a few places
    Move client/subclient defs to i915_reg.h
    Remove the bits_count field
    
    OTC-Tracker: AXIA-4631
    Change-Id: I50b98c71c6655893291c78a2d1b8954577b37a30
    Signed-off-by: default avatarBrad Volkin <bradley.d.volkin@intel.com>
    Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
    [danvet: Appease checkpatch.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    351e3db2
intel_ringbuffer.c 57.5 KB