On Sat, Jun 19, 2021 at 3:40 PM Dan Carpenter dan.carpenter@oracle.com wrote:
On Fri, Jun 18, 2021 at 07:35:24PM +0100, Colin King wrote:
From: Colin Ian King colin.king@canonical.com
Currently a loop scans through the connector list checking for connectors that do not match a specific criteria. The use of the continue statement is a little unintuitive and can confuse static analysis checking. Invert the criteria matching logic and use a break to terminate the loop once the first suitable connector has been found.
Thanks to Patrik Jakobsson for explaining the original intent of the code and suggesting this change.
Addresses-Coverity: ("Continue has no effect") Signed-off-by: Colin Ian King colin.king@canonical.com
drivers/gpu/drm/gma500/oaktrail_lvds.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/gma500/oaktrail_lvds.c b/drivers/gpu/drm/gma500/oaktrail_lvds.c index 432bdcc57ac9..8541dcf237eb 100644 --- a/drivers/gpu/drm/gma500/oaktrail_lvds.c +++ b/drivers/gpu/drm/gma500/oaktrail_lvds.c @@ -113,8 +113,8 @@ static void oaktrail_lvds_mode_set(struct drm_encoder *encoder,
/* Find the connector we're trying to set up */ list_for_each_entry(connector, &mode_config->connector_list, head) {
if (!connector->encoder || connector->encoder->crtc != crtc)
continue;
if (connector->encoder && connector->encoder->crtc == crtc)
break; } if (!connector) {
This test is wrong/impossible. It should be:
if (list_entry_is_head(connector, &mode_config->connector_list, head)) {
Right, we should be back at the head if no match was found. Actually, when looking closer, we should use drm_for_each_connector_iter() when walking the connector list together with proper locking.
-Patrik
regards, dan carpenter