drm/ati_pcigart: Fix error code in drm_ati_pcigart_init()
Subsystems (3)
PATCH 1/1 drm/ati_pcigart: Fix error code in drm_ati_pcigart_init()
The drm_ati_pcigart_init() function was originally suppose to return one on success and zero on failure, but these days it returns a mix of zero, one and -ENOMEM on failure.
This patch cleans it up and modifies the caller so now the function returns zero on success and negative error codes on failure.
Signed-off-by Dan Carpenter <[email protected]>
--- drivers/gpu/drm/ati_pcigart.c | 7 ++++--- drivers/gpu/drm/r128/r128_cce.c | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-)
drivers/gpu/drm/ati_pcigart.c +4 -3
@@ -103,7 +103,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *gaunsigned long pages;u32 *pci_gart =NULL , page_base, gart_idx;dma_addr_t bus_address =0 ; -int i, j, ret =0 ; +int i, j, ret = -ENOMEM ;int max_ati_pages, max_real_pages;if (!entry) {
@@ -117,7 +117,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *gaif (pci_set_dma_mask (dev->pdev, gart_info->table_mask)) {DRM_ERROR ("fail to set dma mask to 0x%Lx\n" , (unsigned long long )gart_info->table_mask); - ret =1 ; + ret = -EFAULT ; goto done; }
@@ -160,6 +160,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *gadrm_ati_pcigart_cleanup (dev, gart_info); address =NULL ; bus_address =0 ; + ret = -ENOMEM ; goto done; } page_base = (u32 ) entry->busaddr[i];
@@ -188,7 +189,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga page_base +=ATI_PCIGART_PAGE_SIZE ; } } - ret =1 ; + ret =0 ;#if defined(__i386__) || defined(__x86_64__)wbinvd ();
drivers/gpu/drm/r128/r128_cce.c +3 -2
@@ -560,11 +560,12 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init) dev_priv->gart_info.addr =NULL ; dev_priv->gart_info.bus_addr =0 ; dev_priv->gart_info.gart_reg_if =DRM_ATI_GART_PCI ; -if (!drm_ati_pcigart_init (dev, &dev_priv->gart_info)) { + rc =drm_ati_pcigart_init (dev, &dev_priv->gart_info); +if (rc) {DRM_ERROR ("failed to init PCI GART!\n" ); dev->dev_private = (void *)dev_priv;r128_do_cleanup_cce (dev); -return -ENOMEM ; +return rc; }R128_WRITE (R128_PCI_GART_PAGE , dev_priv->gart_info.bus_addr);#if IS_ENABLED (CONFIG_AGP )
Signature · 1 line
2.17.1
Daniel Vetter
AppliedQuoted 8 lines · Dan Carpenter
The
drm_ati_pcigart_init()function was originally suppose to return one on success and zero on failure, but these days it returns a mix of zero, one and-ENOMEMon failure.This patch cleans it up and modifies the caller so now the function returns zero on success and negative error codes on failure.
Signed-off-by Dan Carpenter <[email protected]>
Queued for 4.22, thanks for your patch.
-Daniel
Quoted 66 lines
--- drivers/gpu/drm/ati_pcigart.c | 7 ++++--- drivers/gpu/drm/r128/r128_cce.c | 5 +++-- 2 files changed, 7 insertions(+), 5 deletions(-)drivers/gpu/drm/ati_pcigart.c +4
-3@@ -103,7 +103,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *gaunsigned long pages;u32 *pci_gart =NULL , page_base, gart_idx;dma_addr_t bus_address =0 ; -int i, j, ret =0 ; +int i, j, ret = -ENOMEM ;int max_ati_pages, max_real_pages;if (!entry) {@@ -117,7 +117,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *gaif (pci_set_dma_mask (dev->pdev, gart_info->table_mask)) {DRM_ERROR ("fail to set dma mask to 0x%Lx\n" , (unsigned long long )gart_info->table_mask); - ret =1 ; + ret = -EFAULT ; goto done; }@@ -160,6 +160,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *gadrm_ati_pcigart_cleanup (dev, gart_info); address =NULL ; bus_address =0 ; + ret = -ENOMEM ; goto done; } page_base = (u32 ) entry->busaddr[i];@@ -188,7 +189,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga page_base +=ATI_PCIGART_PAGE_SIZE ; } } - ret =1 ; + ret =0 ;#if defined(__i386__) || defined(__x86_64__)wbinvd ();drivers/gpu/drm/r128/r128_cce.c +3
-2@@ -560,11 +560,12 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init) dev_priv->gart_info.addr =NULL ; dev_priv->gart_info.bus_addr =0 ; dev_priv->gart_info.gart_reg_if =DRM_ATI_GART_PCI ; -if (!drm_ati_pcigart_init (dev, &dev_priv->gart_info)) { + rc =drm_ati_pcigart_init (dev, &dev_priv->gart_info); +if (rc) {DRM_ERROR ("failed to init PCI GART!\n" ); dev->dev_private = (void *)dev_priv;r128_do_cleanup_cce (dev); -return -ENOMEM ; +return rc; }R128_WRITE (R128_PCI_GART_PAGE , dev_priv->gart_info.bus_addr);#if IS_ENABLED (CONFIG_AGP )Signature · 1 line
2.17.1
Signature · 3 lines
Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch