Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755769AbdGKKCz (ORCPT ); Tue, 11 Jul 2017 06:02:55 -0400 Received: from mail-it0-f67.google.com ([209.85.214.67]:34682 "EHLO mail-it0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753081AbdGKKCy (ORCPT ); Tue, 11 Jul 2017 06:02:54 -0400 MIME-Version: 1.0 X-Originating-IP: [2a02:168:5640:0:960b:2678:e223:c1c6] In-Reply-To: <20170711094102.GB14041@kroah.com> References: <20170708214352.GA27205@gmail.com> <20170710065246.rn4o3bjje37bktww@phenom.ffwll.local> <20170710071453.GA16847@gmail.com> <20170711094102.GB14041@kroah.com> From: Daniel Vetter Date: Tue, 11 Jul 2017 12:02:52 +0200 X-Google-Sender-Auth: ZXRiTU3IS--_ZWAmb6GHI90jajw Message-ID: Subject: Re: [PATCH] drm: inhibit drm drivers register to uninitialized drm core To: Greg Kroah-Hartman Cc: Alexandru Moise <00moses.alexander00@gmail.com>, Rusty Russell , Jessica Yu , Linux Kernel Mailing List , Daniel Vetter , dri-devel , Dave Airlie , Sean Paul , "Nikula, Jani" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1923 Lines: 42 On Tue, Jul 11, 2017 at 11:41 AM, Greg Kroah-Hartman wrote: > 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@gmail.com> 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... Well there's so much almost-magic helper/support code that very often just asking the right people gives me the answer. Sounds like this is a case where we haven't yet invented that magic, and I don't have a bright idea either. I'll Apply Alex' patch. Thanks, Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch