[PATCH v2 03/10] drm/xe/vsec: Protect against missing config
"Michael J. Ruhl" <[email protected]>
| Newsgroups | org.kernel.vger.platform-driver-x86,org.freedesktop.lists.intel-xe |
|---|---|
| Message-ID | <[email protected]> |
Some init paths (VF) will not provide soc-remapper callbacks. BMG PMT access requires the soc-remapper. If the soc-remapper is not configured, do not register for PMT, and block read access. Signed-off-by: Michael J. Ruhl <[email protected]> --- drivers/gpu/drm/xe/xe_vsec.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/xe/xe_vsec.c b/drivers/gpu/drm/xe/xe_vsec.c index a9baf0bfe572..bd83a33aef6c 100644 --- a/drivers/gpu/drm/xe/xe_vsec.c +++ b/drivers/gpu/drm/xe/xe_vsec.c @@ -149,6 +149,9 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse u32 offset; int ret; + if (!xe->soc_remapper.set_telem_region) + return -ENODEV; + ret = xe_guid_decode(guid, &mem_region, &offset); if (ret) return ret; @@ -157,9 +160,6 @@ int xe_pmt_telem_read(struct device *dev, u32 guid, u64 *data, loff_t user_offse guard(mutex)(&xe->pmt.lock); - if (!xe->soc_remapper.set_telem_region) - return -ENODEV; - /* indicate that we are not at an appropriate power level */ if (!xe_pm_runtime_get_if_active(xe)) return -ENODATA; @@ -210,6 +210,8 @@ void xe_vsec_init(struct xe_device *xe) switch (platform) { case XE_VSEC_BMG: + if (!xe->soc_remapper.set_telem_region) + return; info->priv_data = &xe_pmt_cb; break; default: -- 2.43.0