diff options
Diffstat (limited to 'drivers/gpu/drm/drm_fb_helper.c')
| -rw-r--r-- | drivers/gpu/drm/drm_fb_helper.c | 6 | 
1 files changed, 6 insertions, 0 deletions
| diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 3ab078321045..8e7a124d6c5a 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -1506,6 +1506,7 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,  {  	struct drm_client_dev *client = &fb_helper->client;  	struct drm_device *dev = fb_helper->dev; +	struct drm_mode_config *config = &dev->mode_config;  	int ret = 0;  	int crtc_count = 0;  	struct drm_connector_list_iter conn_iter; @@ -1663,6 +1664,11 @@ static int drm_fb_helper_single_fb_probe(struct drm_fb_helper *fb_helper,  	/* Handle our overallocation */  	sizes.surface_height *= drm_fbdev_overalloc;  	sizes.surface_height /= 100; +	if (sizes.surface_height > config->max_height) { +		drm_dbg_kms(dev, "Fbdev over-allocation too large; clamping height to %d\n", +			    config->max_height); +		sizes.surface_height = config->max_height; +	}  	/* push down into drivers */  	ret = (*fb_helper->funcs->fb_probe)(fb_helper, &sizes); | 
