drm/sched: move fence slab handling to module init/exit

This is the only part of the scheduler which must not be called from
different drivers. Move it to module init/exit so it is done a single
time when loading the scheduler.

Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cette révision appartient à :
Lucas Stach
2017-12-06 17:49:40 +01:00
révisé par Alex Deucher
Parent 1b1f42d8fd
révision 4983e48c85
3 fichiers modifiés avec 8 ajouts et 15 suppressions

Voir le fichier

@@ -29,7 +29,7 @@
static struct kmem_cache *sched_fence_slab;
int drm_sched_fence_slab_init(void)
static int __init drm_sched_fence_slab_init(void)
{
sched_fence_slab = kmem_cache_create(
"drm_sched_fence", sizeof(struct drm_sched_fence), 0,
@@ -39,14 +39,12 @@ int drm_sched_fence_slab_init(void)
return 0;
}
EXPORT_SYMBOL_GPL(drm_sched_fence_slab_init);
void drm_sched_fence_slab_fini(void)
static void __exit drm_sched_fence_slab_fini(void)
{
rcu_barrier();
kmem_cache_destroy(sched_fence_slab);
}
EXPORT_SYMBOL_GPL(drm_sched_fence_slab_fini);
void drm_sched_fence_scheduled(struct drm_sched_fence *fence)
{
@@ -185,3 +183,9 @@ struct drm_sched_fence *drm_sched_fence_create(struct drm_sched_entity *entity,
return fence;
}
module_init(drm_sched_fence_slab_init);
module_exit(drm_sched_fence_slab_fini);
MODULE_DESCRIPTION("DRM GPU scheduler");
MODULE_LICENSE("GPL and additional rights");