platform/x86: hp-wmi: Refactor postcode_store() to follow standard patterns
[linux-2.6-microblaze.git] / drivers / platform / x86 / hp-wmi.c
index a881b70..3487c80 100644 (file)
@@ -473,22 +473,20 @@ static ssize_t als_store(struct device *dev, struct device_attribute *attr,
 static ssize_t postcode_store(struct device *dev, struct device_attribute *attr,
                              const char *buf, size_t count)
 {
-       long unsigned int tmp2;
+       u32 tmp = 1;
+       bool clear;
        int ret;
-       u32 tmp;
 
-       ret = kstrtoul(buf, 10, &tmp2);
-       if (!ret && tmp2 != 1)
-               ret = -EINVAL;
+       ret = kstrtobool(buf, &clear);
        if (ret)
-               goto out;
+               return ret;
+
+       if (clear == false)
+               return -EINVAL;
 
        /* Clear the POST error code. It is kept until until cleared. */
-       tmp = (u32) tmp2;
        ret = hp_wmi_perform_query(HPWMI_POSTCODEERROR_QUERY, HPWMI_WRITE, &tmp,
                                       sizeof(tmp), sizeof(tmp));
-
-out:
        if (ret)
                return ret < 0 ? ret : -EINVAL;