diff mbox

drm/mgag200: Don't do full cleanup if mgag200_device_init fails

Message ID 20130605152957.6055AF4DC4@venus.matrox.com (mailing list archive)
State New, archived
Headers show

Commit Message

Christopher Harvey June 5, 2013, 3:29 p.m. UTC
Running mgag200_driver_unload when the driver init fails early on
causes functions like drm_mode_config_cleanup to be called. The
problem is, drm_mode_config_cleanup crashes because the corresponding
init hasn't happend yet. There really isn't anything to cleanup after
mgag200_device_init, so we can just pass the error code upwards.

Acked-by: Julia Lemire <jlemire@matrox.com>
Signed-off-by: Christopher Harvey <charvey@matrox.com>
---
 drivers/gpu/drm/mgag200/mgag200_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Christopher Harvey June 12, 2013, 5:16 p.m. UTC | #1
On Wed, Jun 05 2013, Christopher Harvey <charvey@matrox.com> wrote:
> Running mgag200_driver_unload when the driver init fails early on
> causes functions like drm_mode_config_cleanup to be called. The
> problem is, drm_mode_config_cleanup crashes because the corresponding
> init hasn't happend yet. There really isn't anything to cleanup after
> mgag200_device_init, so we can just pass the error code upwards.
>
> Acked-by: Julia Lemire <jlemire@matrox.com>
> Signed-off-by: Christopher Harvey <charvey@matrox.com>
> ---
>  drivers/gpu/drm/mgag200/mgag200_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
> index 5189675..6d6b598 100644
> --- a/drivers/gpu/drm/mgag200/mgag200_main.c
> +++ b/drivers/gpu/drm/mgag200/mgag200_main.c
> @@ -209,7 +209,7 @@ int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
>  	r = mgag200_device_init(dev, flags);
>  	if (r) {
>  		dev_err(&dev->pdev->dev, "Fatal error during GPU init: %d\n", r);
> -		goto out;
> +		return r;
>  	}
>  	r = mgag200_mm_init(mdev);
>  	if (r)

ping.
Paul Menzel June 12, 2013, 9:16 p.m. UTC | #2
Dear Christopher,


Am Mittwoch, den 05.06.2013, 11:29 -0400 schrieb Christopher Harvey:
> Running mgag200_driver_unload when the driver init fails early on
> causes functions like drm_mode_config_cleanup to be called. The
> problem is, drm_mode_config_cleanup crashes because the corresponding
> init hasn't happend yet. There really isn't anything to cleanup after
> mgag200_device_init, so we can just pass the error code upwards.
> 
> Acked-by: Julia Lemire <jlemire@matrox.com>
> Signed-off-by: Christopher Harvey <charvey@matrox.com>
> ---
>  drivers/gpu/drm/mgag200/mgag200_main.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

[…]

Acked-by: Paul Menzel <paulepanter@users.sourceforge.net>


You should always CC the maintainer when sending in patches.


Thanks,

Paul
diff mbox

Patch

diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c b/drivers/gpu/drm/mgag200/mgag200_main.c
index 5189675..6d6b598 100644
--- a/drivers/gpu/drm/mgag200/mgag200_main.c
+++ b/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -209,7 +209,7 @@  int mgag200_driver_load(struct drm_device *dev, unsigned long flags)
 	r = mgag200_device_init(dev, flags);
 	if (r) {
 		dev_err(&dev->pdev->dev, "Fatal error during GPU init: %d\n", r);
-		goto out;
+		return r;
 	}
 	r = mgag200_mm_init(mdev);
 	if (r)