mirror-linux/include/uapi/drm
Daniele Ceraolo Spurio 41a97c4a12 drm/xe/pxp/uapi: Add API to mark a BO as using PXP
The driver needs to know if a BO is encrypted with PXP to enable the
display decryption at flip time.
Furthermore, we want to keep track of the status of the encryption and
reject any operation that involves a BO that is encrypted using an old
key. There are two points in time where such checks can kick in:

1 - at VM bind time, all operations except for unmapping will be
    rejected if the key used to encrypt the BO is no longer valid. This
    check is opt-in via a new VM_BIND flag, to avoid a scenario where a
    malicious app purposely shares an invalid BO with a non-PXP aware
    app (such as a compositor). If the VM_BIND was failed, the
    compositor would be unable to display anything at all. Allowing the
    bind to go through means that output still works, it just displays
    garbage data within the bounds of the illegal BO.

2 - at job submission time, if the queue is marked as using PXP, all
    objects bound to the VM will be checked and the submission will be
    rejected if any of them was encrypted with a key that is no longer
    valid.

Note that there is no risk of leaking the encrypted data if a user does
not opt-in to those checks; the only consequence is that the user will
not realize that the encryption key is changed and that the data is no
longer valid.

v2: Better commnnts and descriptions (John), rebase

v3: Properly return the result of key_assign up the stack, do not use
xe_bo in display headers (Jani)

v4: improve key_instance variable documentation (John)

Signed-off-by: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
Cc: Matthew Brost <matthew.brost@intel.com>
Cc: Thomas Hellström <thomas.hellstrom@linux.intel.com>
Cc: John Harrison <John.C.Harrison@Intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250129174140.948829-11-daniele.ceraolospurio@intel.com
2025-02-03 11:51:23 -08:00
..
amdgpu_drm.h drm-misc-next for 6.11: 2024-06-21 10:30:31 +10:00
amdxdna_accel.h accel/amdxdna: Remove DRM_AMDXDNA_HWCTX_CONFIG_NUM 2024-12-17 12:10:07 -06:00
armada_drm.h
drm.h drm: add DRM_SET_CLIENT_NAME ioctl 2024-10-08 10:00:30 +02:00
drm_fourcc.h drm/fourcc: add AMD_FMT_MOD_TILE_GFX9_4K_D_X 2024-11-11 12:22:58 -05:00
drm_mode.h drm: Add missing documentation for struct drm_plane_size_hint 2024-08-12 11:15:14 +02:00
drm_sarea.h
etnaviv_drm.h Revert "drm/etnaviv: Expose a few more chipspecs to userspace" 2024-04-25 16:56:20 +02:00
exynos_drm.h
habanalabs_accel.h accel/habanalabs/gaudi2: add signed dev info uAPI 2023-12-19 11:09:43 +02:00
i915_drm.h drm/i915: Support replaying GPU hangs with captured context image 2024-05-16 07:37:05 +00:00
ivpu_accel.h accel/ivpu: Remove copy engine support 2024-10-30 10:22:05 +01:00
lima_drm.h
msm_drm.h drm/msm: Expose uche trap base via uapi 2025-01-03 07:20:27 -08:00
nouveau_drm.h drm/nouveau: use tile_mode and pte_kind for VM_BIND bo allocations 2024-05-13 22:27:33 +02:00
omap_drm.h
panfrost_drm.h drm/panfrost: Add cycle counter job requirement 2024-09-02 10:13:38 +01:00
panthor_drm.h drm/panthor: Report innocent group kill 2024-12-17 10:56:12 +01:00
pvr_drm.h drm/imagination: Numerous documentation fixes. 2023-11-28 18:56:03 +01:00
qaic_accel.h accel/qaic: Fix typo for struct qaic_manage_trans_passthrough 2024-12-13 08:55:09 -07:00
qxl_drm.h
radeon_drm.h
tegra_drm.h drm/tegra: Add new UAPI to header 2021-08-10 14:48:17 +02:00
v3d_drm.h drm/v3d: Add DRM_IOCTL_V3D_PERFMON_SET_GLOBAL 2024-12-04 08:44:27 -03:00
vc4_drm.h
vgem_drm.h
virtgpu_drm.h drm/uapi: add explicit virtgpu context debug name 2023-11-11 21:31:00 +03:00
vmwgfx_drm.h drm/vmwgfx: Add SPDX header to vmwgfx_drm.h 2024-01-30 14:18:19 -05:00
xe_drm.h drm/xe/pxp/uapi: Add API to mark a BO as using PXP 2025-02-03 11:51:23 -08:00