From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 854E7C4360F for ; Fri, 5 Apr 2019 07:27:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4E43A21850 for ; Fri, 5 Apr 2019 07:27:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730077AbfDEH1H (ORCPT ); Fri, 5 Apr 2019 03:27:07 -0400 Received: from mga04.intel.com ([192.55.52.120]:29088 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726726AbfDEH1G (ORCPT ); Fri, 5 Apr 2019 03:27:06 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Apr 2019 00:27:06 -0700 X-IronPort-AV: E=Sophos;i="5.60,310,1549958400"; d="scan'208";a="131667186" Received: from jkrzyszt-desk.igk.intel.com ([172.22.244.18]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Apr 2019 00:27:03 -0700 From: Janusz Krzysztofik To: Joonas Lahtinen , Jani Nikula , Rodrigo Vivi Cc: David Airlie , Daniel Vetter , Chris Wilson , michal.wajdeczko@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Janusz Krzysztofik Subject: [PATCH] drm/i915: Use drm_dev_unplug() Date: Fri, 5 Apr 2019 09:26:57 +0200 Message-Id: <20190405072657.9997-1-janusz.krzysztofik@linux.intel.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Janusz Krzysztofik The driver does not currently support unbinding from a device which is in use. Since open file descriptors may still be pointing into kernel memory where the device structures used to be, entirely correct kernel panics protect the driver from being unbound as we should not be unbinding it before those dangling pointers have been made safe. According to the documentation found inside drivers/gpu/drm/drm_drv.c, drm_dev_unplug() should be used instead of drm_dev_unregister() in order to make a device inaccessible to users as soon as it is unpluged. Follow that advice to make those possibly dangling pointers safe, protected by DRM layer from a user who is otherwise left pointing into possibly reused kernel memory after the driver has been unbound from the device. Signed-off-by: Janusz Krzysztofik --- drivers/gpu/drm/i915/i915_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 9df65d386d11..66163378c481 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -1596,7 +1596,7 @@ static void i915_driver_unregister(struct drm_i915_private *dev_priv) i915_pmu_unregister(dev_priv); i915_teardown_sysfs(dev_priv); - drm_dev_unregister(&dev_priv->drm); + drm_dev_unplug(&dev_priv->drm); i915_gem_shrinker_unregister(dev_priv); } -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Janusz Krzysztofik Subject: [PATCH] drm/i915: Use drm_dev_unplug() Date: Fri, 5 Apr 2019 09:26:57 +0200 Message-ID: <20190405072657.9997-1-janusz.krzysztofik@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joonas Lahtinen , Jani Nikula , Rodrigo Vivi Cc: Janusz Krzysztofik , David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmFudXN6IEtyenlzenRvZmlrIDxqYW51c3oua3J6eXN6dG9maWtAaW50ZWwuY29tPgoK VGhlIGRyaXZlciBkb2VzIG5vdCBjdXJyZW50bHkgc3VwcG9ydCB1bmJpbmRpbmcgZnJvbSBhIGRl dmljZSB3aGljaCBpcwppbiB1c2UuICBTaW5jZSBvcGVuIGZpbGUgZGVzY3JpcHRvcnMgbWF5IHN0 aWxsIGJlIHBvaW50aW5nIGludG8ga2VybmVsCm1lbW9yeSB3aGVyZSB0aGUgZGV2aWNlIHN0cnVj dHVyZXMgdXNlZCB0byBiZSwgZW50aXJlbHkgY29ycmVjdCBrZXJuZWwKcGFuaWNzIHByb3RlY3Qg dGhlIGRyaXZlciBmcm9tIGJlaW5nIHVuYm91bmQgYXMgd2Ugc2hvdWxkIG5vdCBiZQp1bmJpbmRp bmcgaXQgYmVmb3JlIHRob3NlIGRhbmdsaW5nIHBvaW50ZXJzIGhhdmUgYmVlbiBtYWRlIHNhZmUu CgpBY2NvcmRpbmcgdG8gdGhlIGRvY3VtZW50YXRpb24gZm91bmQgaW5zaWRlIGRyaXZlcnMvZ3B1 L2RybS9kcm1fZHJ2LmMsCmRybV9kZXZfdW5wbHVnKCkgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCBv ZiBkcm1fZGV2X3VucmVnaXN0ZXIoKSBpbgpvcmRlciB0byBtYWtlIGEgZGV2aWNlIGluYWNjZXNz aWJsZSB0byB1c2VycyBhcyBzb29uIGFzIGl0IGlzIHVucGx1Z2VkLgpGb2xsb3cgdGhhdCBhZHZp Y2UgdG8gbWFrZSB0aG9zZSBwb3NzaWJseSBkYW5nbGluZyBwb2ludGVycyBzYWZlLApwcm90ZWN0 ZWQgYnkgRFJNIGxheWVyIGZyb20gYSB1c2VyIHdobyBpcyBvdGhlcndpc2UgbGVmdCBwb2ludGlu ZyBpbnRvCnBvc3NpYmx5IHJldXNlZCBrZXJuZWwgbWVtb3J5IGFmdGVyIHRoZSBkcml2ZXIgaGFz IGJlZW4gdW5ib3VuZCBmcm9tCnRoZSBkZXZpY2UuCgpTaWduZWQtb2ZmLWJ5OiBKYW51c3ogS3J6 eXN6dG9maWsgPGphbnVzei5rcnp5c3p0b2Zpa0BpbnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCmluZGV4IDlkZjY1ZDM4NmQx MS4uNjYxNjMzNzhjNDgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKQEAgLTE1OTYsNyArMTU5 Niw3IEBAIHN0YXRpYyB2b2lkIGk5MTVfZHJpdmVyX3VucmVnaXN0ZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogCWk5MTVfcG11X3VucmVnaXN0ZXIoZGV2X3ByaXYpOwogCiAJ aTkxNV90ZWFyZG93bl9zeXNmcyhkZXZfcHJpdik7Ci0JZHJtX2Rldl91bnJlZ2lzdGVyKCZkZXZf cHJpdi0+ZHJtKTsKKwlkcm1fZGV2X3VucGx1ZygmZGV2X3ByaXYtPmRybSk7CiAKIAlpOTE1X2dl bV9zaHJpbmtlcl91bnJlZ2lzdGVyKGRldl9wcml2KTsKIH0KLS0gCjIuMjAuMQoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4