From patchwork Mon Aug 5 16:03:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Senozhatsky X-Patchwork-Id: 11077267 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 210341398 for ; Mon, 5 Aug 2019 16:03:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 102562094F for ; Mon, 5 Aug 2019 16:03:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0498828711; Mon, 5 Aug 2019 16:03:35 +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=unavailable 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 B6CA82094F for ; Mon, 5 Aug 2019 16:03:34 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CB67B6E4E6; Mon, 5 Aug 2019 16:03:33 +0000 (UTC) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-pg1-x542.google.com (mail-pg1-x542.google.com [IPv6:2607:f8b0:4864:20::542]) by gabe.freedesktop.org (Postfix) with ESMTPS id 90E756E4D4; Mon, 5 Aug 2019 16:03:32 +0000 (UTC) Received: by mail-pg1-x542.google.com with SMTP id t132so39970546pgb.9; Mon, 05 Aug 2019 09:03:32 -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:in-reply-to :references:mime-version:content-transfer-encoding; bh=Uf5Kyvl6R4lvAs7V00xNhAh6oE9OoqQ2lgWGLPKa4ak=; b=UCyqJoFSKUYfRn1uR6h1IL5hriTIDLOhtZWV9ojG925ctd1NzPysK5Z4LesW8Syhdd Pkrztb2Not10GTB7dXAMuN5Dsg9gVA1tXe7TdWKQHDgkCCF6k0r+qFNdMMP+eFOWg+lI 7omX12049spUaV2Uz6F+qLvvTEHLl0O9pccl8mjONRGjOe7NIK6r/zpoN33usKyLbWDY mzB5p211nzlQyah7d4vFWQWg7pDuRXAsEzlmhTpxx6FNKFY26T0/Jz3v4KKbx6mylKm3 fh8HcnvkcK61X2ZyNzA27ShEUAW0C7FPPoXoCxck6cXzkhDhU4nvZ3GV9Os0mIAHULh8 K9xQ== X-Gm-Message-State: APjAAAXe0KBWBg9IFis83QPsAcUTfkp2fSrhG+T2UCl4hJAyWW8QwlMu fSg66cQlSMyDW6qYjzkqYwQ= X-Google-Smtp-Source: APXvYqzmK66clykxtZ78Ka6IqlAt4/WQeHtxxjbA/5hlZMyFLmWILOUpzY50fw+Q9jF2knizmG/7EA== X-Received: by 2002:a17:90a:6546:: with SMTP id f6mr18661240pjs.11.1565021012059; Mon, 05 Aug 2019 09:03:32 -0700 (PDT) Received: from localhost.localdomain ([121.137.63.184]) by smtp.gmail.com with ESMTPSA id n98sm17061262pjc.26.2019.08.05.09.03.24 (version=TLS1_3 cipher=AEAD-AES256-GCM-SHA384 bits=256/256); Mon, 05 Aug 2019 09:03:31 -0700 (PDT) From: Sergey Senozhatsky To: Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Chris Wilson , Alexander Viro , David Howells , Christoph Hellwig Subject: [PATCHv2 2/3] i915: convert to new mount API Date: Tue, 6 Aug 2019 01:03:06 +0900 Message-Id: <20190805160307.5418-3-sergey.senozhatsky@gmail.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190805160307.5418-1-sergey.senozhatsky@gmail.com> References: <20190805160307.5418-1-sergey.senozhatsky@gmail.com> 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:in-reply-to:references :mime-version:content-transfer-encoding; bh=Uf5Kyvl6R4lvAs7V00xNhAh6oE9OoqQ2lgWGLPKa4ak=; b=N7oQ2Fn2fvq2ydxLF1VKczaQ5uUjRaOuqMtZ6/QWeyh41ouymsleO6JjMZQ2q7Nr1W UyA78UP+MMsAwnnjsv21+XJkkefs9BgeSZhkSbo+Y3tl1VO/R/YtO9IcVZP/h5fDcdKD hUBoy2dT55bow0DfAeI4gGx2cmVGXeysRyA8XuNnjcNMlg4SKkq3GP6Cy/UW0uGXnSLd c9oVC785Crw82Gd90ecSV1B/jasl4o+smnQhv+Nb7RXikO7ImFMLW3KxTcaYvIu+6rnM aCgsxqi8TI/8/AISjgJfzV01QbaSRz4rzb8gyqO+sTqcQBTQjftuTeFPJHTpwB9hKGLR KUdg== 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 , linux-fsdevel@vger.kernel.org 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 | 32 +++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gemfs.c b/drivers/gpu/drm/i915/gem/i915_gemfs.c index 099f3397aada..feedc9242072 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; - } + + ok = false; + fc = fs_context_for_reconfigure(sb->s_root, 0, 0); + if (IS_ERR(fc)) + goto out; + + if (!fc->ops->parse_monolithic || + fc->ops->parse_monolithic(fc, options)) + goto out; + + if (fc->ops->reconfigure && !fc->ops->reconfigure(fc)) + ok = true; } +out: + if (!ok) + dev_err(i915->drm.dev, + "Unable to reconfigure %s. %s\n", + "shmemfs for preferred allocation strategy", + "Continuing, but performance may suffer"); + if (!IS_ERR_OR_NULL(fc)) + put_fs_context(fc); i915->mm.gemfs = gemfs; - return 0; }