diff mbox series

[v2] drm: register more drm device nodes

Message ID 20240829213730.308885-1-James.Zhu@amd.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm: register more drm device nodes | expand

Commit Message

James Zhu Aug. 29, 2024, 9:37 p.m. UTC
Since the default number 256 can't handle large modern systems
with large numbers of GPUs, specify a more reasonable default.

-v2: update drm_core_exit to unregister more drm device nodes

Signed-off-by: James Zhu <James.Zhu@amd.com>
---
 drivers/gpu/drm/drm_drv.c | 4 ++--
 include/drm/drm_drv.h     | 2 ++
 2 files changed, 4 insertions(+), 2 deletions(-)

Comments

Daniel Vetter Sept. 2, 2024, 10:40 a.m. UTC | #1
On Thu, Aug 29, 2024 at 05:37:30PM -0400, James Zhu wrote:
> Since the default number 256 can't handle large modern systems
> with large numbers of GPUs, specify a more reasonable default.
> 
> -v2: update drm_core_exit to unregister more drm device nodes
> 
> Signed-off-by: James Zhu <James.Zhu@amd.com>

We've merged a more complete solution meanwhile, I think this should also
cover your case:

https://lore.kernel.org/dri-devel/b313a6f7-a857-4ec9-bc98-0480cd64bc20@amd.com/

Cheers, Sima

> ---
>  drivers/gpu/drm/drm_drv.c | 4 ++--
>  include/drm/drm_drv.h     | 2 ++
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> index 243cacb3575c..bfc6c18a7a92 100644
> --- a/drivers/gpu/drm/drm_drv.c
> +++ b/drivers/gpu/drm/drm_drv.c
> @@ -1063,7 +1063,7 @@ static void drm_core_exit(void)
>  {
>  	drm_privacy_screen_lookup_exit();
>  	accel_core_exit();
> -	unregister_chrdev(DRM_MAJOR, "drm");
> +	__unregister_chrdev(DRM_MAJOR, 0, DRM_CHRDEV_MAX, "drm");
>  	debugfs_remove(drm_debugfs_root);
>  	drm_sysfs_destroy();
>  	idr_destroy(&drm_minors_idr);
> @@ -1086,7 +1086,7 @@ static int __init drm_core_init(void)
>  
>  	drm_debugfs_root = debugfs_create_dir("dri", NULL);
>  
> -	ret = register_chrdev(DRM_MAJOR, "drm", &drm_stub_fops);
> +	ret = __register_chrdev(DRM_MAJOR, 0, DRM_CHRDEV_MAX, "drm", &drm_stub_fops);
>  	if (ret < 0)
>  		goto error;
>  
> diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
> index 8878260d7529..8a2da92f02b7 100644
> --- a/include/drm/drm_drv.h
> +++ b/include/drm/drm_drv.h
> @@ -45,6 +45,8 @@ struct drm_mode_create_dumb;
>  struct drm_printer;
>  struct sg_table;
>  
> +#define DRM_CHRDEV_MAX                1024
> +
>  /**
>   * enum drm_driver_feature - feature flags
>   *
> -- 
> 2.34.1
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index 243cacb3575c..bfc6c18a7a92 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -1063,7 +1063,7 @@  static void drm_core_exit(void)
 {
 	drm_privacy_screen_lookup_exit();
 	accel_core_exit();
-	unregister_chrdev(DRM_MAJOR, "drm");
+	__unregister_chrdev(DRM_MAJOR, 0, DRM_CHRDEV_MAX, "drm");
 	debugfs_remove(drm_debugfs_root);
 	drm_sysfs_destroy();
 	idr_destroy(&drm_minors_idr);
@@ -1086,7 +1086,7 @@  static int __init drm_core_init(void)
 
 	drm_debugfs_root = debugfs_create_dir("dri", NULL);
 
-	ret = register_chrdev(DRM_MAJOR, "drm", &drm_stub_fops);
+	ret = __register_chrdev(DRM_MAJOR, 0, DRM_CHRDEV_MAX, "drm", &drm_stub_fops);
 	if (ret < 0)
 		goto error;
 
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 8878260d7529..8a2da92f02b7 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -45,6 +45,8 @@  struct drm_mode_create_dumb;
 struct drm_printer;
 struct sg_table;
 
+#define DRM_CHRDEV_MAX                1024
+
 /**
  * enum drm_driver_feature - feature flags
  *