Inorder to notify the user that value is not successfuly set in sys
entry, error should be returned from store function instead of count

Signed-off-by: Saurabh Sengar <saurabh.tr...@gmail.com>
---
 drivers/staging/speakup/kobjects.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/speakup/kobjects.c 
b/drivers/staging/speakup/kobjects.c
index fdfeb42..b3a83fb 100644
--- a/drivers/staging/speakup/kobjects.c
+++ b/drivers/staging/speakup/kobjects.c
@@ -640,7 +640,8 @@ ssize_t spk_var_store(struct kobject *kobj, struct 
kobj_attribute *attr,
                        len = E_INC;
                else
                        len = E_SET;
-               if (kstrtol(cp, 10, &value) == 0)
+               ret = kstrtol(cp, 10, &value);
+               if (!ret)
                        ret = spk_set_num_var(value, param, len);
                else
                        pr_warn("overflow or parsing error has occurred");
@@ -688,6 +689,8 @@ ssize_t spk_var_store(struct kobject *kobj, struct 
kobj_attribute *attr,
 
        if (ret == -ERESTART)
                pr_info("%s reset to default value\n", param->name);
+       else if (ret < 0)
+               return ret;
        return count;
 }
 EXPORT_SYMBOL_GPL(spk_var_store);
-- 
1.9.1

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to