From patchwork Fri Aug 2 12:39:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Senozhatsky X-Patchwork-Id: 11073307 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 410DD14DB for ; Fri, 2 Aug 2019 12:40:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2A8A428826 for ; Fri, 2 Aug 2019 12:40:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1936A2882C; Fri, 2 Aug 2019 12:40:18 +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=-5.2 required=2.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id BEB0E28826 for ; Fri, 2 Aug 2019 12:40:17 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 2583B6E029; Fri, 2 Aug 2019 12:40:16 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2A9B96E029; Fri, 2 Aug 2019 12:40:15 +0000 (UTC) Received: by mail-pl1-x641.google.com with SMTP id w24so33610203plp.2; Fri, 02 Aug 2019 05:40:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=UNi/nnM9HHWKbRYhA5SJtV0WOL7aCQ6fgci+sI44rYk=; b=NbM7UofzAJf8g+Gv5VweX9bJR+gZW86V20vWH5LS7Gwxtyh3io9udj39lgXt1ZZKI8 HI6124j1QE37bnRDWbdYlI9OQ/pcPHrvliWdEATcqZA+YVFp1etX5QBUWtOiJX4rY4mg 0F6y7YVrSolWYe/NCQij6FE4Z6MOuv1OSWmqoM09oJ3OwL7IgOpzgCe1uPlX8gbzjjoA FTK9YcFwq8YNciIOq60TayRXyYZ+l4sBT45DxFUb0SXt0P35mEfAs1DRcARIQCPaR9ue +hrATZ/op/th/G6nSYHUTAUVAH8AtknU3eUAO5C2eDuk8SIK8vEhD9qoO0kwQ6Ii12l3 6VLg== X-Gm-Message-State: APjAAAUeYPZEirvkGwhhPTTwrNVIIw6jbyARhDMtOhiJkZbgk+4vdYP9 Rrhb3Gns9DRfyzZ7aQbIrcoyCzhI X-Google-Smtp-Source: APXvYqwLpuv8Zki5rxd/68GLoAJDtswRFf3FJLONOZgTh1nMnm+lQT6IbCFFFW/QgYstRBcGrM/HVg== X-Received: by 2002:a17:902:2ac7:: with SMTP id j65mr132309416plb.242.1564749614370; Fri, 02 Aug 2019 05:40:14 -0700 (PDT) Received: from localhost.localdomain ([121.137.63.184]) by smtp.gmail.com with ESMTPSA id o3sm3978851pje.1.2019.08.02.05.40.10 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Fri, 02 Aug 2019 05:40:12 -0700 (PDT) From: Sergey Senozhatsky To: Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Chris Wilson Subject: [PATCH 1/2] i915: convert to new mount API Date: Fri, 2 Aug 2019 21:39:55 +0900 Message-Id: <20190802123956.2450-1-sergey.senozhatsky@gmail.com> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=UNi/nnM9HHWKbRYhA5SJtV0WOL7aCQ6fgci+sI44rYk=; b=VuFcTKxPiFikoaOaeaN3wnXTgdC/BrSU7WHN/INuG6RZYN5YDsvvKzcXg8IiYRKKyA F2+x1riP9LCT2SOrRYETDLkypkQAa2yYEMMTRRvBgJtpRf3L9YiLnwJpuzGXvgJOl4t/ 3ln3++H3r9Q6kn25Eju2mIvCELCFHrk2Ix6IfZzeDm7oe7YWiAcc+l5ZpHeUTVBtcXUh Q/V2DKB7GUmAzrleqpuvFnFik1pBAemExEdZwx3V7nD/9jS6Ah0t0CCA3gAjItR+IqXq yUia08u4zRiHbUCqBqxY79YKl4bl/Yzs0febAaa3LmTHBfROyJz9SqxmQsR8hSDn5iNQ ULOg== X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: David Airlie , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Sergey Senozhatsky Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Virus-Scanned: ClamAV using ClamSMTP tmpfs does not set ->remount_fs() anymore and its users need to be converted to new mount API. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page RIP: 0010:0x0 Code: Bad RIP value. Call Trace: i915_gemfs_init+0x6e/0xa0 [i915] i915_gem_init_early+0x76/0x90 [i915] i915_driver_probe+0x30a/0x1640 [i915] ? kernfs_activate+0x5a/0x80 ? kernfs_add_one+0xdd/0x130 pci_device_probe+0x9e/0x110 really_probe+0xce/0x230 driver_probe_device+0x4b/0xc0 device_driver_attach+0x4e/0x60 __driver_attach+0x47/0xb0 ? device_driver_attach+0x60/0x60 bus_for_each_dev+0x61/0x90 bus_add_driver+0x167/0x1b0 driver_register+0x67/0xaa Signed-off-by: Sergey Senozhatsky Reviewed-by: Chris Wilson --- drivers/gpu/drm/i915/gem/i915_gemfs.c | 28 ++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gemfs.c b/drivers/gpu/drm/i915/gem/i915_gemfs.c index 099f3397aada..cf05ba72df9d 100644 --- a/drivers/gpu/drm/i915/gem/i915_gemfs.c +++ b/drivers/gpu/drm/i915/gem/i915_gemfs.c @@ -7,14 +7,17 @@ #include #include #include +#include #include "i915_drv.h" #include "i915_gemfs.h" int i915_gemfs_init(struct drm_i915_private *i915) { + struct fs_context *fc = NULL; struct file_system_type *type; struct vfsmount *gemfs; + bool ok = true; type = get_fs_type("tmpfs"); if (!type) @@ -36,18 +39,29 @@ int i915_gemfs_init(struct drm_i915_private *i915) struct super_block *sb = gemfs->mnt_sb; /* FIXME: Disabled until we get W/A for read BW issue. */ char options[] = "huge=never"; - int flags = 0; - int err; - err = sb->s_op->remount_fs(sb, &flags, options); - if (err) { - kern_unmount(gemfs); - return err; + fc = fs_context_for_reconfigure(sb->s_root, 0, 0); + if (IS_ERR(fc)) { + ok = false; + goto out; } + + if (!fc->ops->parse_monolithic || + fc->ops->parse_monolithic(fc, options)) { + ok = false; + goto out; + } + + if (!fc->ops->reconfigure || fc->ops->reconfigure(fc)) + ok = false; } +out: + if (!ok) + pr_err("i915 gemfs reconfiguration failed\n"); + if (!IS_ERR_OR_NULL(fc)) + put_fs_context(fc); i915->mm.gemfs = gemfs; - return 0; }