diff options
author | Jonas Aaberg <jonas.aberg@stericsson.com> | 2011-06-20 12:09:38 +0200 |
---|---|---|
committer | said m bagheri <ebgheri@steludxu2848.(none)> | 2011-06-29 10:30:33 +0200 |
commit | decd9f43a53174f5900c292fbd8521ff0523535f (patch) | |
tree | e40e8ff76c84600b8a9abb3dfec2d2af5d2b6878 | |
parent | c8fb524efd468fd4593284196dd9c756c5b6e8f6 (diff) | |
download | linux-2.6.38-lt-ux500-decd9f43a53174f5900c292fbd8521ff0523535f.tar.gz |
ARM: ux500: hwreg: Tiny code clean-up
ST-Ericsson Linux next: Not tested, ask SSM for ER
ST-Ericsson ID: -
ST-Ericsson FOSS-OUT ID: Trivial
Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com>
Change-Id: I5b7331fade22ae99dc2600d67b41bf286179cee8
Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/25489
Reviewed-by: QATEST
Reviewed-by: Linus WALLEIJ <linus.walleij@stericsson.com>
-rw-r--r-- | arch/arm/mach-ux500/hwreg.c | 31 |
1 files changed, 11 insertions, 20 deletions
diff --git a/arch/arm/mach-ux500/hwreg.c b/arch/arm/mach-ux500/hwreg.c index 7ba3e0f2911..1a47e60ed46 100644 --- a/arch/arm/mach-ux500/hwreg.c +++ b/arch/arm/mach-ux500/hwreg.c @@ -300,23 +300,19 @@ static int hwreg_address_open(struct inode *inode, struct file *file) static ssize_t hwreg_address_write(struct file *file, const char __user *user_buf, size_t count, loff_t *ppos) { - char buf[32]; - int buf_size; + int err; unsigned long user_address; - /* Get userspace string and assure termination */ - buf_size = min(count, (sizeof(buf) - 1)); - if (copy_from_user(buf, user_buf, buf_size)) - return -EFAULT; - buf[buf_size] = 0; + err = kstrtoul_from_user(user_buf, count, 0, &user_address); + + if (err) + return err; - if(strict_strtoul(buf, 0, &user_address)) - return -EINVAL; if (hwreg_io_ptov(user_address)==NULL) return -EADDRNOTAVAIL; debug_address = user_address; - return buf_size; + return count; } static int hwreg_value_print(struct seq_file *s, void *p) @@ -338,24 +334,19 @@ static int hwreg_value_open(struct inode *inode, struct file *file) static ssize_t hwreg_value_write(struct file *file, const char __user *user_buf, size_t count, loff_t *ppos) { - char buf[32]; - int buf_size; + int err; unsigned long user_val; void *ptr; - /* Get userspace string and assure termination */ - buf_size = min(count, (sizeof(buf)-1)); - if (copy_from_user(buf, user_buf, buf_size)) - return -EFAULT; - buf[buf_size] = 0; + err = kstrtoul_from_user(user_buf, count, 0, &user_val); - if (strict_strtoul(buf, 0, &user_val)) - return -EINVAL; + if (err) + return err; if ((ptr = hwreg_io_ptov(debug_address)) == NULL) return -EFAULT; writel(user_val, ptr); - return buf_size; + return count; } static const struct file_operations hwreg_address_fops = { |