diff options
author | David Kilroy <kilroyd@googlemail.com> | 2011-10-09 12:11:31 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-10-17 15:22:36 -0700 |
commit | 1ca616711c830681faa04d5bbdaccc290a910110 (patch) | |
tree | cd21e0a9ce4bbdf57bd228da17bfcf01e58d89e4 /drivers/staging/wlags49_h2/wl_sysfs.c | |
parent | 8122fa341d36ecacd2bc9e1b0f62594f8130b5ad (diff) |
staging: wlags49_h2: Handle sysfs_create_group return correctly
The function returns 0 on success and non-zero on error. So
correctly record the status so it is freed appropriately.
Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/wlags49_h2/wl_sysfs.c')
-rw-r--r-- | drivers/staging/wlags49_h2/wl_sysfs.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/staging/wlags49_h2/wl_sysfs.c b/drivers/staging/wlags49_h2/wl_sysfs.c index 9b833b30ae6..1508f04b3c6 100644 --- a/drivers/staging/wlags49_h2/wl_sysfs.c +++ b/drivers/staging/wlags49_h2/wl_sysfs.c @@ -120,17 +120,19 @@ static struct attribute_group wlags_group = { void register_wlags_sysfs(struct net_device *net) { - struct device *dev = &(net->dev); - struct wl_private *lp = wl_priv(net); - - lp->sysfsCreated = sysfs_create_group(&dev->kobj, &wlags_group); + struct device *dev = &(net->dev); + struct wl_private *lp = wl_priv(net); + int err; + err = sysfs_create_group(&dev->kobj, &wlags_group); + if (!err) + lp->sysfsCreated = true; } void unregister_wlags_sysfs(struct net_device *net) { - struct device *dev = &(net->dev); - struct wl_private *lp = wl_priv(net); + struct device *dev = &(net->dev); + struct wl_private *lp = wl_priv(net); - if (lp->sysfsCreated) - sysfs_remove_group(&dev->kobj, &wlags_group); + if (lp->sysfsCreated) + sysfs_remove_group(&dev->kobj, &wlags_group); } |