[PATCH 0/4] Important MST fixes for 4.6

From: Lyude
Date: Tue May 31 2016 - 12:50:26 EST


Unfortunately we've never really made use of creating/destroying connectors
on the fly like we have with MST, so 4.6 ended up showing a lot of various
bugs with hotplugging MST displays, booting with MST displays, etc. Most of
these bugs are very likely to panic the kernel, and a couple of them end up
even doing out of bounds memory accesses causing all sorts of other issues.

The proper fix for these issues is Dave's connector lifetime patch series
in 4.7-rc1[1], however backporting those patches would be too big of a fix
to submit for stable. This patch series is a much smaller set of changes to
workaround this issue.

As another note: the first two patches in this series are already upstream for
4.7-rc1, however since we have the connector ref lifetime patches in 4.7-rc1
they don't fix any kernel panics there, only a few inconsistencies in
i915/drm's code. They do however, fix kernel panics for 4.6 since connectors
getting destroyed can make dev->mode_config.num_connector have a different
value from fb_helper->connector_count.

[1]: 0552f7651bc233e5407ab06ba97a9d7c25e19580 in master

Lyude (4):
drm/i915/fbdev: Fix num_connector references in
intel_fb_initial_config()
drm/fb_helper: Fix references to dev->mode_config.num_connector
drm/i915: Discard previous atomic state on resume if connectors change
drm/atomic: Verify connector->funcs != NULL when clearing states

drivers/gpu/drm/drm_atomic.c | 2 +-
drivers/gpu/drm/drm_fb_helper.c | 5 ++---
drivers/gpu/drm/i915/intel_display.c | 12 ++++++++++++
drivers/gpu/drm/i915/intel_fbdev.c | 6 +++---
4 files changed, 18 insertions(+), 7 deletions(-)

--
2.5.5