| From 9103a2388d21401edcc8070a46315138ef6d002d Mon Sep 17 00:00:00 2001 |
| From: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Date: Thu, 8 Aug 2013 15:41:33 +0200 |
| Subject: drm: fix locking in gem debugfs/procfs file |
| |
| The idr is protected with our spinlock, if we don't hold that nothing |
| prevents the gem objects from disappearing from under us. |
| |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| Signed-off-by: Dave Airlie <airlied@redhat.com> |
| (cherry picked from commit 90254ac084a6465e46cdada933bf3a7e9ee90277) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/drm_info.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c |
| index f4b348c8f333..5351e811c421 100644 |
| --- a/drivers/gpu/drm/drm_info.c |
| +++ b/drivers/gpu/drm/drm_info.c |
| @@ -218,7 +218,11 @@ int drm_gem_name_info(struct seq_file *m, void *data) |
| struct drm_device *dev = node->minor->dev; |
| |
| seq_printf(m, " name size handles refcount\n"); |
| + |
| + spin_lock(&dev->object_name_lock); |
| idr_for_each(&dev->object_name_idr, drm_gem_one_name_info, m); |
| + spin_unlock(&dev->object_name_lock); |
| + |
| return 0; |
| } |
| |
| -- |
| 1.8.5.rc3 |
| |