diff options
-rw-r--r-- | drivers/gpu/drm/ast/ast_fb.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/gpu/drm/ast/ast_fb.c b/drivers/gpu/drm/ast/ast_fb.c index fbc0823cfa18..7b33e14e44aa 100644 --- a/drivers/gpu/drm/ast/ast_fb.c +++ b/drivers/gpu/drm/ast/ast_fb.c | |||
@@ -51,7 +51,7 @@ static void ast_dirty_update(struct ast_fbdev *afbdev, | |||
51 | struct ast_bo *bo; | 51 | struct ast_bo *bo; |
52 | int src_offset, dst_offset; | 52 | int src_offset, dst_offset; |
53 | int bpp = (afbdev->afb.base.bits_per_pixel + 7)/8; | 53 | int bpp = (afbdev->afb.base.bits_per_pixel + 7)/8; |
54 | int ret; | 54 | int ret = -EBUSY; |
55 | bool unmap = false; | 55 | bool unmap = false; |
56 | bool store_for_later = false; | 56 | bool store_for_later = false; |
57 | int x2, y2; | 57 | int x2, y2; |
@@ -65,7 +65,8 @@ static void ast_dirty_update(struct ast_fbdev *afbdev, | |||
65 | * then the BO is being moved and we should | 65 | * then the BO is being moved and we should |
66 | * store up the damage until later. | 66 | * store up the damage until later. |
67 | */ | 67 | */ |
68 | ret = ast_bo_reserve(bo, true); | 68 | if (!in_interrupt()) |
69 | ret = ast_bo_reserve(bo, true); | ||
69 | if (ret) { | 70 | if (ret) { |
70 | if (ret != -EBUSY) | 71 | if (ret != -EBUSY) |
71 | return; | 72 | return; |