[x86] drm/i915: Initialise userptr mmu_notifier serial to 1 (Closes: #765590)
svn path=/dists/sid/linux/; revision=21976
This commit is contained in:
parent
44ff4a9061
commit
852f65ab85
|
@ -8,6 +8,8 @@ linux (3.16.5-2) UNRELEASED; urgency=medium
|
||||||
* [x86] r8723au: Backport changes up to Linux 3.17 (Closes: #765685)
|
* [x86] r8723au: Backport changes up to Linux 3.17 (Closes: #765685)
|
||||||
* mmc_block: Increase max_devices and set MMC_BLOCK_MINORS to 256
|
* mmc_block: Increase max_devices and set MMC_BLOCK_MINORS to 256
|
||||||
(Closes: #765621)
|
(Closes: #765621)
|
||||||
|
* [x86] drm/i915: Initialise userptr mmu_notifier serial to 1
|
||||||
|
(Closes: #765590)
|
||||||
|
|
||||||
[ Mauricio Faria de Oliveira ]
|
[ Mauricio Faria de Oliveira ]
|
||||||
* [ppc64el] Disable CONFIG_CMDLINE{,_BOOL} usage for setting consoles
|
* [ppc64el] Disable CONFIG_CMDLINE{,_BOOL} usage for setting consoles
|
||||||
|
|
39
debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch
vendored
Normal file
39
debian/patches/bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Date: Fri, 11 Jul 2014 11:28:01 +0100
|
||||||
|
Subject: drm/i915: Initialise userptr mmu_notifier serial to 1
|
||||||
|
Origin: https://git.kernel.org/linus/6c308fecb4d1f928d52f9586d976f79b37149388
|
||||||
|
Bug-Debian: https://bugs.debian.org/765590
|
||||||
|
|
||||||
|
During the range invalidate, we walk the list of buffers associated with
|
||||||
|
the mmu_notifer and find the ones that overlap the range. An
|
||||||
|
optimisation is made to speed up the iteration by assuming the previous
|
||||||
|
iter is still valid whilst the tree is unmodified. This exposes a bug
|
||||||
|
when a range invalidate is triggered after we have just created the
|
||||||
|
mmu_notifier, but before attaching any buffers. In that case, we presume
|
||||||
|
we have an unmodified list and start walking from the last iter which is
|
||||||
|
NULL. Oops.
|
||||||
|
|
||||||
|
The easiest fix is then to initialise the serial of the tree to 1.
|
||||||
|
|
||||||
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||||||
|
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
||||||
|
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
|
||||||
|
Testecase: igt/gem_userptr_blts/stress-mm
|
||||||
|
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
|
||||||
|
---
|
||||||
|
drivers/gpu/drm/i915/i915_gem_userptr.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
|
||||||
|
index 21ea928..b41614d 100644
|
||||||
|
--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
|
||||||
|
+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
|
||||||
|
@@ -150,7 +150,7 @@ i915_mmu_notifier_get(struct drm_device *dev, struct mm_struct *mm)
|
||||||
|
mmu->mm = mm;
|
||||||
|
mmu->objects = RB_ROOT;
|
||||||
|
mmu->count = 0;
|
||||||
|
- mmu->serial = 0;
|
||||||
|
+ mmu->serial = 1;
|
||||||
|
|
||||||
|
/* Protected by mmap_sem (write-lock) */
|
||||||
|
ret = __mmu_notifier_register(&mmu->mn, mm);
|
|
@ -389,3 +389,4 @@ bugfix/all/fold-swapping-d_name.hash-into-switch_names.patch
|
||||||
bugfix/all/vfs-Don-t-exchange-short-filenames-unconditionally.patch
|
bugfix/all/vfs-Don-t-exchange-short-filenames-unconditionally.patch
|
||||||
bugfix/all/qla2xxx-fix-kernel-NULL-pointer-access.patch
|
bugfix/all/qla2xxx-fix-kernel-NULL-pointer-access.patch
|
||||||
features/all/mmc_block-increase-max_devices.patch
|
features/all/mmc_block-increase-max_devices.patch
|
||||||
|
bugfix/x86/drm-i915-initialise-userptr-mmu_notifier-serial-to-1.patch
|
||||||
|
|
Loading…
Reference in New Issue