Commit a0b834c8 authored by Matthew Auld's avatar Matthew Auld

drm/xe/mmio: move mmio_fini over to devm

Not valid to touch mmio once the device is removed, so make sure we
unmap on removal and not just when driver instance goes away. Also set
the mmio pointers to NULL to hopefully catch such issues more easily.
Signed-off-by: default avatarMatthew Auld <matthew.auld@intel.com>
Cc: Andrzej Hajda <andrzej.hajda@intel.com>
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Reviewed-by: default avatarAndrzej Hajda <andrzej.hajda@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240522102143.128069-32-matthew.auld@intel.com
parent cd506a33
......@@ -390,13 +390,16 @@ void xe_mmio_probe_tiles(struct xe_device *xe)
}
}
static void mmio_fini(struct drm_device *drm, void *arg)
static void mmio_fini(void *arg)
{
struct xe_device *xe = arg;
pci_iounmap(to_pci_dev(xe->drm.dev), xe->mmio.regs);
if (xe->mem.vram.mapping)
iounmap(xe->mem.vram.mapping);
xe->mem.vram.mapping = NULL;
xe->mmio.regs = NULL;
}
int xe_mmio_init(struct xe_device *xe)
......@@ -421,7 +424,7 @@ int xe_mmio_init(struct xe_device *xe)
root_tile->mmio.size = SZ_16M;
root_tile->mmio.regs = xe->mmio.regs;
return drmm_add_action_or_reset(&xe->drm, mmio_fini, xe);
return devm_add_action_or_reset(xe->drm.dev, mmio_fini, xe);
}
u8 xe_mmio_read8(struct xe_gt *gt, struct xe_reg reg)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment