This is a note to let you know that I've just added the patch titled

    edac, highbank: Fix interrupt setup of mem and l2 controller

to the 3.10-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     edac-highbank-fix-interrupt-setup-of-mem-and-l2-controller.patch
and it can be found in the queue-3.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From a72b8859fd3941cc1d2940d5c43026d2c6fb959e Mon Sep 17 00:00:00 2001
From: Robert Richter <[email protected]>
Date: Thu, 10 Oct 2013 18:23:38 +0200
Subject: edac, highbank: Fix interrupt setup of mem and l2 controller

From: Robert Richter <[email protected]>

commit a72b8859fd3941cc1d2940d5c43026d2c6fb959e upstream.

Register and enable interrupts after the edac registration. Otherwise
incomming ecc error interrupts lead to crashes during device setup.

Fixing this in drivers for mc and l2.

Signed-off-by: Robert Richter <[email protected]>
Acked-by: Rob Herring <[email protected]>
Signed-off-by: Robert Richter <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/edac/highbank_l2_edac.c |   18 ++++++++++--------
 drivers/edac/highbank_mc_edac.c |   18 ++++++++++--------
 2 files changed, 20 insertions(+), 16 deletions(-)

--- a/drivers/edac/highbank_l2_edac.c
+++ b/drivers/edac/highbank_l2_edac.c
@@ -90,28 +90,30 @@ static int highbank_l2_err_probe(struct
                goto err;
        }
 
+       dci->mod_name = dev_name(&pdev->dev);
+       dci->dev_name = dev_name(&pdev->dev);
+
+       if (edac_device_add_device(dci))
+               goto err;
+
        drvdata->db_irq = platform_get_irq(pdev, 0);
        res = devm_request_irq(&pdev->dev, drvdata->db_irq,
                               highbank_l2_err_handler,
                               0, dev_name(&pdev->dev), dci);
        if (res < 0)
-               goto err;
+               goto err2;
 
        drvdata->sb_irq = platform_get_irq(pdev, 1);
        res = devm_request_irq(&pdev->dev, drvdata->sb_irq,
                               highbank_l2_err_handler,
                               0, dev_name(&pdev->dev), dci);
        if (res < 0)
-               goto err;
-
-       dci->mod_name = dev_name(&pdev->dev);
-       dci->dev_name = dev_name(&pdev->dev);
-
-       if (edac_device_add_device(dci))
-               goto err;
+               goto err2;
 
        devres_close_group(&pdev->dev, NULL);
        return 0;
+err2:
+       edac_device_del_device(&pdev->dev);
 err:
        devres_release_group(&pdev->dev, NULL);
        edac_device_free_ctl_info(dci);
--- a/drivers/edac/highbank_mc_edac.c
+++ b/drivers/edac/highbank_mc_edac.c
@@ -189,14 +189,6 @@ static int highbank_mc_probe(struct plat
                goto err;
        }
 
-       irq = platform_get_irq(pdev, 0);
-       res = devm_request_irq(&pdev->dev, irq, highbank_mc_err_handler,
-                              0, dev_name(&pdev->dev), mci);
-       if (res < 0) {
-               dev_err(&pdev->dev, "Unable to request irq %d\n", irq);
-               goto err;
-       }
-
        mci->mtype_cap = MEM_FLAG_DDR3;
        mci->edac_ctl_cap = EDAC_FLAG_NONE | EDAC_FLAG_SECDED;
        mci->edac_cap = EDAC_FLAG_SECDED;
@@ -217,10 +209,20 @@ static int highbank_mc_probe(struct plat
        if (res < 0)
                goto err;
 
+       irq = platform_get_irq(pdev, 0);
+       res = devm_request_irq(&pdev->dev, irq, highbank_mc_err_handler,
+                              0, dev_name(&pdev->dev), mci);
+       if (res < 0) {
+               dev_err(&pdev->dev, "Unable to request irq %d\n", irq);
+               goto err2;
+       }
+
        highbank_mc_create_debugfs_nodes(mci);
 
        devres_close_group(&pdev->dev, NULL);
        return 0;
+err2:
+       edac_mc_del_mc(&pdev->dev);
 err:
        devres_release_group(&pdev->dev, NULL);
        edac_mc_free(mci);


Patches currently in stable-queue which might be from [email protected] 
are

queue-3.10/edac-highbank-fix-interrupt-setup-of-mem-and-l2-controller.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to