On Mon, Jul 19, 2021 at 3:35 AM Daniel Vetter <daniel.vetter@xxxxxxxx> wrote: > > Jason is trying to sort out the unwinding in i915_init and i915_exit, > while reviewing those patches I noticed that we also have the > nomodeset handling now in the middle of things. > > Pull that out for simplisity in unwinding - if you run selftest with > nomodeset you get nothing, *shrug*. > > Cc: Jason Ekstrand <jason@xxxxxxxxxxxxxx> > Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_pci.c | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_pci.c b/drivers/gpu/drm/i915/i915_pci.c > index 67696d752271..6fe709ac1b4b 100644 > --- a/drivers/gpu/drm/i915/i915_pci.c > +++ b/drivers/gpu/drm/i915/i915_pci.c > @@ -1199,14 +1199,6 @@ static int __init i915_init(void) > bool use_kms = true; > int err; > > - err = i915_globals_init(); > - if (err) > - return err; > - > - err = i915_mock_selftests(); > - if (err) > - return err > 0 ? 0 : err; > - > /* > * Enable KMS by default, unless explicitly overriden by > * either the i915.modeset prarameter or by the > @@ -1225,6 +1217,14 @@ static int __init i915_init(void) > return 0; > } > > + err = i915_globals_init(); > + if (err) > + return err; > + > + err = i915_mock_selftests(); > + if (err) > + return err > 0 ? 0 : err; > + Annoyingly, this actually makes i915_exit() harder because now we need to conditionals: One for "do you have globals?" and one for "do you have anything at all?". It's actually easier to get right if we have i915_globals_init() /* Everything that can return 0 early */ fully_loaded = true /* Everything that can fail */ > i915_pmu_init(); > > err = pci_register_driver(&i915_pci_driver); > -- > 2.32.0 >