Message ID | 7732724c87efabff6258732a13a934946bc6b8b1.1354815357.git.leann.ogasawara@canonical.com |
---|---|
State | New |
Headers | show |
On 12/06/2012 10:21 AM, leann.ogasawara@canonical.com wrote: > From: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com> > > BugLink: http://bugs.launchpad.net/bugs/1087302 > > Subsequent threads returning EBUSY from vm_insert_pfn() was not handled > correctly. As a result concurrent access from new threads to > mmapped data caused SIGBUS. > > Note that this fixes i-g-t/tests/gem_threaded_tiled_access. > > Tested-by: Mika Kuoppala <mika.kuoppala@intel.com> > Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com> > Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> > (cherry picked from commit e79e0fe380847493266fba557217e2773c61bd1b) > > Signed-off-by: Leann Ogasawara <leann.ogasawara@canonical.com> > --- > drivers/gpu/drm/i915/i915_gem.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index dbe4dbe..5950ba3 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -1259,6 +1259,11 @@ out: > case 0: > case -ERESTARTSYS: > case -EINTR: > + case -EBUSY: > + /* > + * EBUSY is ok: this just means that another thread > + * already did the job. > + */ > return VM_FAULT_NOPAGE; > case -ENOMEM: > return VM_FAULT_OOM; >
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index dbe4dbe..5950ba3 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -1259,6 +1259,11 @@ out: case 0: case -ERESTARTSYS: case -EINTR: + case -EBUSY: + /* + * EBUSY is ok: this just means that another thread + * already did the job. + */ return VM_FAULT_NOPAGE; case -ENOMEM: return VM_FAULT_OOM;