diff options
Diffstat (limited to 'drivers/gpu/drm/cirrus/cirrus_fbdev.c')
-rw-r--r-- | drivers/gpu/drm/cirrus/cirrus_fbdev.c | 5 |
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; |