Skip to contentSkip to conversation

FAILED: patch "[PATCH] drm/nouveau/nouveau: fix page fault on device private memory" failed to apply to 5.7-stable tree

PATCH [email protected] 1 participant 1 message Jul 14, 2020

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 5.7-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From ed710a6ed797430026aa5116dd0ab22378798b69 Mon Sep 17 00:00:00 2001
From: Ralph Campbell <[email protected]>
Date: Fri, 26 Jun 2020 14:03:37 -0700
Subject: [PATCH] drm/nouveau/nouveau: fix page fault on device private memory

If system memory is migrated to device private memory and no GPU MMU page table entry exists, the GPU will fault and call hmm_range_fault() to get the PFN for the page. Since the .dev_private_owner pointer in struct hmm_range is not set, hmm_range_fault returns an error which results in the GPU program stopping with a fatal fault.
Fix this by setting .dev_private_owner appropriately.

Fixes 08ddddda667b ("mm/hmm: check the device private page owner in hmm_range_fault()")
drivers/gpu/drm/nouveau/nouveau_svm.c +1 -0
index ba9f9359c30e..6586d9d39874 100644
@@ -562,6 +562,7 @@ static int nouveau_range_fault(struct nouveau_svmm *svmm,
 		.end = notifier->notifier.interval_tree.last + 1,
 		.pfn_flags_mask = HMM_PFN_REQ_FAULT | HMM_PFN_REQ_WRITE,
 		.hmm_pfns = hmm_pfns,
+		.dev_private_owner = drm->dev,
 	};
 	struct mm_struct *mm = notifier->notifier.mm;
 	int ret;