diff options
Diffstat (limited to 'drivers/gpu/drm/drm_crtc_helper.c')
| -rw-r--r-- | drivers/gpu/drm/drm_crtc_helper.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c index df281b54db01..872ba11c4533 100644 --- a/drivers/gpu/drm/drm_crtc_helper.c +++ b/drivers/gpu/drm/drm_crtc_helper.c | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | * Jesse Barnes <jesse.barnes@intel.com> | 29 | * Jesse Barnes <jesse.barnes@intel.com> |
| 30 | */ | 30 | */ |
| 31 | 31 | ||
| 32 | #include <linux/kernel.h> | ||
| 32 | #include <linux/export.h> | 33 | #include <linux/export.h> |
| 33 | #include <linux/moduleparam.h> | 34 | #include <linux/moduleparam.h> |
| 34 | 35 | ||
| @@ -88,7 +89,13 @@ bool drm_helper_encoder_in_use(struct drm_encoder *encoder) | |||
| 88 | struct drm_connector *connector; | 89 | struct drm_connector *connector; |
| 89 | struct drm_device *dev = encoder->dev; | 90 | struct drm_device *dev = encoder->dev; |
| 90 | 91 | ||
| 91 | WARN_ON(!mutex_is_locked(&dev->mode_config.mutex)); | 92 | /* |
| 93 | * We can expect this mutex to be locked if we are not panicking. | ||
| 94 | * Locking is currently fubar in the panic handler. | ||
| 95 | */ | ||
| 96 | if (!oops_in_progress) | ||
| 97 | WARN_ON(!mutex_is_locked(&dev->mode_config.mutex)); | ||
| 98 | |||
| 92 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) | 99 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) |
| 93 | if (connector->encoder == encoder) | 100 | if (connector->encoder == encoder) |
| 94 | return true; | 101 | return true; |
| @@ -112,7 +119,13 @@ bool drm_helper_crtc_in_use(struct drm_crtc *crtc) | |||
| 112 | struct drm_encoder *encoder; | 119 | struct drm_encoder *encoder; |
| 113 | struct drm_device *dev = crtc->dev; | 120 | struct drm_device *dev = crtc->dev; |
| 114 | 121 | ||
| 115 | WARN_ON(!mutex_is_locked(&dev->mode_config.mutex)); | 122 | /* |
| 123 | * We can expect this mutex to be locked if we are not panicking. | ||
| 124 | * Locking is currently fubar in the panic handler. | ||
| 125 | */ | ||
| 126 | if (!oops_in_progress) | ||
| 127 | WARN_ON(!mutex_is_locked(&dev->mode_config.mutex)); | ||
| 128 | |||
| 116 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) | 129 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) |
| 117 | if (encoder->crtc == crtc && drm_helper_encoder_in_use(encoder)) | 130 | if (encoder->crtc == crtc && drm_helper_encoder_in_use(encoder)) |
| 118 | return true; | 131 | return true; |
