Skip to content

Commit 80ff56c

Browse files
author
Iouri Tarassov
committed
drivers: hv: dxgkrnl: Seal the shared resource object when dxgk_share_objectsis called.
Signed-off-by: Iouri Tarassov <iourit@linux.microsoft.com>
1 parent 97febe8 commit 80ff56c

1 file changed

Lines changed: 28 additions & 8 deletions

File tree

drivers/hv/dxgkrnl/ioctl.c

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2767,18 +2767,38 @@ dxgk_share_objects(struct dxgprocess *process, void *__user inargs)
27672767
case HMGRENTRY_TYPE_DXGSYNCOBJECT:
27682768
ret = get_object_fd(DXG_SHARED_SYNCOBJECT, shared_syncobj,
27692769
&object_fd);
2770-
if (ret >= 0)
2771-
ret =
2772-
dxgsharedsyncobj_get_host_nt_handle(shared_syncobj,
2773-
process,
2774-
handles[0]);
2770+
if (ret < 0) {
2771+
pr_err("%s get_object_fd failed for sync object",
2772+
__func__);
2773+
goto cleanup;
2774+
}
2775+
ret = dxgsharedsyncobj_get_host_nt_handle(shared_syncobj,
2776+
process,
2777+
handles[0]);
2778+
if (ret < 0) {
2779+
pr_err("%s get_host_nt_handle failed", __func__);
2780+
goto cleanup;
2781+
}
27752782
break;
27762783
case HMGRENTRY_TYPE_DXGRESOURCE:
27772784
ret = get_object_fd(DXG_SHARED_RESOURCE, shared_resource,
27782785
&object_fd);
2779-
if (ret >= 0)
2780-
ret = dxgsharedresource_get_host_nt_handle(
2781-
shared_resource, process, handles[0]);
2786+
if (ret < 0) {
2787+
pr_err("%s get_object_fd failed for resource",
2788+
__func__);
2789+
goto cleanup;
2790+
}
2791+
ret = dxgsharedresource_get_host_nt_handle(shared_resource,
2792+
process, handles[0]);
2793+
if (ret < 0) {
2794+
pr_err("%s get_host_res_nt_handle failed", __func__);
2795+
goto cleanup;
2796+
}
2797+
ret = dxgsharedresource_seal(shared_resource);
2798+
if (ret < 0) {
2799+
pr_err("%s dxgsharedresource_seal failed", __func__);
2800+
goto cleanup;
2801+
}
27822802
break;
27832803
default:
27842804
ret = -EINVAL;

0 commit comments

Comments
 (0)