[patch] drm/nouveau/disp: add a comment on confusing loop

walter harms wharms at bfs.de
Wed Nov 20 03:54:22 PST 2013



Am 13.11.2013 08:45, schrieb Dan Carpenter:
> The "ret = -EIO" is deliberate.  It's a very uncommon thing to do and it
> upsets static checkers because they normally would expect "ret == -EIO".
> 
> Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
> 
> diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c
> index 1bd4c63..2bc45ae 100644
> --- a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c
> +++ b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c
> @@ -322,6 +322,7 @@ nouveau_dp_train(struct nouveau_disp *disp, const struct nouveau_dp_func *func,
>  	while (*link_bw > (dp->dpcd[1] * 27000))
>  		link_bw++;
>  
> +	/* set ret to -EIO on the last loop iteration */
>  	while ((ret = -EIO) && link_bw[0]) {
>  		/* find minimum required lane count at this link rate */
>  		dp->link_nr = dp->dpcd[2] & DPCD_RC02_MAX_LANE_COUNT;


It is sensible to do so now,
but in the long runs it pays to rewrite that as it confuses not only
static checkers but also the brains of people trying to understand
the code.

just my 2 cents,
re,
 wh


More information about the dri-devel mailing list