From patchwork Fri Jun 24 07:00:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Chris Wilson X-Patchwork-Id: 9196795 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 2829060871 for ; Fri, 24 Jun 2016 07:01:19 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1986928495 for ; Fri, 24 Jun 2016 07:01:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0E58228498; Fri, 24 Jun 2016 07:01:19 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.1 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AA99628495 for ; Fri, 24 Jun 2016 07:01:18 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 7CC2D6EA4E; Fri, 24 Jun 2016 07:01:12 +0000 (UTC) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 19E976EA48 for ; Fri, 24 Jun 2016 07:00:59 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id c82so2566342wme.3 for ; Fri, 24 Jun 2016 00:00:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YIP0Y1if6WR9vCqZx4eYFRXtjHyV8yK5k/f598KU2s0=; b=ORwlUFafiDBh1UOklRS+yxVPDlFcUjv1SWK8WBtdP/xwmRovAJuk1EbMgRFCNIKJKq 2suqwgk6YqY1gwEk3Y6j2UZ3W+ZA5r42giUg+oJ7B2caEXIgDOpUS4YQfuyANQ9hr9EY 3WG/d1aclY8DzaguSseTBLaYQ4U961velrqUlN9H02ybK+fVc38mOOnpmssLDF8axgBZ yXmejizYISoyekxxjxMq1YDCXzcKOWwqb9YOjsxaqxGm2jnWg46bu+qgyKhxX+qzfQdn mHiHAMCduHMJo9Slc77GM3uUp8u3SiP0iuzHA1lOzXWqtLv74aZQfUu20tTGHu3+lS+r ug+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=YIP0Y1if6WR9vCqZx4eYFRXtjHyV8yK5k/f598KU2s0=; b=H85nUD4QVr5Qv6h1lHrwVzdNrrsLEmerSzgiJ75rfTI/gamwSrgyvZjkh/KBZsPsyH yEcy1vXnDF3FkSkohe55HHwmT1VzUCuXpri4a32t/FO8CIL1uXFscf3P3kF5fZkTlaBl GND7IJZY7IDfNacEAamwZIk2b9Elct5DALoRQP1C62RyWAVj4RX0tyczwdr589a7JPCr kdlVO45LMVtTK3/2//t5JGIiv1PG8xz4XOooIlqgNLJX4j9fjsPwPlcLtE3RXIEPnH5A bQX29tGZLRri3RBy7OSdGvGvAYgRWZfqe7/8wqIjUXgIBtXcK+CsHRgWtezDT6UtPjzH 9nxQ== X-Gm-Message-State: ALyK8tIkugQU4hjiQ0KJ6NMcX4zXyXrqZK3GRrL2FnizRvNEA9hqFw2fcF/yGzAufTtLrQ== X-Received: by 10.195.11.163 with SMTP id ej3mr2448328wjd.130.1466751657019; Fri, 24 Jun 2016 00:00:57 -0700 (PDT) Received: from haswell.alporthouse.com ([78.156.65.138]) by smtp.gmail.com with ESMTPSA id t188sm1621708wma.8.2016.06.24.00.00.56 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 24 Jun 2016 00:00:56 -0700 (PDT) From: Chris Wilson To: intel-gfx@lists.freedesktop.org Date: Fri, 24 Jun 2016 08:00:36 +0100 Message-Id: <1466751645-6529-5-git-send-email-chris@chris-wilson.co.uk> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1466751645-6529-1-git-send-email-chris@chris-wilson.co.uk> References: <1466751645-6529-1-git-send-email-chris@chris-wilson.co.uk> MIME-Version: 1.0 Subject: [Intel-gfx] [CI 05/14] drm/i915: Register debugfs interface last X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" X-Virus-Scanned: ClamAV using ClamSMTP Currently debugfs files are created before the driver is even loads. This gives the opportunity for userspace to open that interface and poke around before the backing data structures are initialised - with the possibility of oopsing or worse. Move the creation of the debugfs files to our registration phase, where we announce our presence to the world when we are ready, i.e the sequence changes from drm_dev_register() -> drm_minor_register() -> drm_debugfs_init() -> i915_debugfs_init() -> i915_driver_load() to drm_dev_register() -> drm_minor_register() -> drm_debugfs_init() -> i915_driver_load() -> i915_debugfs_register() Signed-off-by: Chris Wilson Cc: Ville Syrjälä Reviewed-by: Ville Syrjälä Reviewed-by: Daniel Vetter --- drivers/gpu/drm/i915/i915_debugfs.c | 6 ++++-- drivers/gpu/drm/i915/i915_dma.c | 2 ++ drivers/gpu/drm/i915/i915_drv.c | 4 ---- drivers/gpu/drm/i915/i915_drv.h | 6 ++++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 9989b6a26b17..a8e0eb7e146c 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -5508,8 +5508,9 @@ void intel_display_crc_init(struct drm_device *dev) } } -int i915_debugfs_init(struct drm_minor *minor) +int i915_debugfs_register(struct drm_i915_private *dev_priv) { + struct drm_minor *minor = dev_priv->dev->primary; int ret, i; ret = i915_forcewake_create(minor->debugfs_root, minor); @@ -5535,8 +5536,9 @@ int i915_debugfs_init(struct drm_minor *minor) minor->debugfs_root, minor); } -void i915_debugfs_cleanup(struct drm_minor *minor) +void i915_debugfs_unregister(struct drm_i915_private *dev_priv) { + struct drm_minor *minor = dev_priv->dev->primary; int i; drm_debugfs_remove_files(i915_debugfs_list, diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 29521c4b87a5..91623874f9a3 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1397,6 +1397,7 @@ static void i915_driver_register(struct drm_i915_private *dev_priv) if (intel_vgpu_active(dev_priv)) I915_WRITE(vgtif_reg(display_ready), VGT_DRV_DISPLAY_READY); + i915_debugfs_register(dev_priv); i915_setup_sysfs(dev); intel_modeset_register(dev_priv); @@ -1433,6 +1434,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv) intel_opregion_unregister(dev_priv); intel_modeset_unregister(dev_priv); i915_teardown_sysfs(dev_priv->dev); + i915_debugfs_unregister(dev_priv); i915_gem_shrinker_cleanup(dev_priv); } diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 3eb47fbcea73..3ea09bd83a5a 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -1756,10 +1756,6 @@ static struct drm_driver driver = { .postclose = i915_driver_postclose, .set_busid = drm_pci_set_busid, -#if defined(CONFIG_DEBUG_FS) - .debugfs_init = i915_debugfs_init, - .debugfs_cleanup = i915_debugfs_cleanup, -#endif .gem_free_object = i915_gem_free_object, .gem_vm_ops = &i915_gem_vm_ops, diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 9e0d6afb08e4..b29df899b187 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -3598,12 +3598,14 @@ int i915_verify_lists(struct drm_device *dev); #endif /* i915_debugfs.c */ -int i915_debugfs_init(struct drm_minor *minor); -void i915_debugfs_cleanup(struct drm_minor *minor); #ifdef CONFIG_DEBUG_FS +int i915_debugfs_register(struct drm_i915_private *dev_priv); +void i915_debugfs_unregister(struct drm_i915_private *dev_priv); int i915_debugfs_connector_add(struct drm_connector *connector); void intel_display_crc_init(struct drm_device *dev); #else +static inline int i915_debugfs_register(struct drm_i915_private *) {return 0;} +static inline void i915_debugfs_unregister(struct drm_i915_private *) {} static inline int i915_debugfs_connector_add(struct drm_connector *connector) { return 0; } static inline void intel_display_crc_init(struct drm_device *dev) {}