• Jon Bloomfield's avatar
    drm/i915: Support ro ppgtt mapped cmdparser shadow buffers · 7ce726b6
    Jon Bloomfield authored
    commit 4f7af194 upstream.
    
    For Gen7, the original cmdparser motive was to permit limited
    use of register read/write instructions in unprivileged BB's.
    This worked by copying the user supplied bb to a kmd owned
    bb, and running it in secure mode, from the ggtt, only if
    the scanner finds no unsafe commands or registers.
    
    For Gen8+ we can't use this same technique because running bb's
    from the ggtt also disables access to ppgtt space. But we also
    do not actually require 'secure' execution since we are only
    trying to reduce the available command/register set. Instead we
    will copy the user buffer to a kmd owned read-only bb in ppgtt,
    and run in the usual non-secure mode.
    
    Note that ro pages are only supported by ppgtt (not ggtt), but
    luckily that's exactly what we need.
    
    Add the required paths to map the shadow buffer to ppgtt ro for Gen8+
    
    v2: IS_GEN7/IS_GEN (Mika)
    v3: rebase
    v4: rebase
    v5: rebase
    Signed-off-by: default avatarJon Bloomfield <jon.bloomfield@intel.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Takashi Iwai <tiwai@suse.de>
    Cc: Tyler Hicks <tyhicks@canonical.com>
    Signed-off-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
    Reviewed-by: default avatarChris Wilson <chris.p.wilson@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    7ce726b6
i915_gem.c 165 KB