From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: call drm_vblank_cleanup() earlier at unload Date: Tue, 21 Oct 2014 17:22:01 +0200 Message-ID: <20141021152201.GR26941@phenom.ffwll.local> References: <1413393304-3224-1-git-send-email-przanoni@gmail.com> <20141017111834.GS4284@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Return-path: Received: from mail-wi0-f173.google.com (mail-wi0-f173.google.com [209.85.212.173]) by gabe.freedesktop.org (Postfix) with ESMTP id 7DF5089A5D for ; Tue, 21 Oct 2014 08:21:56 -0700 (PDT) Received: by mail-wi0-f173.google.com with SMTP id fb4so10521145wid.0 for ; Tue, 21 Oct 2014 08:21:55 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20141017111834.GS4284@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org On Fri, Oct 17, 2014 at 02:18:34PM +0300, Ville Syrj=E4l=E4 wrote: > 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/0x2= 20 [i915] > > [ 9132.421727] [] drm_calc_vbltimestamp_from_scanout= pos+0x94/0x330 [drm] > > [ 9132.421744] [] ?vblank_disable_and_save+0x40/0x1e= 0 [drm] > > [ 9132.421769] [] i915_get_vblank_timestamp+0x68/0xb= 0 [i915] > > [ 9132.421786] [] drm_get_last_vbltimestamp+0x44/0x8= 0 [drm] > > [ 9132.421801] [] vblank_disable_and_save+0x1a6/0x1e= 0 [drm] > > [ 9132.421817] [] drm_vblank_cleanup+0x61/0xa0 [drm] > > [ 9132.421849] [] i915_driver_unload+0xde/0x290 [i91= 5] > > [ 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 Queued for -next, thanks for the patch. -Daniel -- = Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch