xref: /linux/drivers/gpu/drm/drm_ras_genl_family.c (revision 0fc8f6200d2313278fbf4539bbab74677c685531)
1 // SPDX-License-Identifier: MIT
2 /*
3  * Copyright © 2026 Intel Corporation
4  */
5 
6 #include <drm/drm_ras_genl_family.h>
7 #include "drm_ras_nl.h"
8 
9 /* Track family registration so the drm_exit can be called at any time */
10 static bool registered;
11 
12 /**
13  * drm_ras_genl_family_register() - Register drm-ras genl family
14  *
15  * Only to be called one at drm_drv_init()
16  */
17 int drm_ras_genl_family_register(void)
18 {
19 	int ret;
20 
21 	registered = false;
22 
23 	ret = genl_register_family(&drm_ras_nl_family);
24 	if (ret)
25 		return ret;
26 
27 	registered = true;
28 	return 0;
29 }
30 
31 /**
32  * drm_ras_genl_family_unregister() - Unregister drm-ras genl family
33  *
34  * To be called one at drm_drv_exit() at any moment, but only once.
35  */
36 void drm_ras_genl_family_unregister(void)
37 {
38 	if (registered) {
39 		genl_unregister_family(&drm_ras_nl_family);
40 		registered = false;
41 	}
42 }
43