• Daniele Ceraolo Spurio's avatar
    drm/i915/gsc: flush the GSC worker before wedging on unload · b09f9670
    Daniele Ceraolo Spurio authored
    If we unload the driver and wedge before the GSC worker is complete,
    the worker will hit an error on its submission to the GSC engine and
    then exit. This is hard to hit for a user, but it is reproducible
    with skipping selftests. The error is handled gracefully by the
    worker, so there are no functional issues, but we still end up with
    an error message in dmesg, which is something we want to avoid as
    this is a supported scenario. We could modify the worker to better
    handle a wedging occurring during its execution, but that gets
    complicated for a couple of reasons:
    - We do want the error on runtime wedging, because there are
      implications for subsystems outside of GT (i.e., PXP, HDCP), it's
      only the error on driver unload that we want to silence.
    - The worker is responsible for multiple submissions (GSC FW load,
      HuC auth, SW proxy), so all of those will have to be adapted to
      handle the wedged_on_fini scenario.
    Therefore, it's much simpler to just wait for the worker to be done
    before wedging on driver removal, also considering that the worker
    will likely already be idle in the great majority of non-selftest
    scenarios.
    Signed-off-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
    Cc: Alan Previn <alan.previn.teres.alexis@intel.com>
    Reviewed-by: default avatarAlan Previn <alan.previn.teres.alexis@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230223172120.3304293-2-daniele.ceraolospurio@intel.com
    b09f9670
intel_uc.c 18.3 KB