diff options
Diffstat (limited to 'mmu-ALIGN_DOWN-correct-variable.patch')
-rw-r--r-- | mmu-ALIGN_DOWN-correct-variable.patch | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/mmu-ALIGN_DOWN-correct-variable.patch b/mmu-ALIGN_DOWN-correct-variable.patch deleted file mode 100644 index 5ea481a6b..000000000 --- a/mmu-ALIGN_DOWN-correct-variable.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 73422d1684caa09afe011cc404477836b537ac6b Mon Sep 17 00:00:00 2001 -From: Maris Nartiss <maris.nartiss@gmail.com> -Date: Mon, 19 Mar 2018 09:55:07 -0700 -Subject: [PATCH] mmu: ALIGN_DOWN correct variable - -Commit 7110c89bb8852ff8b0f88ce05b332b3fe22bd11e ("mmu: swap out round -for ALIGN") replaced two calls to round/rounddown with ALIGN/ALIGN_DOWN, -but erroneously applied ALIGN_DOWN to a different variable (addr) and left -intended variable (tail) not rounded/ALIGNed. - -As a result screen corruption, X lockups are observable. An example of kernel -log of affected system with NV98 card where it was bisected: - -nouveau 0000:01:00.0: gr: TRAP_M2MF 00000002 [IN] -nouveau 0000:01:00.0: gr: TRAP_M2MF 00320951 400007c0 00000000 04000000 -nouveau 0000:01:00.0: gr: 00200000 [] ch 1 [000fbbe000 DRM] subc 4 class 5039 -mthd 0100 data 00000000 -nouveau 0000:01:00.0: fb: trapped read at 0040000000 on channel 1 -[0fbbe000 DRM] -engine 00 [PGRAPH] client 03 [DISPATCH] subclient 04 [M2M_IN] reason 00000006 -[NULL_DMAOBJ] - -Fixes bug 105173 ("[MCP79][Regression] Unhandled NULL pointer dereference in -nvkm_object_unmap since kernel 4.15") -https://bugs.freedesktop.org/show_bug.cgi?id=105173 - -Fixes: 7110c89bb885 ("mmu: swap out round for ALIGN ") -Tested-by: Pierre Moreau <pierre.morrow@free.fr> -Reviewed-by: Pierre Moreau <pierre.morrow@free.fr> ---- - drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c -index e35d3e17cd7c..c6e3d0dd1070 100644 ---- a/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c -+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/mmu/vmm.c -@@ -1354,7 +1354,7 @@ nvkm_vmm_get_locked(struct nvkm_vmm *vmm, bool getref, bool mapref, bool sparse, - - tail = this->addr + this->size; - if (vmm->func->page_block && next && next->page != p) -- tail = ALIGN_DOWN(addr, vmm->func->page_block); -+ tail = ALIGN_DOWN(tail, vmm->func->page_block); - - if (addr <= tail && tail - addr >= size) { - rb_erase(&this->tree, &vmm->free); --- -2.14.3 - |