|
@@ -314,8 +314,13 @@ static int hw_fence_gunyah_share_mem(struct hw_fence_driver_data *drv_data,
|
|
|
sgl->sgl_entries[0].ipa_base = drv_data->res.start;
|
|
|
sgl->sgl_entries[0].size = resource_size(&drv_data->res);
|
|
|
|
|
|
+#if (KERNEL_VERSION(6, 1, 0) <= LINUX_VERSION_CODE)
|
|
|
+ ret = ghd_rm_mem_share(GH_RM_MEM_TYPE_NORMAL, 0, drv_data->label,
|
|
|
+ acl, sgl, NULL, &drv_data->memparcel);
|
|
|
+#else
|
|
|
ret = gh_rm_mem_share(GH_RM_MEM_TYPE_NORMAL, 0, drv_data->label,
|
|
|
acl, sgl, NULL, &drv_data->memparcel);
|
|
|
+#endif
|
|
|
if (ret) {
|
|
|
HWFNC_ERR("%s: gh_rm_mem_share failed addr=%x size=%u err=%d\n",
|
|
|
__func__, drv_data->res.start, drv_data->size, ret);
|
|
@@ -350,11 +355,19 @@ static int hw_fence_rm_cb(struct notifier_block *nb, unsigned long cmd, void *da
|
|
|
vm_status_payload->vm_status != GH_RM_VM_STATUS_RESET)
|
|
|
goto end;
|
|
|
|
|
|
+#if (KERNEL_VERSION(6, 1, 0) <= LINUX_VERSION_CODE)
|
|
|
+ if (ghd_rm_get_vmid(drv_data->peer_name, &peer_vmid))
|
|
|
+ goto end;
|
|
|
+
|
|
|
+ if (ghd_rm_get_vmid(GH_PRIMARY_VM, &self_vmid))
|
|
|
+ goto end;
|
|
|
+#else
|
|
|
if (gh_rm_get_vmid(drv_data->peer_name, &peer_vmid))
|
|
|
goto end;
|
|
|
|
|
|
if (gh_rm_get_vmid(GH_PRIMARY_VM, &self_vmid))
|
|
|
goto end;
|
|
|
+#endif
|
|
|
|
|
|
if (peer_vmid != vm_status_payload->vmid)
|
|
|
goto end;
|