projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
drm: rcar-du: Fix NULL encoder pointer dereference
[firefly-linux-kernel-4.4.55.git]
/
drivers
/
gpu
/
drm
/
rcar-du
/
rcar_du_hdmicon.c
diff --git
a/drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c
b/drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c
index 8abaaf258f459a66c5f3b812e2e622d1773d111d..4d7d4dd46d2603c6cc3d4f06958edac30d34a2a4 100644
(file)
--- a/
drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c
+++ b/
drivers/gpu/drm/rcar-du/rcar_du_hdmicon.c
@@
-25,7
+25,8
@@
static int rcar_du_hdmi_connector_get_modes(struct drm_connector *connector)
{
static int rcar_du_hdmi_connector_get_modes(struct drm_connector *connector)
{
- struct drm_encoder *encoder = connector->encoder;
+ struct rcar_du_connector *con = to_rcar_connector(connector);
+ struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(con->encoder);
struct drm_encoder_slave_funcs *sfuncs = to_slave_funcs(encoder);
if (sfuncs->get_modes == NULL)
struct drm_encoder_slave_funcs *sfuncs = to_slave_funcs(encoder);
if (sfuncs->get_modes == NULL)
@@
-37,7
+38,8
@@
static int rcar_du_hdmi_connector_get_modes(struct drm_connector *connector)
static int rcar_du_hdmi_connector_mode_valid(struct drm_connector *connector,
struct drm_display_mode *mode)
{
static int rcar_du_hdmi_connector_mode_valid(struct drm_connector *connector,
struct drm_display_mode *mode)
{
- struct drm_encoder *encoder = connector->encoder;
+ struct rcar_du_connector *con = to_rcar_connector(connector);
+ struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(con->encoder);
struct drm_encoder_slave_funcs *sfuncs = to_slave_funcs(encoder);
if (sfuncs->mode_valid == NULL)
struct drm_encoder_slave_funcs *sfuncs = to_slave_funcs(encoder);
if (sfuncs->mode_valid == NULL)
@@
-61,7
+63,8
@@
static void rcar_du_hdmi_connector_destroy(struct drm_connector *connector)
static enum drm_connector_status
rcar_du_hdmi_connector_detect(struct drm_connector *connector, bool force)
{
static enum drm_connector_status
rcar_du_hdmi_connector_detect(struct drm_connector *connector, bool force)
{
- struct drm_encoder *encoder = connector->encoder;
+ struct rcar_du_connector *con = to_rcar_connector(connector);
+ struct drm_encoder *encoder = rcar_encoder_to_drm_encoder(con->encoder);
struct drm_encoder_slave_funcs *sfuncs = to_slave_funcs(encoder);
if (sfuncs->detect == NULL)
struct drm_encoder_slave_funcs *sfuncs = to_slave_funcs(encoder);
if (sfuncs->detect == NULL)