From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E463039061C for ; Sat, 12 Sep 2026 20:59:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789246756; cv=none; b=c/jpIy31i4lPqcrGTgBD7nDgI+WMLdqHmb5m3VbQprUocBNbez6ZVu//gK98tzOeCQSz993qtWQiEl2oO6zKZPVDZp4N0FDs3Q6W/0dvSel5C3QKoNnGFITZysXno0NdX8MqPRbaV8wWEj7cIxCK/lyYL47eWm54yBLfL8dIBu0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789246756; c=relaxed/simple; bh=Uvt+3DLo0BsIgYNUJ8Lgkvq4p5gf3xuy3VzPlbpWF4Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HcDPVf2KYBBWtGWuoTTC4E1kDo5uLKG8sML+gW1TRIgRZeVudW3AgT5SqbOkKEh3Gid4fr1plLDa4kr3e/0mGg4yG6NgQRCW/ClZf+5H+NMhLxt1gtNek9HjvCyMF3/CW5OR+K7ZvZcm/zWKHncnS3vtOSgrIOcB8GkwcZ+ZNck= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=gZIWULba; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="gZIWULba" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0410F1F000FF; Sat, 12 Sep 2026 20:59:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1789246754; bh=/clPFs+CK6r373laU8mPMSxj60CXVq6sMHiLRqE0yig=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=gZIWULbaOoWFbCu/3/BldWfoPVhJtml5nnqB4UjuZTwSaPg0MiV6E+m4QPpt3ulKC AhsZpWr4sM5XUi4U60Upv5h0d54UqlEv1na5UOsa8aRLk81wdPj3rrdlDn5HdkShPI M7O6XjU4blgSc5bmLAsf+ocW0oA5S0pykO7Cec3w60cub7bP02bVXW03z8Kiz54xdf U2s7KPV+hRFW0/QCpxTEd2Tp0mtG8xru/ExqRKXtJrbEk6IiWiLzl13bZIawEbQjyu O+USwnU7FIEoU/G5M8gtRJGfL+66v+hfWlrlV5jwElyJISaodICNhVTOIxtNoUg5je a2/pnglQvXqPw== From: Sasha Levin To: stable@vger.kernel.org Cc: Danilo Krummrich , Dave Airlie , Sasha Levin Subject: [PATCH 6.1.y 1/2] drm/nouveau: get vmm via nouveau_cli_vmm() Date: Sat, 12 Sep 2026 16:59:11 -0400 Message-ID: <20260912205912.3934099-1-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <2026090931-aqueduct-chafe-a114@gregkh> References: <2026090931-aqueduct-chafe-a114@gregkh> Precedence: bulk X-Mailing-List: stable@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Danilo Krummrich [ Upstream commit 7b05a7c0c9ca6e7e2d27181504920987226477e5 ] Provide a getter function for the client's current vmm context. Since we'll add a new (u)vmm context for UMD bindings in subsequent commits, this will keep the code clean. Reviewed-by: Dave Airlie Signed-off-by: Danilo Krummrich Link: https://patchwork.freedesktop.org/patch/msgid/20230804182406.5222-5-dakr@redhat.com Stable-dep-of: 511585987d27 ("drm/nouveau: unsubscribe the channel-kill event before the fence context") Signed-off-by: Sasha Levin --- drivers/gpu/drm/nouveau/nouveau_bo.c | 2 +- drivers/gpu/drm/nouveau/nouveau_chan.c | 2 +- drivers/gpu/drm/nouveau/nouveau_drv.h | 9 +++++++++ drivers/gpu/drm/nouveau/nouveau_gem.c | 6 +++--- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index ab571b76b129f..23063a960dce5 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -206,7 +206,7 @@ nouveau_bo_alloc(struct nouveau_cli *cli, u64 *size, int *align, u32 domain, struct nouveau_drm *drm = cli->drm; struct nouveau_bo *nvbo; struct nvif_mmu *mmu = &cli->mmu; - struct nvif_vmm *vmm = cli->svm.cli ? &cli->svm.vmm : &cli->vmm.vmm; + struct nvif_vmm *vmm = &nouveau_cli_vmm(cli)->vmm; int i, pi = -1; if (!*size) { diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c b/drivers/gpu/drm/nouveau/nouveau_chan.c index 48dea5d0c580f..65033f3a2067a 100644 --- a/drivers/gpu/drm/nouveau/nouveau_chan.c +++ b/drivers/gpu/drm/nouveau/nouveau_chan.c @@ -150,7 +150,7 @@ nouveau_channel_prep(struct nouveau_drm *drm, struct nvif_device *device, chan->device = device; chan->drm = drm; - chan->vmm = cli->svm.cli ? &cli->svm : &cli->vmm; + chan->vmm = nouveau_cli_vmm(cli); atomic_set(&chan->killed, 0); /* allocate memory for dma push buffer */ diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index 84df5ddae4d06..560ac3939e264 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h @@ -118,6 +118,15 @@ struct nouveau_cli_work { struct dma_fence_cb cb; }; +static inline struct nouveau_vmm * +nouveau_cli_vmm(struct nouveau_cli *cli) +{ + if (cli->svm.cli) + return &cli->svm; + + return &cli->vmm; +} + void nouveau_cli_work_queue(struct nouveau_cli *, struct dma_fence *, struct nouveau_cli_work *); diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 0ec96d9372cd7..3c490a3860b6d 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -100,7 +100,7 @@ nouveau_gem_object_open(struct drm_gem_object *gem, struct drm_file *file_priv) struct nouveau_bo *nvbo = nouveau_gem_object(gem); struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); struct device *dev = drm->dev->dev; - struct nouveau_vmm *vmm = cli->svm.cli ? &cli->svm : &cli->vmm; + struct nouveau_vmm *vmm = nouveau_cli_vmm(cli); struct nouveau_vma *vma; int ret; @@ -177,7 +177,7 @@ nouveau_gem_object_close(struct drm_gem_object *gem, struct drm_file *file_priv) struct nouveau_bo *nvbo = nouveau_gem_object(gem); struct nouveau_drm *drm = nouveau_bdev(nvbo->bo.bdev); struct device *dev = drm->dev->dev; - struct nouveau_vmm *vmm = cli->svm.cli ? &cli->svm : & cli->vmm; + struct nouveau_vmm *vmm = nouveau_cli_vmm(cli); struct nouveau_vma *vma; int ret; @@ -266,7 +266,7 @@ nouveau_gem_info(struct drm_file *file_priv, struct drm_gem_object *gem, { struct nouveau_cli *cli = nouveau_cli(file_priv); struct nouveau_bo *nvbo = nouveau_gem_object(gem); - struct nouveau_vmm *vmm = cli->svm.cli ? &cli->svm : &cli->vmm; + struct nouveau_vmm *vmm = nouveau_cli_vmm(cli); struct nouveau_vma *vma; if (is_power_of_2(nvbo->valid_domains)) -- 2.53.0