From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm/i915: call drm_vblank_cleanup() earlier at unload Date: Fri, 17 Oct 2014 14:18:34 +0300 Message-ID: <20141017111834.GS4284@intel.com> References: <1413393304-3224-1-git-send-email-przanoni@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 9984E6E30F for ; Fri, 17 Oct 2014 04:18:37 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1413393304-3224-1-git-send-email-przanoni@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org On Wed, Oct 15, 2014 at 02:15:04PM -0300, Paulo Zanoni wrote: > From: Paulo Zanoni > = > In its current place, it just segfaults while trying to access the > CRTC structures: > = > [ 9132.421681] Call Trace: > [ 9132.421707] [] i915_get_crtc_scanoutpos+0x1e8/0x220= [i915] > [ 9132.421727] [] drm_calc_vbltimestamp_from_scanoutpo= s+0x94/0x330 [drm] > [ 9132.421744] [] ?vblank_disable_and_save+0x40/0x1e0 = [drm] > [ 9132.421769] [] i915_get_vblank_timestamp+0x68/0xb0 = [i915] > [ 9132.421786] [] drm_get_last_vbltimestamp+0x44/0x80 = [drm] > [ 9132.421801] [] vblank_disable_and_save+0x1a6/0x1e0 = [drm] > [ 9132.421817] [] drm_vblank_cleanup+0x61/0xa0 [drm] > [ 9132.421849] [] i915_driver_unload+0xde/0x290 [i915] > [ 9132.421867] [] drm_dev_unregister+0x24/0xb0 [drm] > [ 9132.421884] [] drm_put_dev+0x1e/0x70 [drm] > [ 9132.421901] [] i915_pci_remove+0x10/0x20 [i915] > [ 9132.421910] [] pci_device_remove+0x36/0xb0 > [ 9132.421920] [] __device_release_driver+0x7a/0xf0 > [ 9132.421928] [] driver_detach+0xb8/0xc0 > [ 9132.421936] [] bus_remove_driver+0x4a/0xb0 > [ 9132.421944] [] driver_unregister+0x27/0x50 > [ 9132.421953] [] pci_unregister_driver+0x25/0x70 > [ 9132.421971] [] drm_pci_exit+0x78/0xa0 [drm] > [ 9132.422000] [] i915_exit+0x20/0x94e [i915] > [ 9132.422009] [] SyS_delete_module+0x13c/0x1f0 > [ 9132.422019] [] ? > trace_hardirqs_on_thunk+0x3a/0x3f > [ 9132.422028] [] system_call_fastpath+0x16/0x1b > = > This means it has to be before intel_modeset_cleanup, which cleans the > CRTC structures. But if we move it to before intel_fbdev_fini(), we > get WARNs because intel_fbdev_fini() still tries to use the vblanks, > so the only acceptable point for drm_vblank_cleanup() seems to be this > place. Hmm. Yeah that seems like the spot we have to put it given it wants to call the vblank disable hook. Reviewed-by: Ville Syrj=E4l=E4 > = > Related commit: > = > commit cbb47d179fb345c579cd8cd884693903fceed26a > Author: Chris Wilson > Date: Mon Sep 23 17:33:20 2013 -0300 > drm/i915: Add some missing steps to i915_driver_load error path > = > Testsuite: igt/drv_module_reload > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=3D77511 > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=3D83484 > Signed-off-by: Paulo Zanoni > --- > drivers/gpu/drm/i915/i915_dma.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > = > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_= dma.c > index 85d14e1..1b39807 100644 > --- a/drivers/gpu/drm/i915/i915_dma.c > +++ b/drivers/gpu/drm/i915/i915_dma.c > @@ -1853,8 +1853,12 @@ int i915_driver_unload(struct drm_device *dev) > = > acpi_video_unregister(); > = > - if (drm_core_check_feature(dev, DRIVER_MODESET)) { > + if (drm_core_check_feature(dev, DRIVER_MODESET)) > intel_fbdev_fini(dev); > + > + drm_vblank_cleanup(dev); > + > + if (drm_core_check_feature(dev, DRIVER_MODESET)) { > intel_modeset_cleanup(dev); > = > /* > @@ -1895,8 +1899,6 @@ int i915_driver_unload(struct drm_device *dev) > i915_free_hws(dev); > } > = > - drm_vblank_cleanup(dev); > - > intel_teardown_gmbus(dev); > intel_teardown_mchbar(dev); > = > -- = > 2.1.1 > = > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- = Ville Syrj=E4l=E4 Intel OTC