Re: [PATCH v2] Staging: speakup: kobjects: Return the error type to caller

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Please ignore this patch, I will look more in to this function and
will send a new patch in order to make this function neat.

On 7 December 2015 at 15:29, Saurabh Sengar <saurabh.truth@xxxxxxxxx> wrote:
> 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.truth@xxxxxxxxx>
> ---
> v2:
> Hi Dan,
> I will look more into this function in my free time.
> For now just sending you this patch fixing ERANGE as commented
>  drivers/staging/speakup/kobjects.c | 4 +++-
>  drivers/staging/staging.c          | 4 ++--
>  2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/staging/speakup/kobjects.c b/drivers/staging/speakup/kobjects.c
> index fdfeb42..509163c 100644
> --- a/drivers/staging/speakup/kobjects.c
> +++ b/drivers/staging/speakup/kobjects.c
> @@ -640,7 +640,7 @@ 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)
> +               if (!kstrtol(cp, 10, &value))
>                         ret = spk_set_num_var(value, param, len);
>                 else
>                         pr_warn("overflow or parsing error has occurred");
> @@ -688,6 +688,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);
> diff --git a/drivers/staging/staging.c b/drivers/staging/staging.c
> index 233e589..36dd594 100644
> --- a/drivers/staging/staging.c
> +++ b/drivers/staging/staging.c
> @@ -2,12 +2,12 @@
>  #include <linux/init.h>
>  #include <linux/module.h>
>
> -static int __init staging_init(void)
> +static int staging_init(void)
>  {
>         return 0;
>  }
>
> -static void __exit staging_exit(void)
> +static void staging_exit(void)
>  {
>  }
>
> --
> 1.9.1
>
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel



[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux