[PATCH] drm/xe: Fix tile fini sequence

Lucas De Marchi lucas.demarchi at intel.com
Sat Aug 10 04:19:03 UTC 2024


On Fri, Aug 09, 2024 at 04:28:30PM GMT, Matthew Brost wrote:
>Only set tile->mmio.regs to NULL if not the root tile in tile_fini. The
>root tile mmio regs is setup ealier in MMIO init thus it should be set
>to NULL in mmio_fini.
>
>Fixes: dd08ebf6c352 ("drm/xe: Introduce a new DRM driver for Intel GPUs")
>Signed-off-by: Matthew Brost <matthew.brost at intel.com>

Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>

I think we eventually have to fix this split as this cross init/fini is
odd. But the fix here balances the init/fini and is a good one.

thanks
Lucas De Marchi

>---
> drivers/gpu/drm/xe/xe_mmio.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/gpu/drm/xe/xe_mmio.c b/drivers/gpu/drm/xe/xe_mmio.c
>index bdcc7282385c..f5bdb540e823 100644
>--- a/drivers/gpu/drm/xe/xe_mmio.c
>+++ b/drivers/gpu/drm/xe/xe_mmio.c
>@@ -30,7 +30,8 @@ static void tiles_fini(void *arg)
> 	int id;
>
> 	for_each_tile(tile, xe, id)
>-		tile->mmio.regs = NULL;
>+		if (tile != xe_device_get_root_tile(xe))
>+			tile->mmio.regs = NULL;
> }
>
> /*
>@@ -146,9 +147,11 @@ int xe_mmio_probe_tiles(struct xe_device *xe)
> static void mmio_fini(void *arg)
> {
> 	struct xe_device *xe = arg;
>+	struct xe_tile *root_tile = xe_device_get_root_tile(xe);
>
> 	pci_iounmap(to_pci_dev(xe->drm.dev), xe->mmio.regs);
> 	xe->mmio.regs = NULL;
>+	root_tile->mmio.regs = NULL;
> }
>
> int xe_mmio_init(struct xe_device *xe)
>-- 
>2.34.1
>


More information about the Intel-xe mailing list