[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121025155606.GF308@x1.osrc.amd.com>
Date: Thu, 25 Oct 2012 17:56:06 +0200
From: Borislav Petkov <bp@...en8.de>
To: Denis Kirjanov <kirjanov@...il.com>
Cc: dougthompson@...ssion.com, linux-edac@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] handle error path in edac_mc_sysfs_init()
On Thu, Oct 25, 2012 at 07:42:58PM +0400, Denis Kirjanov wrote:
> Handle errors on edac_mc_sysfs_init()'s error path
>
> Signed-off-by: Denis Kirjanov <kirjanov@...il.com>
> ---
> drivers/edac/edac_mc_sysfs.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
> index ed0bc07..ea34ece 100644
> --- a/drivers/edac/edac_mc_sysfs.c
> +++ b/drivers/edac/edac_mc_sysfs.c
> @@ -1124,11 +1124,16 @@ int __init edac_mc_sysfs_init(void)
> edac_subsys = edac_get_sysfs_subsys();
> if (edac_subsys == NULL) {
> edac_dbg(1, "no edac_subsys\n");
> - return -EINVAL;
> + err = -EINVAL;
> + goto out;
> }
>
> mci_pdev = kzalloc(sizeof(*mci_pdev), GFP_KERNEL);
> -
> + if (!mci_pdev) {
> + err = -ENOMEM;
> + goto out_put_sysfs;
> + }
> +
> mci_pdev->bus = edac_subsys;
> mci_pdev->type = &mc_attr_type;
> device_initialize(mci_pdev);
> @@ -1141,6 +1146,11 @@ int __init edac_mc_sysfs_init(void)
> edac_dbg(0, "device %s created\n", dev_name(mci_pdev));
Thanks for doing this.
However, from looking at this function further, it is still f*cked up -
the error path after device_add needs handling too, i.e. adding another
label:
out_device_add:
kfree(mci_pdev);
> +out_put_sysfs:
> + edac_put_sysfs_subsys();
> +out:
> + return err;
to which you can goto to after device_add fails.
Would you be willing to fix that too, while you're at it? Btw, I can
totally understand if you say no - I'll take care of it myself instead
then :-).
Thanks.
--
Regards/Gruss,
Boris.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists