Message ID | 20160921145919.13754-2-teg@jklm.no (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Sep 21, 2016 at 04:59:19PM +0200, Tom Gundersen wrote: > There are many reasons other than ENOMEM that drm_dev_init() can > fail. Return ERR_PTR rather than NULL to be able to distinguish > these in the caller. > > Signed-off-by: Tom Gundersen <teg@jklm.no> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> > --- > drivers/gpu/drm/arc/arcpgu_drv.c | 4 ++-- > drivers/gpu/drm/arm/hdlcd_drv.c | 4 ++-- > drivers/gpu/drm/arm/malidp_drv.c | 4 ++-- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++-- > drivers/gpu/drm/drm_drv.c | 6 +++--- > drivers/gpu/drm/drm_pci.c | 4 ++-- > drivers/gpu/drm/drm_platform.c | 4 ++-- > drivers/gpu/drm/etnaviv/etnaviv_drv.c | 4 ++-- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 ++-- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 4 ++-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 ++-- > drivers/gpu/drm/msm/msm_drv.c | 4 ++-- > drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ++-- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 4 ++-- > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ++-- > drivers/gpu/drm/sti/sti_drv.c | 4 ++-- > drivers/gpu/drm/sun4i/sun4i_drv.c | 4 ++-- > drivers/gpu/drm/tegra/drm.c | 4 ++-- > drivers/gpu/drm/udl/udl_drv.c | 4 ++-- > drivers/gpu/drm/vc4/vc4_drv.c | 4 ++-- > drivers/gpu/drm/vgem/vgem_drv.c | 4 ++-- > drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 4 ++-- > 22 files changed, 45 insertions(+), 45 deletions(-) > > diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c > index 6d4ff34..28e6471 100644 > --- a/drivers/gpu/drm/arc/arcpgu_drv.c > +++ b/drivers/gpu/drm/arc/arcpgu_drv.c > @@ -198,8 +198,8 @@ static int arcpgu_probe(struct platform_device *pdev) > int ret; > > drm = drm_dev_alloc(&arcpgu_drm_driver, &pdev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > ret = arcpgu_load(drm); > if (ret) > diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c > index d83b46a..fb6a418 100644 > --- a/drivers/gpu/drm/arm/hdlcd_drv.c > +++ b/drivers/gpu/drm/arm/hdlcd_drv.c > @@ -326,8 +326,8 @@ static int hdlcd_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&hdlcd_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = hdlcd; > dev_set_drvdata(dev, drm); > diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c > index c383d72..9280358 100644 > --- a/drivers/gpu/drm/arm/malidp_drv.c > +++ b/drivers/gpu/drm/arm/malidp_drv.c > @@ -311,8 +311,8 @@ static int malidp_bind(struct device *dev) > return ret; > > drm = drm_dev_alloc(&malidp_driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto alloc_fail; > } > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > index 8e7483d..5f48431 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > @@ -797,8 +797,8 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) > int ret; > > ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ret = atmel_hlcdc_dc_load(ddev); > if (ret) > diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c > index 99e6751..80c7f25 100644 > --- a/drivers/gpu/drm/drm_drv.c > +++ b/drivers/gpu/drm/drm_drv.c > @@ -591,7 +591,7 @@ EXPORT_SYMBOL(drm_dev_init); > * own struct should look at using drm_dev_init() instead. > * > * RETURNS: > - * Pointer to new DRM device, or NULL if out of memory. > + * Pointer to new DRM device, or ERR_PTR on failure. > */ > struct drm_device *drm_dev_alloc(struct drm_driver *driver, > struct device *parent) > @@ -601,12 +601,12 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver, > > dev = kzalloc(sizeof(*dev), GFP_KERNEL); > if (!dev) > - return NULL; > + return ERR_PTR(-ENOMEM); > > ret = drm_dev_init(dev, driver, parent); > if (ret) { > kfree(dev); > - return NULL; > + return ERR_PTR(ret); > } > > return dev; > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index d86362f..3ceea9c 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -236,8 +236,8 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &pdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > ret = pci_enable_device(pdev); > if (ret) > diff --git a/drivers/gpu/drm/drm_platform.c b/drivers/gpu/drm/drm_platform.c > index 2c819ef..0262698 100644 > --- a/drivers/gpu/drm/drm_platform.c > +++ b/drivers/gpu/drm/drm_platform.c > @@ -48,8 +48,8 @@ static int drm_get_platform_dev(struct platform_device *platdev, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &platdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > dev->platformdev = platdev; > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > index e3164d9..aa68766 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > @@ -529,8 +529,8 @@ static int etnaviv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&etnaviv_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > priv = kzalloc(sizeof(*priv), GFP_KERNEL); > if (!priv) { > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > index 7882387..0d2ae94 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > @@ -402,8 +402,8 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev) > fsl_dev->tcon = fsl_tcon_init(dev); > > drm = drm_dev_alloc(driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto disable_pix_clk; > } > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index 1fc2f50..90377a6 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -207,8 +207,8 @@ static int kirin_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > drm_dev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 72c1ae4..cf83f65 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -294,8 +294,8 @@ static int mtk_drm_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&mtk_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = private; > private->drm = drm; > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c > index 8a02370..042bde4 100644 > --- a/drivers/gpu/drm/msm/msm_drv.c > +++ b/drivers/gpu/drm/msm/msm_drv.c > @@ -347,9 +347,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) > int ret; > > ddev = drm_dev_alloc(drv, dev); > - if (!ddev) { > + if (IS_ERR(ddev)) { > dev_err(dev, "failed to allocate drm_device\n"); > - return -ENOMEM; > + return PTR_ERR(ddev); > } > > platform_set_drvdata(pdev, ddev); > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c > index 652ab11..3100fd88 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -1067,8 +1067,8 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func, > goto err_free; > > drm = drm_dev_alloc(&driver_platform, &pdev->dev); > - if (!drm) { > - err = -ENOMEM; > + if (IS_ERR(drm)) { > + err = PTR_ERR(drm); > goto err_free; > } > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > index 899ef7a..73c971e 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > @@ -316,8 +316,8 @@ static int rcar_du_probe(struct platform_device *pdev) > rcdu->info = of_match_device(rcar_du_of_table, rcdu->dev)->data; > > ddev = drm_dev_alloc(&rcar_du_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > rcdu->ddev = ddev; > ddev->dev_private = rcdu; > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > index 76eaf1d..446b5d7 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > @@ -143,8 +143,8 @@ static int rockchip_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > dev_set_drvdata(dev, drm_dev); > > diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c > index 7cd3804..49ed3c4 100644 > --- a/drivers/gpu/drm/sti/sti_drv.c > +++ b/drivers/gpu/drm/sti/sti_drv.c > @@ -365,8 +365,8 @@ static int sti_bind(struct device *dev) > int ret; > > ddev = drm_dev_alloc(&sti_driver, dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ddev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c > index 9059e3e..0da9862 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_drv.c > +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c > @@ -121,8 +121,8 @@ static int sun4i_drv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&sun4i_drv_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drv = devm_kzalloc(dev, sizeof(*drv), GFP_KERNEL); > if (!drv) { > diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c > index 4b9f1c7..8ab47b5 100644 > --- a/drivers/gpu/drm/tegra/drm.c > +++ b/drivers/gpu/drm/tegra/drm.c > @@ -983,8 +983,8 @@ static int host1x_drm_probe(struct host1x_device *dev) > int err; > > drm = drm_dev_alloc(driver, &dev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > dev_set_drvdata(&dev->dev, drm); > > diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c > index f0851db..cc45d98 100644 > --- a/drivers/gpu/drm/udl/udl_drv.c > +++ b/drivers/gpu/drm/udl/udl_drv.c > @@ -86,8 +86,8 @@ static int udl_usb_probe(struct usb_interface *interface, > int r; > > dev = drm_dev_alloc(&driver, &interface->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > r = drm_dev_register(dev, (unsigned long)udev); > if (r) > diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c > index deec535..3c9e7f6 100644 > --- a/drivers/gpu/drm/vc4/vc4_drv.c > +++ b/drivers/gpu/drm/vc4/vc4_drv.c > @@ -233,8 +233,8 @@ static int vc4_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&vc4_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > platform_set_drvdata(pdev, drm); > vc4->dev = drm; > drm->dev_private = vc4; > diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c > index c15bafb..f36c147 100644 > --- a/drivers/gpu/drm/vgem/vgem_drv.c > +++ b/drivers/gpu/drm/vgem/vgem_drv.c > @@ -334,8 +334,8 @@ static int __init vgem_init(void) > int ret; > > vgem_device = drm_dev_alloc(&vgem_driver, NULL); > - if (!vgem_device) { > - ret = -ENOMEM; > + if (IS_ERR(vgem_device)) { > + ret = PTR_ERR(vgem_device); > goto out; > } > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > index a59d0e3..26197dd 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > +++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > @@ -54,8 +54,8 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev) > int ret; > > dev = drm_dev_alloc(driver, &vdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > dev->virtdev = vdev; > vdev->priv = dev; > > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
Hey On Wed, Sep 21, 2016 at 4:59 PM, Tom Gundersen <teg@jklm.no> wrote: > There are many reasons other than ENOMEM that drm_dev_init() can > fail. Return ERR_PTR rather than NULL to be able to distinguish > these in the caller. > > Signed-off-by: Tom Gundersen <teg@jklm.no> > --- Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Thanks David > drivers/gpu/drm/arc/arcpgu_drv.c | 4 ++-- > drivers/gpu/drm/arm/hdlcd_drv.c | 4 ++-- > drivers/gpu/drm/arm/malidp_drv.c | 4 ++-- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++-- > drivers/gpu/drm/drm_drv.c | 6 +++--- > drivers/gpu/drm/drm_pci.c | 4 ++-- > drivers/gpu/drm/drm_platform.c | 4 ++-- > drivers/gpu/drm/etnaviv/etnaviv_drv.c | 4 ++-- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 ++-- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 4 ++-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 ++-- > drivers/gpu/drm/msm/msm_drv.c | 4 ++-- > drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ++-- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 4 ++-- > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ++-- > drivers/gpu/drm/sti/sti_drv.c | 4 ++-- > drivers/gpu/drm/sun4i/sun4i_drv.c | 4 ++-- > drivers/gpu/drm/tegra/drm.c | 4 ++-- > drivers/gpu/drm/udl/udl_drv.c | 4 ++-- > drivers/gpu/drm/vc4/vc4_drv.c | 4 ++-- > drivers/gpu/drm/vgem/vgem_drv.c | 4 ++-- > drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 4 ++-- > 22 files changed, 45 insertions(+), 45 deletions(-) > > diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c > index 6d4ff34..28e6471 100644 > --- a/drivers/gpu/drm/arc/arcpgu_drv.c > +++ b/drivers/gpu/drm/arc/arcpgu_drv.c > @@ -198,8 +198,8 @@ static int arcpgu_probe(struct platform_device *pdev) > int ret; > > drm = drm_dev_alloc(&arcpgu_drm_driver, &pdev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > ret = arcpgu_load(drm); > if (ret) > diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c > index d83b46a..fb6a418 100644 > --- a/drivers/gpu/drm/arm/hdlcd_drv.c > +++ b/drivers/gpu/drm/arm/hdlcd_drv.c > @@ -326,8 +326,8 @@ static int hdlcd_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&hdlcd_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = hdlcd; > dev_set_drvdata(dev, drm); > diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c > index c383d72..9280358 100644 > --- a/drivers/gpu/drm/arm/malidp_drv.c > +++ b/drivers/gpu/drm/arm/malidp_drv.c > @@ -311,8 +311,8 @@ static int malidp_bind(struct device *dev) > return ret; > > drm = drm_dev_alloc(&malidp_driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto alloc_fail; > } > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > index 8e7483d..5f48431 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > @@ -797,8 +797,8 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) > int ret; > > ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ret = atmel_hlcdc_dc_load(ddev); > if (ret) > diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c > index 99e6751..80c7f25 100644 > --- a/drivers/gpu/drm/drm_drv.c > +++ b/drivers/gpu/drm/drm_drv.c > @@ -591,7 +591,7 @@ EXPORT_SYMBOL(drm_dev_init); > * own struct should look at using drm_dev_init() instead. > * > * RETURNS: > - * Pointer to new DRM device, or NULL if out of memory. > + * Pointer to new DRM device, or ERR_PTR on failure. > */ > struct drm_device *drm_dev_alloc(struct drm_driver *driver, > struct device *parent) > @@ -601,12 +601,12 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver, > > dev = kzalloc(sizeof(*dev), GFP_KERNEL); > if (!dev) > - return NULL; > + return ERR_PTR(-ENOMEM); > > ret = drm_dev_init(dev, driver, parent); > if (ret) { > kfree(dev); > - return NULL; > + return ERR_PTR(ret); > } > > return dev; > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index d86362f..3ceea9c 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -236,8 +236,8 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &pdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > ret = pci_enable_device(pdev); > if (ret) > diff --git a/drivers/gpu/drm/drm_platform.c b/drivers/gpu/drm/drm_platform.c > index 2c819ef..0262698 100644 > --- a/drivers/gpu/drm/drm_platform.c > +++ b/drivers/gpu/drm/drm_platform.c > @@ -48,8 +48,8 @@ static int drm_get_platform_dev(struct platform_device *platdev, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &platdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > dev->platformdev = platdev; > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > index e3164d9..aa68766 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > @@ -529,8 +529,8 @@ static int etnaviv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&etnaviv_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > priv = kzalloc(sizeof(*priv), GFP_KERNEL); > if (!priv) { > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > index 7882387..0d2ae94 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > @@ -402,8 +402,8 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev) > fsl_dev->tcon = fsl_tcon_init(dev); > > drm = drm_dev_alloc(driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto disable_pix_clk; > } > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index 1fc2f50..90377a6 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -207,8 +207,8 @@ static int kirin_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > drm_dev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 72c1ae4..cf83f65 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -294,8 +294,8 @@ static int mtk_drm_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&mtk_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = private; > private->drm = drm; > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c > index 8a02370..042bde4 100644 > --- a/drivers/gpu/drm/msm/msm_drv.c > +++ b/drivers/gpu/drm/msm/msm_drv.c > @@ -347,9 +347,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) > int ret; > > ddev = drm_dev_alloc(drv, dev); > - if (!ddev) { > + if (IS_ERR(ddev)) { > dev_err(dev, "failed to allocate drm_device\n"); > - return -ENOMEM; > + return PTR_ERR(ddev); > } > > platform_set_drvdata(pdev, ddev); > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c > index 652ab11..3100fd88 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -1067,8 +1067,8 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func, > goto err_free; > > drm = drm_dev_alloc(&driver_platform, &pdev->dev); > - if (!drm) { > - err = -ENOMEM; > + if (IS_ERR(drm)) { > + err = PTR_ERR(drm); > goto err_free; > } > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > index 899ef7a..73c971e 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > @@ -316,8 +316,8 @@ static int rcar_du_probe(struct platform_device *pdev) > rcdu->info = of_match_device(rcar_du_of_table, rcdu->dev)->data; > > ddev = drm_dev_alloc(&rcar_du_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > rcdu->ddev = ddev; > ddev->dev_private = rcdu; > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > index 76eaf1d..446b5d7 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > @@ -143,8 +143,8 @@ static int rockchip_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > dev_set_drvdata(dev, drm_dev); > > diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c > index 7cd3804..49ed3c4 100644 > --- a/drivers/gpu/drm/sti/sti_drv.c > +++ b/drivers/gpu/drm/sti/sti_drv.c > @@ -365,8 +365,8 @@ static int sti_bind(struct device *dev) > int ret; > > ddev = drm_dev_alloc(&sti_driver, dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ddev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c > index 9059e3e..0da9862 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_drv.c > +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c > @@ -121,8 +121,8 @@ static int sun4i_drv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&sun4i_drv_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drv = devm_kzalloc(dev, sizeof(*drv), GFP_KERNEL); > if (!drv) { > diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c > index 4b9f1c7..8ab47b5 100644 > --- a/drivers/gpu/drm/tegra/drm.c > +++ b/drivers/gpu/drm/tegra/drm.c > @@ -983,8 +983,8 @@ static int host1x_drm_probe(struct host1x_device *dev) > int err; > > drm = drm_dev_alloc(driver, &dev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > dev_set_drvdata(&dev->dev, drm); > > diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c > index f0851db..cc45d98 100644 > --- a/drivers/gpu/drm/udl/udl_drv.c > +++ b/drivers/gpu/drm/udl/udl_drv.c > @@ -86,8 +86,8 @@ static int udl_usb_probe(struct usb_interface *interface, > int r; > > dev = drm_dev_alloc(&driver, &interface->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > r = drm_dev_register(dev, (unsigned long)udev); > if (r) > diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c > index deec535..3c9e7f6 100644 > --- a/drivers/gpu/drm/vc4/vc4_drv.c > +++ b/drivers/gpu/drm/vc4/vc4_drv.c > @@ -233,8 +233,8 @@ static int vc4_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&vc4_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > platform_set_drvdata(pdev, drm); > vc4->dev = drm; > drm->dev_private = vc4; > diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c > index c15bafb..f36c147 100644 > --- a/drivers/gpu/drm/vgem/vgem_drv.c > +++ b/drivers/gpu/drm/vgem/vgem_drv.c > @@ -334,8 +334,8 @@ static int __init vgem_init(void) > int ret; > > vgem_device = drm_dev_alloc(&vgem_driver, NULL); > - if (!vgem_device) { > - ret = -ENOMEM; > + if (IS_ERR(vgem_device)) { > + ret = PTR_ERR(vgem_device); > goto out; > } > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > index a59d0e3..26197dd 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > +++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > @@ -54,8 +54,8 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev) > int ret; > > dev = drm_dev_alloc(driver, &vdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > dev->virtdev = vdev; > vdev->priv = dev; > > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
On Wed, Sep 21, 2016 at 04:59:19PM +0200, Tom Gundersen wrote: > There are many reasons other than ENOMEM that drm_dev_init() can > fail. Return ERR_PTR rather than NULL to be able to distinguish > these in the caller. > > Signed-off-by: Tom Gundersen <teg@jklm.no> Looks good to me :) Assuming you fixed all the drm_dev_alloc() calls, which a quick grep seems to confirm, this series is: Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> BTW, this looks like a task for coccinelle; is that what you used? If so, you could include your .cocci patch in the commit msg? Cheers, Eric > --- > drivers/gpu/drm/arc/arcpgu_drv.c | 4 ++-- > drivers/gpu/drm/arm/hdlcd_drv.c | 4 ++-- > drivers/gpu/drm/arm/malidp_drv.c | 4 ++-- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++-- > drivers/gpu/drm/drm_drv.c | 6 +++--- > drivers/gpu/drm/drm_pci.c | 4 ++-- > drivers/gpu/drm/drm_platform.c | 4 ++-- > drivers/gpu/drm/etnaviv/etnaviv_drv.c | 4 ++-- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 ++-- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 4 ++-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 ++-- > drivers/gpu/drm/msm/msm_drv.c | 4 ++-- > drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ++-- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 4 ++-- > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ++-- > drivers/gpu/drm/sti/sti_drv.c | 4 ++-- > drivers/gpu/drm/sun4i/sun4i_drv.c | 4 ++-- > drivers/gpu/drm/tegra/drm.c | 4 ++-- > drivers/gpu/drm/udl/udl_drv.c | 4 ++-- > drivers/gpu/drm/vc4/vc4_drv.c | 4 ++-- > drivers/gpu/drm/vgem/vgem_drv.c | 4 ++-- > drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 4 ++-- > 22 files changed, 45 insertions(+), 45 deletions(-) > > diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c > index 6d4ff34..28e6471 100644 > --- a/drivers/gpu/drm/arc/arcpgu_drv.c > +++ b/drivers/gpu/drm/arc/arcpgu_drv.c > @@ -198,8 +198,8 @@ static int arcpgu_probe(struct platform_device *pdev) > int ret; > > drm = drm_dev_alloc(&arcpgu_drm_driver, &pdev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > ret = arcpgu_load(drm); > if (ret) > diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c > index d83b46a..fb6a418 100644 > --- a/drivers/gpu/drm/arm/hdlcd_drv.c > +++ b/drivers/gpu/drm/arm/hdlcd_drv.c > @@ -326,8 +326,8 @@ static int hdlcd_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&hdlcd_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = hdlcd; > dev_set_drvdata(dev, drm); > diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c > index c383d72..9280358 100644 > --- a/drivers/gpu/drm/arm/malidp_drv.c > +++ b/drivers/gpu/drm/arm/malidp_drv.c > @@ -311,8 +311,8 @@ static int malidp_bind(struct device *dev) > return ret; > > drm = drm_dev_alloc(&malidp_driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto alloc_fail; > } > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > index 8e7483d..5f48431 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > @@ -797,8 +797,8 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) > int ret; > > ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ret = atmel_hlcdc_dc_load(ddev); > if (ret) > diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c > index 99e6751..80c7f25 100644 > --- a/drivers/gpu/drm/drm_drv.c > +++ b/drivers/gpu/drm/drm_drv.c > @@ -591,7 +591,7 @@ EXPORT_SYMBOL(drm_dev_init); > * own struct should look at using drm_dev_init() instead. > * > * RETURNS: > - * Pointer to new DRM device, or NULL if out of memory. > + * Pointer to new DRM device, or ERR_PTR on failure. > */ > struct drm_device *drm_dev_alloc(struct drm_driver *driver, > struct device *parent) > @@ -601,12 +601,12 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver, > > dev = kzalloc(sizeof(*dev), GFP_KERNEL); > if (!dev) > - return NULL; > + return ERR_PTR(-ENOMEM); > > ret = drm_dev_init(dev, driver, parent); > if (ret) { > kfree(dev); > - return NULL; > + return ERR_PTR(ret); > } > > return dev; > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index d86362f..3ceea9c 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -236,8 +236,8 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &pdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > ret = pci_enable_device(pdev); > if (ret) > diff --git a/drivers/gpu/drm/drm_platform.c b/drivers/gpu/drm/drm_platform.c > index 2c819ef..0262698 100644 > --- a/drivers/gpu/drm/drm_platform.c > +++ b/drivers/gpu/drm/drm_platform.c > @@ -48,8 +48,8 @@ static int drm_get_platform_dev(struct platform_device *platdev, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &platdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > dev->platformdev = platdev; > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > index e3164d9..aa68766 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > @@ -529,8 +529,8 @@ static int etnaviv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&etnaviv_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > priv = kzalloc(sizeof(*priv), GFP_KERNEL); > if (!priv) { > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > index 7882387..0d2ae94 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > @@ -402,8 +402,8 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev) > fsl_dev->tcon = fsl_tcon_init(dev); > > drm = drm_dev_alloc(driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto disable_pix_clk; > } > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index 1fc2f50..90377a6 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -207,8 +207,8 @@ static int kirin_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > drm_dev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 72c1ae4..cf83f65 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -294,8 +294,8 @@ static int mtk_drm_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&mtk_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = private; > private->drm = drm; > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c > index 8a02370..042bde4 100644 > --- a/drivers/gpu/drm/msm/msm_drv.c > +++ b/drivers/gpu/drm/msm/msm_drv.c > @@ -347,9 +347,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) > int ret; > > ddev = drm_dev_alloc(drv, dev); > - if (!ddev) { > + if (IS_ERR(ddev)) { > dev_err(dev, "failed to allocate drm_device\n"); > - return -ENOMEM; > + return PTR_ERR(ddev); > } > > platform_set_drvdata(pdev, ddev); > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c > index 652ab11..3100fd88 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -1067,8 +1067,8 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func, > goto err_free; > > drm = drm_dev_alloc(&driver_platform, &pdev->dev); > - if (!drm) { > - err = -ENOMEM; > + if (IS_ERR(drm)) { > + err = PTR_ERR(drm); > goto err_free; > } > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > index 899ef7a..73c971e 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > @@ -316,8 +316,8 @@ static int rcar_du_probe(struct platform_device *pdev) > rcdu->info = of_match_device(rcar_du_of_table, rcdu->dev)->data; > > ddev = drm_dev_alloc(&rcar_du_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > rcdu->ddev = ddev; > ddev->dev_private = rcdu; > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > index 76eaf1d..446b5d7 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > @@ -143,8 +143,8 @@ static int rockchip_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > dev_set_drvdata(dev, drm_dev); > > diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c > index 7cd3804..49ed3c4 100644 > --- a/drivers/gpu/drm/sti/sti_drv.c > +++ b/drivers/gpu/drm/sti/sti_drv.c > @@ -365,8 +365,8 @@ static int sti_bind(struct device *dev) > int ret; > > ddev = drm_dev_alloc(&sti_driver, dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ddev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c > index 9059e3e..0da9862 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_drv.c > +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c > @@ -121,8 +121,8 @@ static int sun4i_drv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&sun4i_drv_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drv = devm_kzalloc(dev, sizeof(*drv), GFP_KERNEL); > if (!drv) { > diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c > index 4b9f1c7..8ab47b5 100644 > --- a/drivers/gpu/drm/tegra/drm.c > +++ b/drivers/gpu/drm/tegra/drm.c > @@ -983,8 +983,8 @@ static int host1x_drm_probe(struct host1x_device *dev) > int err; > > drm = drm_dev_alloc(driver, &dev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > dev_set_drvdata(&dev->dev, drm); > > diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c > index f0851db..cc45d98 100644 > --- a/drivers/gpu/drm/udl/udl_drv.c > +++ b/drivers/gpu/drm/udl/udl_drv.c > @@ -86,8 +86,8 @@ static int udl_usb_probe(struct usb_interface *interface, > int r; > > dev = drm_dev_alloc(&driver, &interface->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > r = drm_dev_register(dev, (unsigned long)udev); > if (r) > diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c > index deec535..3c9e7f6 100644 > --- a/drivers/gpu/drm/vc4/vc4_drv.c > +++ b/drivers/gpu/drm/vc4/vc4_drv.c > @@ -233,8 +233,8 @@ static int vc4_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&vc4_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > platform_set_drvdata(pdev, drm); > vc4->dev = drm; > drm->dev_private = vc4; > diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c > index c15bafb..f36c147 100644 > --- a/drivers/gpu/drm/vgem/vgem_drv.c > +++ b/drivers/gpu/drm/vgem/vgem_drv.c > @@ -334,8 +334,8 @@ static int __init vgem_init(void) > int ret; > > vgem_device = drm_dev_alloc(&vgem_driver, NULL); > - if (!vgem_device) { > - ret = -ENOMEM; > + if (IS_ERR(vgem_device)) { > + ret = PTR_ERR(vgem_device); > goto out; > } > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > index a59d0e3..26197dd 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > +++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > @@ -54,8 +54,8 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev) > int ret; > > dev = drm_dev_alloc(driver, &vdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > dev->virtdev = vdev; > vdev->priv = dev; > > -- > 2.9.3
On Thu, Sep 22, 2016 at 11:47 AM, Eric Engestrom <eric.engestrom@imgtec.com> wrote: > On Wed, Sep 21, 2016 at 04:59:19PM +0200, Tom Gundersen wrote: >> There are many reasons other than ENOMEM that drm_dev_init() can >> fail. Return ERR_PTR rather than NULL to be able to distinguish >> these in the caller. >> >> Signed-off-by: Tom Gundersen <teg@jklm.no> > > Looks good to me :) > Assuming you fixed all the drm_dev_alloc() calls, which a quick grep > seems to confirm, this series is: > Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Thanks. > BTW, this looks like a task for coccinelle; is that what you used? > If so, you could include your .cocci patch in the commit msg? Probably could have used coccinelle, though I just did git grep and fixed it up manually. Cheers, Tom > Cheers, > Eric > >> --- >> drivers/gpu/drm/arc/arcpgu_drv.c | 4 ++-- >> drivers/gpu/drm/arm/hdlcd_drv.c | 4 ++-- >> drivers/gpu/drm/arm/malidp_drv.c | 4 ++-- >> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++-- >> drivers/gpu/drm/drm_drv.c | 6 +++--- >> drivers/gpu/drm/drm_pci.c | 4 ++-- >> drivers/gpu/drm/drm_platform.c | 4 ++-- >> drivers/gpu/drm/etnaviv/etnaviv_drv.c | 4 ++-- >> drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 ++-- >> drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 4 ++-- >> drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 ++-- >> drivers/gpu/drm/msm/msm_drv.c | 4 ++-- >> drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ++-- >> drivers/gpu/drm/rcar-du/rcar_du_drv.c | 4 ++-- >> drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ++-- >> drivers/gpu/drm/sti/sti_drv.c | 4 ++-- >> drivers/gpu/drm/sun4i/sun4i_drv.c | 4 ++-- >> drivers/gpu/drm/tegra/drm.c | 4 ++-- >> drivers/gpu/drm/udl/udl_drv.c | 4 ++-- >> drivers/gpu/drm/vc4/vc4_drv.c | 4 ++-- >> drivers/gpu/drm/vgem/vgem_drv.c | 4 ++-- >> drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 4 ++-- >> 22 files changed, 45 insertions(+), 45 deletions(-) >> >> diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c >> index 6d4ff34..28e6471 100644 >> --- a/drivers/gpu/drm/arc/arcpgu_drv.c >> +++ b/drivers/gpu/drm/arc/arcpgu_drv.c >> @@ -198,8 +198,8 @@ static int arcpgu_probe(struct platform_device *pdev) >> int ret; >> >> drm = drm_dev_alloc(&arcpgu_drm_driver, &pdev->dev); >> - if (!drm) >> - return -ENOMEM; >> + if (IS_ERR(drm)) >> + return PTR_ERR(drm); >> >> ret = arcpgu_load(drm); >> if (ret) >> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c >> index d83b46a..fb6a418 100644 >> --- a/drivers/gpu/drm/arm/hdlcd_drv.c >> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c >> @@ -326,8 +326,8 @@ static int hdlcd_drm_bind(struct device *dev) >> return -ENOMEM; >> >> drm = drm_dev_alloc(&hdlcd_driver, dev); >> - if (!drm) >> - return -ENOMEM; >> + if (IS_ERR(drm)) >> + return PTR_ERR(drm); >> >> drm->dev_private = hdlcd; >> dev_set_drvdata(dev, drm); >> diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c >> index c383d72..9280358 100644 >> --- a/drivers/gpu/drm/arm/malidp_drv.c >> +++ b/drivers/gpu/drm/arm/malidp_drv.c >> @@ -311,8 +311,8 @@ static int malidp_bind(struct device *dev) >> return ret; >> >> drm = drm_dev_alloc(&malidp_driver, dev); >> - if (!drm) { >> - ret = -ENOMEM; >> + if (IS_ERR(drm)) { >> + ret = PTR_ERR(drm); >> goto alloc_fail; >> } >> >> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c >> index 8e7483d..5f48431 100644 >> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c >> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c >> @@ -797,8 +797,8 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) >> int ret; >> >> ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); >> - if (!ddev) >> - return -ENOMEM; >> + if (IS_ERR(ddev)) >> + return PTR_ERR(ddev); >> >> ret = atmel_hlcdc_dc_load(ddev); >> if (ret) >> diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c >> index 99e6751..80c7f25 100644 >> --- a/drivers/gpu/drm/drm_drv.c >> +++ b/drivers/gpu/drm/drm_drv.c >> @@ -591,7 +591,7 @@ EXPORT_SYMBOL(drm_dev_init); >> * own struct should look at using drm_dev_init() instead. >> * >> * RETURNS: >> - * Pointer to new DRM device, or NULL if out of memory. >> + * Pointer to new DRM device, or ERR_PTR on failure. >> */ >> struct drm_device *drm_dev_alloc(struct drm_driver *driver, >> struct device *parent) >> @@ -601,12 +601,12 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver, >> >> dev = kzalloc(sizeof(*dev), GFP_KERNEL); >> if (!dev) >> - return NULL; >> + return ERR_PTR(-ENOMEM); >> >> ret = drm_dev_init(dev, driver, parent); >> if (ret) { >> kfree(dev); >> - return NULL; >> + return ERR_PTR(ret); >> } >> >> return dev; >> diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c >> index d86362f..3ceea9c 100644 >> --- a/drivers/gpu/drm/drm_pci.c >> +++ b/drivers/gpu/drm/drm_pci.c >> @@ -236,8 +236,8 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, >> DRM_DEBUG("\n"); >> >> dev = drm_dev_alloc(driver, &pdev->dev); >> - if (!dev) >> - return -ENOMEM; >> + if (IS_ERR(dev)) >> + return PTR_ERR(dev); >> >> ret = pci_enable_device(pdev); >> if (ret) >> diff --git a/drivers/gpu/drm/drm_platform.c b/drivers/gpu/drm/drm_platform.c >> index 2c819ef..0262698 100644 >> --- a/drivers/gpu/drm/drm_platform.c >> +++ b/drivers/gpu/drm/drm_platform.c >> @@ -48,8 +48,8 @@ static int drm_get_platform_dev(struct platform_device *platdev, >> DRM_DEBUG("\n"); >> >> dev = drm_dev_alloc(driver, &platdev->dev); >> - if (!dev) >> - return -ENOMEM; >> + if (IS_ERR(dev)) >> + return PTR_ERR(dev); >> >> dev->platformdev = platdev; >> >> diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c >> index e3164d9..aa68766 100644 >> --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c >> +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c >> @@ -529,8 +529,8 @@ static int etnaviv_bind(struct device *dev) >> int ret; >> >> drm = drm_dev_alloc(&etnaviv_drm_driver, dev); >> - if (!drm) >> - return -ENOMEM; >> + if (IS_ERR(drm)) >> + return PTR_ERR(drm); >> >> priv = kzalloc(sizeof(*priv), GFP_KERNEL); >> if (!priv) { >> diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c >> index 7882387..0d2ae94 100644 >> --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c >> +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c >> @@ -402,8 +402,8 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev) >> fsl_dev->tcon = fsl_tcon_init(dev); >> >> drm = drm_dev_alloc(driver, dev); >> - if (!drm) { >> - ret = -ENOMEM; >> + if (IS_ERR(drm)) { >> + ret = PTR_ERR(drm); >> goto disable_pix_clk; >> } >> >> diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> index 1fc2f50..90377a6 100644 >> --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c >> @@ -207,8 +207,8 @@ static int kirin_drm_bind(struct device *dev) >> int ret; >> >> drm_dev = drm_dev_alloc(driver, dev); >> - if (!drm_dev) >> - return -ENOMEM; >> + if (IS_ERR(drm_dev)) >> + return PTR_ERR(drm_dev); >> >> drm_dev->platformdev = to_platform_device(dev); >> >> diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c >> index 72c1ae4..cf83f65 100644 >> --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c >> +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c >> @@ -294,8 +294,8 @@ static int mtk_drm_bind(struct device *dev) >> int ret; >> >> drm = drm_dev_alloc(&mtk_drm_driver, dev); >> - if (!drm) >> - return -ENOMEM; >> + if (IS_ERR(drm)) >> + return PTR_ERR(drm); >> >> drm->dev_private = private; >> private->drm = drm; >> diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c >> index 8a02370..042bde4 100644 >> --- a/drivers/gpu/drm/msm/msm_drv.c >> +++ b/drivers/gpu/drm/msm/msm_drv.c >> @@ -347,9 +347,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) >> int ret; >> >> ddev = drm_dev_alloc(drv, dev); >> - if (!ddev) { >> + if (IS_ERR(ddev)) { >> dev_err(dev, "failed to allocate drm_device\n"); >> - return -ENOMEM; >> + return PTR_ERR(ddev); >> } >> >> platform_set_drvdata(pdev, ddev); >> diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c >> index 652ab11..3100fd88 100644 >> --- a/drivers/gpu/drm/nouveau/nouveau_drm.c >> +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c >> @@ -1067,8 +1067,8 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func, >> goto err_free; >> >> drm = drm_dev_alloc(&driver_platform, &pdev->dev); >> - if (!drm) { >> - err = -ENOMEM; >> + if (IS_ERR(drm)) { >> + err = PTR_ERR(drm); >> goto err_free; >> } >> >> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c >> index 899ef7a..73c971e 100644 >> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c >> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c >> @@ -316,8 +316,8 @@ static int rcar_du_probe(struct platform_device *pdev) >> rcdu->info = of_match_device(rcar_du_of_table, rcdu->dev)->data; >> >> ddev = drm_dev_alloc(&rcar_du_driver, &pdev->dev); >> - if (!ddev) >> - return -ENOMEM; >> + if (IS_ERR(ddev)) >> + return PTR_ERR(ddev); >> >> rcdu->ddev = ddev; >> ddev->dev_private = rcdu; >> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >> index 76eaf1d..446b5d7 100644 >> --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c >> @@ -143,8 +143,8 @@ static int rockchip_drm_bind(struct device *dev) >> int ret; >> >> drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev); >> - if (!drm_dev) >> - return -ENOMEM; >> + if (IS_ERR(drm_dev)) >> + return PTR_ERR(drm_dev); >> >> dev_set_drvdata(dev, drm_dev); >> >> diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c >> index 7cd3804..49ed3c4 100644 >> --- a/drivers/gpu/drm/sti/sti_drv.c >> +++ b/drivers/gpu/drm/sti/sti_drv.c >> @@ -365,8 +365,8 @@ static int sti_bind(struct device *dev) >> int ret; >> >> ddev = drm_dev_alloc(&sti_driver, dev); >> - if (!ddev) >> - return -ENOMEM; >> + if (IS_ERR(ddev)) >> + return PTR_ERR(ddev); >> >> ddev->platformdev = to_platform_device(dev); >> >> diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c >> index 9059e3e..0da9862 100644 >> --- a/drivers/gpu/drm/sun4i/sun4i_drv.c >> +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c >> @@ -121,8 +121,8 @@ static int sun4i_drv_bind(struct device *dev) >> int ret; >> >> drm = drm_dev_alloc(&sun4i_drv_driver, dev); >> - if (!drm) >> - return -ENOMEM; >> + if (IS_ERR(drm)) >> + return PTR_ERR(drm); >> >> drv = devm_kzalloc(dev, sizeof(*drv), GFP_KERNEL); >> if (!drv) { >> diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c >> index 4b9f1c7..8ab47b5 100644 >> --- a/drivers/gpu/drm/tegra/drm.c >> +++ b/drivers/gpu/drm/tegra/drm.c >> @@ -983,8 +983,8 @@ static int host1x_drm_probe(struct host1x_device *dev) >> int err; >> >> drm = drm_dev_alloc(driver, &dev->dev); >> - if (!drm) >> - return -ENOMEM; >> + if (IS_ERR(drm)) >> + return PTR_ERR(drm); >> >> dev_set_drvdata(&dev->dev, drm); >> >> diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c >> index f0851db..cc45d98 100644 >> --- a/drivers/gpu/drm/udl/udl_drv.c >> +++ b/drivers/gpu/drm/udl/udl_drv.c >> @@ -86,8 +86,8 @@ static int udl_usb_probe(struct usb_interface *interface, >> int r; >> >> dev = drm_dev_alloc(&driver, &interface->dev); >> - if (!dev) >> - return -ENOMEM; >> + if (IS_ERR(dev)) >> + return PTR_ERR(dev); >> >> r = drm_dev_register(dev, (unsigned long)udev); >> if (r) >> diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c >> index deec535..3c9e7f6 100644 >> --- a/drivers/gpu/drm/vc4/vc4_drv.c >> +++ b/drivers/gpu/drm/vc4/vc4_drv.c >> @@ -233,8 +233,8 @@ static int vc4_drm_bind(struct device *dev) >> return -ENOMEM; >> >> drm = drm_dev_alloc(&vc4_drm_driver, dev); >> - if (!drm) >> - return -ENOMEM; >> + if (IS_ERR(drm)) >> + return PTR_ERR(drm); >> platform_set_drvdata(pdev, drm); >> vc4->dev = drm; >> drm->dev_private = vc4; >> diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c >> index c15bafb..f36c147 100644 >> --- a/drivers/gpu/drm/vgem/vgem_drv.c >> +++ b/drivers/gpu/drm/vgem/vgem_drv.c >> @@ -334,8 +334,8 @@ static int __init vgem_init(void) >> int ret; >> >> vgem_device = drm_dev_alloc(&vgem_driver, NULL); >> - if (!vgem_device) { >> - ret = -ENOMEM; >> + if (IS_ERR(vgem_device)) { >> + ret = PTR_ERR(vgem_device); >> goto out; >> } >> >> diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c >> index a59d0e3..26197dd 100644 >> --- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c >> +++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c >> @@ -54,8 +54,8 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev) >> int ret; >> >> dev = drm_dev_alloc(driver, &vdev->dev); >> - if (!dev) >> - return -ENOMEM; >> + if (IS_ERR(dev)) >> + return PTR_ERR(dev); >> dev->virtdev = vdev; >> vdev->priv = dev; >> >> -- >> 2.9.3
On Wed, Sep 21, 2016 at 7:59 AM, Tom Gundersen <teg@jklm.no> wrote: > There are many reasons other than ENOMEM that drm_dev_init() can > fail. Return ERR_PTR rather than NULL to be able to distinguish > these in the caller. > > Signed-off-by: Tom Gundersen <teg@jklm.no> Thanks, applied to -misc Sean > --- > drivers/gpu/drm/arc/arcpgu_drv.c | 4 ++-- > drivers/gpu/drm/arm/hdlcd_drv.c | 4 ++-- > drivers/gpu/drm/arm/malidp_drv.c | 4 ++-- > drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++-- > drivers/gpu/drm/drm_drv.c | 6 +++--- > drivers/gpu/drm/drm_pci.c | 4 ++-- > drivers/gpu/drm/drm_platform.c | 4 ++-- > drivers/gpu/drm/etnaviv/etnaviv_drv.c | 4 ++-- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 ++-- > drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 4 ++-- > drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 ++-- > drivers/gpu/drm/msm/msm_drv.c | 4 ++-- > drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ++-- > drivers/gpu/drm/rcar-du/rcar_du_drv.c | 4 ++-- > drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ++-- > drivers/gpu/drm/sti/sti_drv.c | 4 ++-- > drivers/gpu/drm/sun4i/sun4i_drv.c | 4 ++-- > drivers/gpu/drm/tegra/drm.c | 4 ++-- > drivers/gpu/drm/udl/udl_drv.c | 4 ++-- > drivers/gpu/drm/vc4/vc4_drv.c | 4 ++-- > drivers/gpu/drm/vgem/vgem_drv.c | 4 ++-- > drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 4 ++-- > 22 files changed, 45 insertions(+), 45 deletions(-) > > diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c > index 6d4ff34..28e6471 100644 > --- a/drivers/gpu/drm/arc/arcpgu_drv.c > +++ b/drivers/gpu/drm/arc/arcpgu_drv.c > @@ -198,8 +198,8 @@ static int arcpgu_probe(struct platform_device *pdev) > int ret; > > drm = drm_dev_alloc(&arcpgu_drm_driver, &pdev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > ret = arcpgu_load(drm); > if (ret) > diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c > index d83b46a..fb6a418 100644 > --- a/drivers/gpu/drm/arm/hdlcd_drv.c > +++ b/drivers/gpu/drm/arm/hdlcd_drv.c > @@ -326,8 +326,8 @@ static int hdlcd_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&hdlcd_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = hdlcd; > dev_set_drvdata(dev, drm); > diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c > index c383d72..9280358 100644 > --- a/drivers/gpu/drm/arm/malidp_drv.c > +++ b/drivers/gpu/drm/arm/malidp_drv.c > @@ -311,8 +311,8 @@ static int malidp_bind(struct device *dev) > return ret; > > drm = drm_dev_alloc(&malidp_driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto alloc_fail; > } > > diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > index 8e7483d..5f48431 100644 > --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c > @@ -797,8 +797,8 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) > int ret; > > ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ret = atmel_hlcdc_dc_load(ddev); > if (ret) > diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c > index 99e6751..80c7f25 100644 > --- a/drivers/gpu/drm/drm_drv.c > +++ b/drivers/gpu/drm/drm_drv.c > @@ -591,7 +591,7 @@ EXPORT_SYMBOL(drm_dev_init); > * own struct should look at using drm_dev_init() instead. > * > * RETURNS: > - * Pointer to new DRM device, or NULL if out of memory. > + * Pointer to new DRM device, or ERR_PTR on failure. > */ > struct drm_device *drm_dev_alloc(struct drm_driver *driver, > struct device *parent) > @@ -601,12 +601,12 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver, > > dev = kzalloc(sizeof(*dev), GFP_KERNEL); > if (!dev) > - return NULL; > + return ERR_PTR(-ENOMEM); > > ret = drm_dev_init(dev, driver, parent); > if (ret) { > kfree(dev); > - return NULL; > + return ERR_PTR(ret); > } > > return dev; > diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c > index d86362f..3ceea9c 100644 > --- a/drivers/gpu/drm/drm_pci.c > +++ b/drivers/gpu/drm/drm_pci.c > @@ -236,8 +236,8 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &pdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > ret = pci_enable_device(pdev); > if (ret) > diff --git a/drivers/gpu/drm/drm_platform.c b/drivers/gpu/drm/drm_platform.c > index 2c819ef..0262698 100644 > --- a/drivers/gpu/drm/drm_platform.c > +++ b/drivers/gpu/drm/drm_platform.c > @@ -48,8 +48,8 @@ static int drm_get_platform_dev(struct platform_device *platdev, > DRM_DEBUG("\n"); > > dev = drm_dev_alloc(driver, &platdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > dev->platformdev = platdev; > > diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > index e3164d9..aa68766 100644 > --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c > +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c > @@ -529,8 +529,8 @@ static int etnaviv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&etnaviv_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > priv = kzalloc(sizeof(*priv), GFP_KERNEL); > if (!priv) { > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > index 7882387..0d2ae94 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c > @@ -402,8 +402,8 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev) > fsl_dev->tcon = fsl_tcon_init(dev); > > drm = drm_dev_alloc(driver, dev); > - if (!drm) { > - ret = -ENOMEM; > + if (IS_ERR(drm)) { > + ret = PTR_ERR(drm); > goto disable_pix_clk; > } > > diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > index 1fc2f50..90377a6 100644 > --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c > @@ -207,8 +207,8 @@ static int kirin_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > drm_dev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > index 72c1ae4..cf83f65 100644 > --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c > +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c > @@ -294,8 +294,8 @@ static int mtk_drm_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&mtk_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drm->dev_private = private; > private->drm = drm; > diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c > index 8a02370..042bde4 100644 > --- a/drivers/gpu/drm/msm/msm_drv.c > +++ b/drivers/gpu/drm/msm/msm_drv.c > @@ -347,9 +347,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) > int ret; > > ddev = drm_dev_alloc(drv, dev); > - if (!ddev) { > + if (IS_ERR(ddev)) { > dev_err(dev, "failed to allocate drm_device\n"); > - return -ENOMEM; > + return PTR_ERR(ddev); > } > > platform_set_drvdata(pdev, ddev); > diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c > index 652ab11..3100fd88 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_drm.c > +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c > @@ -1067,8 +1067,8 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func, > goto err_free; > > drm = drm_dev_alloc(&driver_platform, &pdev->dev); > - if (!drm) { > - err = -ENOMEM; > + if (IS_ERR(drm)) { > + err = PTR_ERR(drm); > goto err_free; > } > > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > index 899ef7a..73c971e 100644 > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c > @@ -316,8 +316,8 @@ static int rcar_du_probe(struct platform_device *pdev) > rcdu->info = of_match_device(rcar_du_of_table, rcdu->dev)->data; > > ddev = drm_dev_alloc(&rcar_du_driver, &pdev->dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > rcdu->ddev = ddev; > ddev->dev_private = rcdu; > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > index 76eaf1d..446b5d7 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c > @@ -143,8 +143,8 @@ static int rockchip_drm_bind(struct device *dev) > int ret; > > drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev); > - if (!drm_dev) > - return -ENOMEM; > + if (IS_ERR(drm_dev)) > + return PTR_ERR(drm_dev); > > dev_set_drvdata(dev, drm_dev); > > diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c > index 7cd3804..49ed3c4 100644 > --- a/drivers/gpu/drm/sti/sti_drv.c > +++ b/drivers/gpu/drm/sti/sti_drv.c > @@ -365,8 +365,8 @@ static int sti_bind(struct device *dev) > int ret; > > ddev = drm_dev_alloc(&sti_driver, dev); > - if (!ddev) > - return -ENOMEM; > + if (IS_ERR(ddev)) > + return PTR_ERR(ddev); > > ddev->platformdev = to_platform_device(dev); > > diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c > index 9059e3e..0da9862 100644 > --- a/drivers/gpu/drm/sun4i/sun4i_drv.c > +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c > @@ -121,8 +121,8 @@ static int sun4i_drv_bind(struct device *dev) > int ret; > > drm = drm_dev_alloc(&sun4i_drv_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > drv = devm_kzalloc(dev, sizeof(*drv), GFP_KERNEL); > if (!drv) { > diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c > index 4b9f1c7..8ab47b5 100644 > --- a/drivers/gpu/drm/tegra/drm.c > +++ b/drivers/gpu/drm/tegra/drm.c > @@ -983,8 +983,8 @@ static int host1x_drm_probe(struct host1x_device *dev) > int err; > > drm = drm_dev_alloc(driver, &dev->dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > > dev_set_drvdata(&dev->dev, drm); > > diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c > index f0851db..cc45d98 100644 > --- a/drivers/gpu/drm/udl/udl_drv.c > +++ b/drivers/gpu/drm/udl/udl_drv.c > @@ -86,8 +86,8 @@ static int udl_usb_probe(struct usb_interface *interface, > int r; > > dev = drm_dev_alloc(&driver, &interface->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > > r = drm_dev_register(dev, (unsigned long)udev); > if (r) > diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c > index deec535..3c9e7f6 100644 > --- a/drivers/gpu/drm/vc4/vc4_drv.c > +++ b/drivers/gpu/drm/vc4/vc4_drv.c > @@ -233,8 +233,8 @@ static int vc4_drm_bind(struct device *dev) > return -ENOMEM; > > drm = drm_dev_alloc(&vc4_drm_driver, dev); > - if (!drm) > - return -ENOMEM; > + if (IS_ERR(drm)) > + return PTR_ERR(drm); > platform_set_drvdata(pdev, drm); > vc4->dev = drm; > drm->dev_private = vc4; > diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c > index c15bafb..f36c147 100644 > --- a/drivers/gpu/drm/vgem/vgem_drv.c > +++ b/drivers/gpu/drm/vgem/vgem_drv.c > @@ -334,8 +334,8 @@ static int __init vgem_init(void) > int ret; > > vgem_device = drm_dev_alloc(&vgem_driver, NULL); > - if (!vgem_device) { > - ret = -ENOMEM; > + if (IS_ERR(vgem_device)) { > + ret = PTR_ERR(vgem_device); > goto out; > } > > diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > index a59d0e3..26197dd 100644 > --- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > +++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c > @@ -54,8 +54,8 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev) > int ret; > > dev = drm_dev_alloc(driver, &vdev->dev); > - if (!dev) > - return -ENOMEM; > + if (IS_ERR(dev)) > + return PTR_ERR(dev); > dev->virtdev = vdev; > vdev->priv = dev; > > -- > 2.9.3 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/arc/arcpgu_drv.c b/drivers/gpu/drm/arc/arcpgu_drv.c index 6d4ff34..28e6471 100644 --- a/drivers/gpu/drm/arc/arcpgu_drv.c +++ b/drivers/gpu/drm/arc/arcpgu_drv.c @@ -198,8 +198,8 @@ static int arcpgu_probe(struct platform_device *pdev) int ret; drm = drm_dev_alloc(&arcpgu_drm_driver, &pdev->dev); - if (!drm) - return -ENOMEM; + if (IS_ERR(drm)) + return PTR_ERR(drm); ret = arcpgu_load(drm); if (ret) diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c index d83b46a..fb6a418 100644 --- a/drivers/gpu/drm/arm/hdlcd_drv.c +++ b/drivers/gpu/drm/arm/hdlcd_drv.c @@ -326,8 +326,8 @@ static int hdlcd_drm_bind(struct device *dev) return -ENOMEM; drm = drm_dev_alloc(&hdlcd_driver, dev); - if (!drm) - return -ENOMEM; + if (IS_ERR(drm)) + return PTR_ERR(drm); drm->dev_private = hdlcd; dev_set_drvdata(dev, drm); diff --git a/drivers/gpu/drm/arm/malidp_drv.c b/drivers/gpu/drm/arm/malidp_drv.c index c383d72..9280358 100644 --- a/drivers/gpu/drm/arm/malidp_drv.c +++ b/drivers/gpu/drm/arm/malidp_drv.c @@ -311,8 +311,8 @@ static int malidp_bind(struct device *dev) return ret; drm = drm_dev_alloc(&malidp_driver, dev); - if (!drm) { - ret = -ENOMEM; + if (IS_ERR(drm)) { + ret = PTR_ERR(drm); goto alloc_fail; } diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c index 8e7483d..5f48431 100644 --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c @@ -797,8 +797,8 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev) int ret; ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev); - if (!ddev) - return -ENOMEM; + if (IS_ERR(ddev)) + return PTR_ERR(ddev); ret = atmel_hlcdc_dc_load(ddev); if (ret) diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c index 99e6751..80c7f25 100644 --- a/drivers/gpu/drm/drm_drv.c +++ b/drivers/gpu/drm/drm_drv.c @@ -591,7 +591,7 @@ EXPORT_SYMBOL(drm_dev_init); * own struct should look at using drm_dev_init() instead. * * RETURNS: - * Pointer to new DRM device, or NULL if out of memory. + * Pointer to new DRM device, or ERR_PTR on failure. */ struct drm_device *drm_dev_alloc(struct drm_driver *driver, struct device *parent) @@ -601,12 +601,12 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver, dev = kzalloc(sizeof(*dev), GFP_KERNEL); if (!dev) - return NULL; + return ERR_PTR(-ENOMEM); ret = drm_dev_init(dev, driver, parent); if (ret) { kfree(dev); - return NULL; + return ERR_PTR(ret); } return dev; diff --git a/drivers/gpu/drm/drm_pci.c b/drivers/gpu/drm/drm_pci.c index d86362f..3ceea9c 100644 --- a/drivers/gpu/drm/drm_pci.c +++ b/drivers/gpu/drm/drm_pci.c @@ -236,8 +236,8 @@ int drm_get_pci_dev(struct pci_dev *pdev, const struct pci_device_id *ent, DRM_DEBUG("\n"); dev = drm_dev_alloc(driver, &pdev->dev); - if (!dev) - return -ENOMEM; + if (IS_ERR(dev)) + return PTR_ERR(dev); ret = pci_enable_device(pdev); if (ret) diff --git a/drivers/gpu/drm/drm_platform.c b/drivers/gpu/drm/drm_platform.c index 2c819ef..0262698 100644 --- a/drivers/gpu/drm/drm_platform.c +++ b/drivers/gpu/drm/drm_platform.c @@ -48,8 +48,8 @@ static int drm_get_platform_dev(struct platform_device *platdev, DRM_DEBUG("\n"); dev = drm_dev_alloc(driver, &platdev->dev); - if (!dev) - return -ENOMEM; + if (IS_ERR(dev)) + return PTR_ERR(dev); dev->platformdev = platdev; diff --git a/drivers/gpu/drm/etnaviv/etnaviv_drv.c b/drivers/gpu/drm/etnaviv/etnaviv_drv.c index e3164d9..aa68766 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_drv.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_drv.c @@ -529,8 +529,8 @@ static int etnaviv_bind(struct device *dev) int ret; drm = drm_dev_alloc(&etnaviv_drm_driver, dev); - if (!drm) - return -ENOMEM; + if (IS_ERR(drm)) + return PTR_ERR(drm); priv = kzalloc(sizeof(*priv), GFP_KERNEL); if (!priv) { diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c index 7882387..0d2ae94 100644 --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c @@ -402,8 +402,8 @@ static int fsl_dcu_drm_probe(struct platform_device *pdev) fsl_dev->tcon = fsl_tcon_init(dev); drm = drm_dev_alloc(driver, dev); - if (!drm) { - ret = -ENOMEM; + if (IS_ERR(drm)) { + ret = PTR_ERR(drm); goto disable_pix_clk; } diff --git a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c index 1fc2f50..90377a6 100644 --- a/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c +++ b/drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c @@ -207,8 +207,8 @@ static int kirin_drm_bind(struct device *dev) int ret; drm_dev = drm_dev_alloc(driver, dev); - if (!drm_dev) - return -ENOMEM; + if (IS_ERR(drm_dev)) + return PTR_ERR(drm_dev); drm_dev->platformdev = to_platform_device(dev); diff --git a/drivers/gpu/drm/mediatek/mtk_drm_drv.c b/drivers/gpu/drm/mediatek/mtk_drm_drv.c index 72c1ae4..cf83f65 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_drv.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_drv.c @@ -294,8 +294,8 @@ static int mtk_drm_bind(struct device *dev) int ret; drm = drm_dev_alloc(&mtk_drm_driver, dev); - if (!drm) - return -ENOMEM; + if (IS_ERR(drm)) + return PTR_ERR(drm); drm->dev_private = private; private->drm = drm; diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 8a02370..042bde4 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -347,9 +347,9 @@ static int msm_drm_init(struct device *dev, struct drm_driver *drv) int ret; ddev = drm_dev_alloc(drv, dev); - if (!ddev) { + if (IS_ERR(ddev)) { dev_err(dev, "failed to allocate drm_device\n"); - return -ENOMEM; + return PTR_ERR(ddev); } platform_set_drvdata(pdev, ddev); diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c index 652ab11..3100fd88 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -1067,8 +1067,8 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func, goto err_free; drm = drm_dev_alloc(&driver_platform, &pdev->dev); - if (!drm) { - err = -ENOMEM; + if (IS_ERR(drm)) { + err = PTR_ERR(drm); goto err_free; } diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 899ef7a..73c971e 100644 --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c @@ -316,8 +316,8 @@ static int rcar_du_probe(struct platform_device *pdev) rcdu->info = of_match_device(rcar_du_of_table, rcdu->dev)->data; ddev = drm_dev_alloc(&rcar_du_driver, &pdev->dev); - if (!ddev) - return -ENOMEM; + if (IS_ERR(ddev)) + return PTR_ERR(ddev); rcdu->ddev = ddev; ddev->dev_private = rcdu; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 76eaf1d..446b5d7 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -143,8 +143,8 @@ static int rockchip_drm_bind(struct device *dev) int ret; drm_dev = drm_dev_alloc(&rockchip_drm_driver, dev); - if (!drm_dev) - return -ENOMEM; + if (IS_ERR(drm_dev)) + return PTR_ERR(drm_dev); dev_set_drvdata(dev, drm_dev); diff --git a/drivers/gpu/drm/sti/sti_drv.c b/drivers/gpu/drm/sti/sti_drv.c index 7cd3804..49ed3c4 100644 --- a/drivers/gpu/drm/sti/sti_drv.c +++ b/drivers/gpu/drm/sti/sti_drv.c @@ -365,8 +365,8 @@ static int sti_bind(struct device *dev) int ret; ddev = drm_dev_alloc(&sti_driver, dev); - if (!ddev) - return -ENOMEM; + if (IS_ERR(ddev)) + return PTR_ERR(ddev); ddev->platformdev = to_platform_device(dev); diff --git a/drivers/gpu/drm/sun4i/sun4i_drv.c b/drivers/gpu/drm/sun4i/sun4i_drv.c index 9059e3e..0da9862 100644 --- a/drivers/gpu/drm/sun4i/sun4i_drv.c +++ b/drivers/gpu/drm/sun4i/sun4i_drv.c @@ -121,8 +121,8 @@ static int sun4i_drv_bind(struct device *dev) int ret; drm = drm_dev_alloc(&sun4i_drv_driver, dev); - if (!drm) - return -ENOMEM; + if (IS_ERR(drm)) + return PTR_ERR(drm); drv = devm_kzalloc(dev, sizeof(*drv), GFP_KERNEL); if (!drv) { diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c index 4b9f1c7..8ab47b5 100644 --- a/drivers/gpu/drm/tegra/drm.c +++ b/drivers/gpu/drm/tegra/drm.c @@ -983,8 +983,8 @@ static int host1x_drm_probe(struct host1x_device *dev) int err; drm = drm_dev_alloc(driver, &dev->dev); - if (!drm) - return -ENOMEM; + if (IS_ERR(drm)) + return PTR_ERR(drm); dev_set_drvdata(&dev->dev, drm); diff --git a/drivers/gpu/drm/udl/udl_drv.c b/drivers/gpu/drm/udl/udl_drv.c index f0851db..cc45d98 100644 --- a/drivers/gpu/drm/udl/udl_drv.c +++ b/drivers/gpu/drm/udl/udl_drv.c @@ -86,8 +86,8 @@ static int udl_usb_probe(struct usb_interface *interface, int r; dev = drm_dev_alloc(&driver, &interface->dev); - if (!dev) - return -ENOMEM; + if (IS_ERR(dev)) + return PTR_ERR(dev); r = drm_dev_register(dev, (unsigned long)udev); if (r) diff --git a/drivers/gpu/drm/vc4/vc4_drv.c b/drivers/gpu/drm/vc4/vc4_drv.c index deec535..3c9e7f6 100644 --- a/drivers/gpu/drm/vc4/vc4_drv.c +++ b/drivers/gpu/drm/vc4/vc4_drv.c @@ -233,8 +233,8 @@ static int vc4_drm_bind(struct device *dev) return -ENOMEM; drm = drm_dev_alloc(&vc4_drm_driver, dev); - if (!drm) - return -ENOMEM; + if (IS_ERR(drm)) + return PTR_ERR(drm); platform_set_drvdata(pdev, drm); vc4->dev = drm; drm->dev_private = vc4; diff --git a/drivers/gpu/drm/vgem/vgem_drv.c b/drivers/gpu/drm/vgem/vgem_drv.c index c15bafb..f36c147 100644 --- a/drivers/gpu/drm/vgem/vgem_drv.c +++ b/drivers/gpu/drm/vgem/vgem_drv.c @@ -334,8 +334,8 @@ static int __init vgem_init(void) int ret; vgem_device = drm_dev_alloc(&vgem_driver, NULL); - if (!vgem_device) { - ret = -ENOMEM; + if (IS_ERR(vgem_device)) { + ret = PTR_ERR(vgem_device); goto out; } diff --git a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c index a59d0e3..26197dd 100644 --- a/drivers/gpu/drm/virtio/virtgpu_drm_bus.c +++ b/drivers/gpu/drm/virtio/virtgpu_drm_bus.c @@ -54,8 +54,8 @@ int drm_virtio_init(struct drm_driver *driver, struct virtio_device *vdev) int ret; dev = drm_dev_alloc(driver, &vdev->dev); - if (!dev) - return -ENOMEM; + if (IS_ERR(dev)) + return PTR_ERR(dev); dev->virtdev = vdev; vdev->priv = dev;
There are many reasons other than ENOMEM that drm_dev_init() can fail. Return ERR_PTR rather than NULL to be able to distinguish these in the caller. Signed-off-by: Tom Gundersen <teg@jklm.no> --- drivers/gpu/drm/arc/arcpgu_drv.c | 4 ++-- drivers/gpu/drm/arm/hdlcd_drv.c | 4 ++-- drivers/gpu/drm/arm/malidp_drv.c | 4 ++-- drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 4 ++-- drivers/gpu/drm/drm_drv.c | 6 +++--- drivers/gpu/drm/drm_pci.c | 4 ++-- drivers/gpu/drm/drm_platform.c | 4 ++-- drivers/gpu/drm/etnaviv/etnaviv_drv.c | 4 ++-- drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_drv.c | 4 ++-- drivers/gpu/drm/hisilicon/kirin/kirin_drm_drv.c | 4 ++-- drivers/gpu/drm/mediatek/mtk_drm_drv.c | 4 ++-- drivers/gpu/drm/msm/msm_drv.c | 4 ++-- drivers/gpu/drm/nouveau/nouveau_drm.c | 4 ++-- drivers/gpu/drm/rcar-du/rcar_du_drv.c | 4 ++-- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 4 ++-- drivers/gpu/drm/sti/sti_drv.c | 4 ++-- drivers/gpu/drm/sun4i/sun4i_drv.c | 4 ++-- drivers/gpu/drm/tegra/drm.c | 4 ++-- drivers/gpu/drm/udl/udl_drv.c | 4 ++-- drivers/gpu/drm/vc4/vc4_drv.c | 4 ++-- drivers/gpu/drm/vgem/vgem_drv.c | 4 ++-- drivers/gpu/drm/virtio/virtgpu_drm_bus.c | 4 ++-- 22 files changed, 45 insertions(+), 45 deletions(-)