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 |
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 --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 *
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(-)