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 at matrox.com>
Signed-off-by: Christopher Harvey <charvey at 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)
-- 
1.8.1.5

Reply via email to