Message ID | 20210918094157.4770-1-yangzhiwei@uniontech.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/radeon: fix uninitialized bool variable | expand |
Am 18.09.21 um 11:41 schrieb Zhiwei Yang: > The bool variable detected_hpd_without_ddc in struct radeon_connector > is uninitialized when first used, that may cause unnecessary ddc ops. > Make it as false when a new connector is alloced. > > Signed-off-by: Zhiwei Yang <yangzhiwei@uniontech.com> > --- > drivers/gpu/drm/radeon/radeon_connectors.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c > index fe12d9d91d7a..c1987a66373f 100644 > --- a/drivers/gpu/drm/radeon/radeon_connectors.c > +++ b/drivers/gpu/drm/radeon/radeon_connectors.c > @@ -1866,6 +1866,7 @@ radeon_add_atom_connector(struct drm_device *dev, > bool shared_ddc = false; > bool is_dp_bridge = false; > bool has_aux = false; > + bool detected_hpd_without_ddc = false; In general good catch, but I don't see the need for a local variable here. Just initialize the member directly or even better change the allocation of the connector into a kzalloc(). Christian. > > if (connector_type == DRM_MODE_CONNECTOR_Unknown) > return; > @@ -1923,6 +1924,7 @@ radeon_add_atom_connector(struct drm_device *dev, > radeon_connector->shared_ddc = shared_ddc; > radeon_connector->connector_object_id = connector_object_id; > radeon_connector->hpd = *hpd; > + radeon_connector->detected_hpd_without_ddc = detected_hpd_without_ddc; > > radeon_connector->router = *router; > if (router->ddc_valid || router->cd_valid) { > @@ -2384,6 +2386,7 @@ radeon_add_legacy_connector(struct drm_device *dev, > struct radeon_connector *radeon_connector; > struct i2c_adapter *ddc = NULL; > uint32_t subpixel_order = SubPixelNone; > + bool detected_hpd_without_ddc = false; > > if (connector_type == DRM_MODE_CONNECTOR_Unknown) > return; > @@ -2414,6 +2417,7 @@ radeon_add_legacy_connector(struct drm_device *dev, > radeon_connector->devices = supported_device; > radeon_connector->connector_object_id = connector_object_id; > radeon_connector->hpd = *hpd; > + radeon_connector->detected_hpd_without_ddc = detected_hpd_without_ddc; > > switch (connector_type) { > case DRM_MODE_CONNECTOR_VGA:
On Mon, Sep 20, 2021 at 3:44 AM Christian König <ckoenig.leichtzumerken@gmail.com> wrote: > > > > Am 18.09.21 um 11:41 schrieb Zhiwei Yang: > > The bool variable detected_hpd_without_ddc in struct radeon_connector > > is uninitialized when first used, that may cause unnecessary ddc ops. > > Make it as false when a new connector is alloced. > > > > Signed-off-by: Zhiwei Yang <yangzhiwei@uniontech.com> > > --- > > drivers/gpu/drm/radeon/radeon_connectors.c | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c > > index fe12d9d91d7a..c1987a66373f 100644 > > --- a/drivers/gpu/drm/radeon/radeon_connectors.c > > +++ b/drivers/gpu/drm/radeon/radeon_connectors.c > > @@ -1866,6 +1866,7 @@ radeon_add_atom_connector(struct drm_device *dev, > > bool shared_ddc = false; > > bool is_dp_bridge = false; > > bool has_aux = false; > > + bool detected_hpd_without_ddc = false; > > In general good catch, but I don't see the need for a local variable here. > > Just initialize the member directly or even better change the allocation > of the connector into a kzalloc(). This is already the case: radeon_connector = kzalloc(sizeof(struct radeon_connector), GFP_KERNEL); So I don't think this patch is necessary. Alex > > Christian. > > > > > if (connector_type == DRM_MODE_CONNECTOR_Unknown) > > return; > > @@ -1923,6 +1924,7 @@ radeon_add_atom_connector(struct drm_device *dev, > > radeon_connector->shared_ddc = shared_ddc; > > radeon_connector->connector_object_id = connector_object_id; > > radeon_connector->hpd = *hpd; > > + radeon_connector->detected_hpd_without_ddc = detected_hpd_without_ddc; > > > > radeon_connector->router = *router; > > if (router->ddc_valid || router->cd_valid) { > > @@ -2384,6 +2386,7 @@ radeon_add_legacy_connector(struct drm_device *dev, > > struct radeon_connector *radeon_connector; > > struct i2c_adapter *ddc = NULL; > > uint32_t subpixel_order = SubPixelNone; > > + bool detected_hpd_without_ddc = false; > > > > if (connector_type == DRM_MODE_CONNECTOR_Unknown) > > return; > > @@ -2414,6 +2417,7 @@ radeon_add_legacy_connector(struct drm_device *dev, > > radeon_connector->devices = supported_device; > > radeon_connector->connector_object_id = connector_object_id; > > radeon_connector->hpd = *hpd; > > + radeon_connector->detected_hpd_without_ddc = detected_hpd_without_ddc; > > > > switch (connector_type) { > > case DRM_MODE_CONNECTOR_VGA: >
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index fe12d9d91d7a..c1987a66373f 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c @@ -1866,6 +1866,7 @@ radeon_add_atom_connector(struct drm_device *dev, bool shared_ddc = false; bool is_dp_bridge = false; bool has_aux = false; + bool detected_hpd_without_ddc = false; if (connector_type == DRM_MODE_CONNECTOR_Unknown) return; @@ -1923,6 +1924,7 @@ radeon_add_atom_connector(struct drm_device *dev, radeon_connector->shared_ddc = shared_ddc; radeon_connector->connector_object_id = connector_object_id; radeon_connector->hpd = *hpd; + radeon_connector->detected_hpd_without_ddc = detected_hpd_without_ddc; radeon_connector->router = *router; if (router->ddc_valid || router->cd_valid) { @@ -2384,6 +2386,7 @@ radeon_add_legacy_connector(struct drm_device *dev, struct radeon_connector *radeon_connector; struct i2c_adapter *ddc = NULL; uint32_t subpixel_order = SubPixelNone; + bool detected_hpd_without_ddc = false; if (connector_type == DRM_MODE_CONNECTOR_Unknown) return; @@ -2414,6 +2417,7 @@ radeon_add_legacy_connector(struct drm_device *dev, radeon_connector->devices = supported_device; radeon_connector->connector_object_id = connector_object_id; radeon_connector->hpd = *hpd; + radeon_connector->detected_hpd_without_ddc = detected_hpd_without_ddc; switch (connector_type) { case DRM_MODE_CONNECTOR_VGA:
The bool variable detected_hpd_without_ddc in struct radeon_connector is uninitialized when first used, that may cause unnecessary ddc ops. Make it as false when a new connector is alloced. Signed-off-by: Zhiwei Yang <yangzhiwei@uniontech.com> --- drivers/gpu/drm/radeon/radeon_connectors.c | 4 ++++ 1 file changed, 4 insertions(+)