'sun4i_layers_init()' returns an error pointer in case of error, not NULL. So test it with IS_ERR.
Signed-off-by: Christophe JAILLET christophe.jaillet@wanadoo.fr --- drivers/gpu/drm/sun4i/sun4i_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c index 9776f0305834..628712e6edd6 100644 --- a/drivers/gpu/drm/sun4i/sun4i_drv.c +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c @@ -143,7 +143,7 @@ static int sun4i_drv_bind(struct device *dev)
/* Create our layers */ drv->layers = sun4i_layers_init(drm); - if (!drv->layers) { + if (IS_ERR(drv->layers)) { dev_err(drm->dev, "Couldn't create the planes\n"); ret = -EINVAL; goto free_drm;
Hi,
BTW, memory allocation in 'sun4i_layers_init()' looks spurious, especially the use of 'layer' in the for loop. Just my 2 cents.
I also forgot to say that we could propagate the error code returned by sun4i_layers_init instead of returning -EINVAL unconditionally
CJ
Le 30/10/2016 à 09:49, Christophe JAILLET a écrit :
'sun4i_layers_init()' returns an error pointer in case of error, not NULL. So test it with IS_ERR.
Signed-off-by: Christophe JAILLETchristophe.jaillet@wanadoo.fr
drivers/gpu/drm/sun4i/sun4i_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c index 9776f0305834..628712e6edd6 100644 --- a/drivers/gpu/drm/sun4i/sun4i_drv.c +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c @@ -143,7 +143,7 @@ static int sun4i_drv_bind(struct device *dev)
/* Create our layers */ drv->layers = sun4i_layers_init(drm);
- if (!drv->layers) {
- if (IS_ERR(drv->layers)) { dev_err(drm->dev, "Couldn't create the planes\n"); ret = -EINVAL; goto free_drm;
dri-devel@lists.freedesktop.org