diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2010-09-02 19:26:48 +0400 |
---|---|---|
committer | Borislav Petkov <bp@amd64.org> | 2010-10-21 16:47:59 +0400 |
commit | 30e1f7a8122145f44f45c95366e27b6bb0b08428 (patch) | |
tree | ad1b549b88319b074505eed41914dd7b70f5434c /drivers/edac/edac_mc_sysfs.c | |
parent | 7cfd4a87441f5ca3018fdd1f7ad67e8a73a05dc2 (diff) | |
download | linux-30e1f7a8122145f44f45c95366e27b6bb0b08428.tar.xz |
EDAC: Export edac sysfs class to users.
Move toplevel sysfs class to the stub and make it available to
non-modularized code too. Add proper refcounting of its users and move
the registration functionality into the reference counting routines.
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac/edac_mc_sysfs.c')
-rw-r--r-- | drivers/edac/edac_mc_sysfs.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c index aa93ad82ee07..a4135860149b 100644 --- a/drivers/edac/edac_mc_sysfs.c +++ b/drivers/edac/edac_mc_sysfs.c @@ -11,6 +11,7 @@ #include <linux/ctype.h> #include <linux/slab.h> +#include <linux/edac.h> #include <linux/bug.h> #include "edac_core.h" @@ -1017,7 +1018,7 @@ int edac_sysfs_setup_mc_kset(void) debugf1("%s()\n", __func__); /* get the /sys/devices/system/edac class reference */ - edac_class = edac_get_edac_class(); + edac_class = edac_get_sysfs_class(); if (edac_class == NULL) { debugf1("%s() no edac_class error=%d\n", __func__, err); goto fail_out; @@ -1028,15 +1029,16 @@ int edac_sysfs_setup_mc_kset(void) if (!mc_kset) { err = -ENOMEM; debugf1("%s() Failed to register '.../edac/mc'\n", __func__); - goto fail_out; + goto fail_kset; } debugf1("%s() Registered '.../edac/mc' kobject\n", __func__); return 0; +fail_kset: + edac_put_sysfs_class(); - /* error unwind stack */ fail_out: return err; } @@ -1049,5 +1051,6 @@ fail_out: void edac_sysfs_teardown_mc_kset(void) { kset_unregister(mc_kset); + edac_put_sysfs_class(); } |