drm/panfrost: Fix a race in panfrost_ioctl_madvise()
authorBoris Brezillon <boris.brezillon@collabora.com>
Fri, 29 Nov 2019 13:59:02 +0000 (14:59 +0100)
committerRob Herring <robh@kernel.org>
Fri, 6 Dec 2019 17:05:52 +0000 (11:05 -0600)
commit70cc77952efebf6722d483cb83cfb563ac9768db
tree168d647aafe7a6c41b948ce3829ad68061a64148
parent22bd4df9dadf46f56f2eb16859439a7a600d106a
drm/panfrost: Fix a race in panfrost_ioctl_madvise()

If 2 threads change the MADVISE property of the same BO in parallel we
might end up with an shmem->madv value that's inconsistent with the
presence of the BO in the shrinker list.

The easiest solution to fix that is to protect the
drm_gem_shmem_madvise() call with the shrinker lock.

Fixes: 013b65101315 ("drm/panfrost: Add madvise and shrinker support")
Cc: <stable@vger.kernel.org>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20191129135908.2439529-3-boris.brezillon@collabora.com
drivers/gpu/drm/panfrost/panfrost_drv.c