mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Akhil P Oommen <akhilpo@oss.qualcomm.com>
To: Rob Clark <robin.clark@oss.qualcomm.com>,
	Dmitry Baryshkov <lumag@kernel.org>,
	Abhinav Kumar <abhinav.kumar@linux.dev>,
	Jessica Zhang <jessica.zhang@oss.qualcomm.com>,
	Sean Paul <sean@poorly.run>,
	Marijn Suijten <marijn.suijten@somainline.org>,
	David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Jordan Crouse <jordan@cosmicpenguin.net>,
	Jonathan Marek <jonathan@marek.ca>,
	Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>
Cc: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>,
	linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org,
	freedreno@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	Akhil P Oommen <akhilpo@oss.qualcomm.com>
Subject: [PATCH v2 1/4] drm/msm: Fix bootup splat with separate_gpu_drm modparam
Date: Thu, 11 Sep 2025 02:14:04 +0530	[thread overview]
Message-ID: <20250911-assorted-sept-1-v2-1-a8bf1ee20792@oss.qualcomm.com> (raw)
In-Reply-To: <20250911-assorted-sept-1-v2-0-a8bf1ee20792@oss.qualcomm.com>

The drm_gem_for_each_gpuvm_bo() call from lookup_vma() accesses
drm_gem_obj.gpuva.list, which is not initialized when the drm driver
does not support DRIVER_GEM_GPUVA feature. Enable it for msm_kms
drm driver to fix the splat seen when msm.separate_gpu_drm=1 modparam
is set. Also, update the description of DRIVER_GEM_GPUVA flag to
reflect that it is also used by DRM drivers which doesn't support user
defined GPUVA bindings. For eg: msm_kms driver.

	Unable to handle kernel paging request at virtual address fffffffffffffff0
	Mem abort info:
	  ESR = 0x0000000096000006
	  EC = 0x25: DABT (current EL), IL = 32 bits
	  SET = 0, FnV = 0
	  EA = 0, S1PTW = 0
	  FSC = 0x06: level 2 translation fault
	Data abort info:
	  ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
	  CM = 0, WnR = 0, TnD = 0, TagAccess = 0
	  GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
	swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000ad370f000
	[fffffffffffffff0] pgd=0000000000000000, p4d=0000000ad4787403, pud=0000000ad4788403, pmd=0000000000000000
	Internal error: Oops: 0000000096000006 [#1]  SMP
	CPU: 9 UID: 0 PID: 448 Comm: (udev-worker) Not tainted 6.17.0-rc4-assorted-fix-00005-g0e9bb53a2282-dirty #3 PREEMPT
	pstate: a1400005 (NzCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
	pc : lookup_vma+0x28/0xe0 [msm]
	lr : get_vma_locked+0x2c/0x128 [msm]
	sp : ffff800082dab460
	Call trace:
	 lookup_vma+0x28/0xe0 [msm] (P)
	 get_vma_locked+0x2c/0x128 [msm]
	 msm_gem_get_and_pin_iova_range+0x68/0x11c [msm]
	 msm_gem_get_and_pin_iova+0x18/0x24 [msm]
	 msm_fbdev_driver_fbdev_probe+0xd0/0x258 [msm]
	 __drm_fb_helper_initial_config_and_unlock+0x288/0x528 [drm_kms_helper]
	 drm_fb_helper_initial_config+0x44/0x54 [drm_kms_helper]
	 drm_fbdev_client_hotplug+0x84/0xd4 [drm_client_lib]
	 drm_client_register+0x58/0x9c [drm]
	 drm_fbdev_client_setup+0xe8/0xcf0 [drm_client_lib]
	 drm_client_setup+0xb4/0xd8 [drm_client_lib]
	 msm_drm_kms_post_init+0x2c/0x3c [msm]
	 msm_drm_init+0x1a8/0x22c [msm]
	 msm_drm_bind+0x30/0x3c [msm]
	 try_to_bring_up_aggregate_device+0x168/0x1d4
	 __component_add+0xa4/0x170
	 component_add+0x14/0x20
	 msm_dp_display_probe_tail+0x4c/0xac [msm]
	 msm_dp_auxbus_done_probe+0x14/0x20 [msm]
	 dp_aux_ep_probe+0x4c/0xf0 [drm_dp_aux_bus]
	 really_probe+0xbc/0x298
	 __driver_probe_device+0x78/0x12c
	 driver_probe_device+0x40/0x160
	 __driver_attach+0x94/0x19c
	 bus_for_each_dev+0x74/0xd4
	 driver_attach+0x24/0x30
	 bus_add_driver+0xe4/0x208
	 driver_register+0x60/0x128
	 __dp_aux_dp_driver_register+0x24/0x30 [drm_dp_aux_bus]
	 atana33xc20_init+0x20/0x1000 [panel_samsung_atna33xc20]
	 do_one_initcall+0x6c/0x1b0
	 do_init_module+0x58/0x234
	 load_module+0x19cc/0x1bd4
	 init_module_from_file+0x84/0xc4
	 __arm64_sys_finit_module+0x1b8/0x2cc
	 invoke_syscall+0x48/0x110
	 el0_svc_common.constprop.0+0xc8/0xe8
	 do_el0_svc+0x20/0x2c
	 el0_svc+0x34/0xf0
	 el0t_64_sync_handler+0xa0/0xe4
	 el0t_64_sync+0x198/0x19c
	Code: eb0000bf 54000480 d100a003 aa0303e2 (f8418c44)
	---[ end trace 0000000000000000 ]---

Fixes: 217ed15bd399 ("drm/msm: enable separate binding of GPU and display devices")
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
---
 drivers/gpu/drm/msm/msm_drv.c | 1 +
 include/drm/drm_drv.h         | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c
index 9dcc7a596a11d9342a515dab694bac93dc2805cb..7e977fec4100792394dccf59097a01c2b2556608 100644
--- a/drivers/gpu/drm/msm/msm_drv.c
+++ b/drivers/gpu/drm/msm/msm_drv.c
@@ -826,6 +826,7 @@ static const struct file_operations fops = {
 
 #define DRIVER_FEATURES_KMS ( \
 		DRIVER_GEM | \
+		DRIVER_GEM_GPUVA | \
 		DRIVER_ATOMIC | \
 		DRIVER_MODESET | \
 		0 )
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 42fc085f986dee9261f8b08c4fc7d93b8d6d9769..8729c88fd12ba76eb0084fc1a2ebccaabf377995 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -110,7 +110,8 @@ enum drm_driver_feature {
 	/**
 	 * @DRIVER_GEM_GPUVA:
 	 *
-	 * Driver supports user defined GPU VA bindings for GEM objects.
+	 * Driver uses the drm_gpuvm infrastructure for managing GPU virtual
+	 * address mappings of GEM objects.
 	 */
 	DRIVER_GEM_GPUVA		= BIT(8),
 	/**

-- 
2.50.1


  reply	other threads:[~2025-09-10 20:44 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-10 20:44 [PATCH v2 0/4] drm/msm: Assorted fixes and changes Akhil P Oommen
2025-09-10 20:44 ` Akhil P Oommen [this message]
2025-09-10 20:44 ` [PATCH v2 2/4] drm/msm/a6xx: Fix GMU firmware parser Akhil P Oommen
2025-09-12 12:40   ` Konrad Dybcio
2025-09-10 20:44 ` [PATCH v2 3/4] drm/msm/adreno: Add a modparam to skip GPU Akhil P Oommen
2025-09-10 20:44 ` [PATCH v2 4/4] drm/msm/a6xx: Add a comment to acd_probe() Akhil P Oommen
2025-09-10 20:50 ` [PATCH v2 0/4] drm/msm: Assorted fixes and changes Akhil P Oommen
2025-09-10 20:55 ` Dmitry Baryshkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250911-assorted-sept-1-v2-1-a8bf1ee20792@oss.qualcomm.com \
    --to=akhilpo@oss.qualcomm.com \
    --cc=abhinav.kumar@linux.dev \
    --cc=airlied@gmail.com \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=jessica.zhang@oss.qualcomm.com \
    --cc=jonathan@marek.ca \
    --cc=jordan@cosmicpenguin.net \
    --cc=konradybcio@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lumag@kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=marijn.suijten@somainline.org \
    --cc=mripard@kernel.org \
    --cc=robin.clark@oss.qualcomm.com \
    --cc=sean@poorly.run \
    --cc=simona@ffwll.ch \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®