Re: [PATCH] drm: inhibit drm drivers register to uninitialized drm core

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jul 10, 2017 at 08:00:37PM +0200, Daniel Vetter wrote:
> On Mon, Jul 10, 2017 at 9:14 AM, Alexandru Moise
> <00moses.alexander00@xxxxxxxxx> wrote:
> > On Mon, Jul 10, 2017 at 08:52:46AM +0200, Daniel Vetter wrote:
> >> On Sat, Jul 08, 2017 at 11:43:52PM +0200, Alexandru Moise wrote:
> >> > If the DRM core fails to init for whatever reason, ensure that
> >> > no driver ever calls drm_dev_register().
> >> >
> >> > This is best done at drm_dev_init() as it covers drivers that call
> >> > drm_dev_alloc() as well as drivers that prefer to embed struct
> >> > drm_device into their own device struct and call drm_dev_init()
> >> > themselves.
> >> >
> >> > In my case I had so many dynamic device majors used that the major
> >> > number for DRM (226) was stolen, causing DRM core init to fail after
> >> > failing to register a chrdev, and ultimately calling debugfs_remove()
> >> > on drm_debugfs_root in drm_core_exit().

Note, there are patches in my "to-apply" queue to prevent that from
happening, that should show up in 4.14-rc1.  So that shouldn't be an
issue in the future.

> I feared that would be the answer :-/ Still feels funny that everyone
> will need to hand-roll this, or does everyone simply assume that their
> subsystem's module_init never fails?

How would we not "hand-roll" this?  Every subsystem works a bit
differently.  But if you can think of a way to make this generic, that
would be great...

thanks,

greg k-h
_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel




[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux