aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/cirrus/cirrus_fbdev.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/cirrus/cirrus_fbdev.c')
-rw-r--r--drivers/gpu/drm/cirrus/cirrus_fbdev.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/cirrus/cirrus_fbdev.c b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
index 3541b567bbd8..b27e95666fab 100644
--- a/drivers/gpu/drm/cirrus/cirrus_fbdev.c
+++ b/drivers/gpu/drm/cirrus/cirrus_fbdev.c
@@ -25,7 +25,7 @@ static void cirrus_dirty_update(struct cirrus_fbdev *afbdev,
25 struct cirrus_bo *bo; 25 struct cirrus_bo *bo;
26 int src_offset, dst_offset; 26 int src_offset, dst_offset;
27 int bpp = (afbdev->gfb.base.bits_per_pixel + 7)/8; 27 int bpp = (afbdev->gfb.base.bits_per_pixel + 7)/8;
28 int ret; 28 int ret = -EBUSY;
29 bool unmap = false; 29 bool unmap = false;
30 bool store_for_later = false; 30 bool store_for_later = false;
31 int x2, y2; 31 int x2, y2;
@@ -39,7 +39,8 @@ static void cirrus_dirty_update(struct cirrus_fbdev *afbdev,
39 * then the BO is being moved and we should 39 * then the BO is being moved and we should
40 * store up the damage until later. 40 * store up the damage until later.
41 */ 41 */
42 ret = cirrus_bo_reserve(bo, true); 42 if (!in_interrupt())
43 ret = cirrus_bo_reserve(bo, true);
43 if (ret) { 44 if (ret) {
44 if (ret != -EBUSY) 45 if (ret != -EBUSY)
45 return; 46 return;