2014-07-12 11:36:31

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 0/7] arch/powerpc: convert single variable sscanf to kstrto<type>

Here is a small untested patchset to use the current string manipulation kstrto<type> functions
instead of sscanf like specified in checkpatch: "Prefer kstrto<type> to single variable sscanf"

autodetect base 0 has been used for both %d, %i, %ld, %lu, %u
and base 16 for %lx

Fabian Frederick (7):
powerpc: fadump: replace sscanf by kstrtoint
powerpc/mv64x60_pci: replace sscanf by kstrtou32
powerpc/powernv: replace sscanf %lx by kstrtoul 16
powerpc/sysfs: replace sscanf by kstrtol
hugetlb: replace sscanf by kstrtoul
powerpc/cell: replace sscanf by kstrtouint
powerpc/pseries: replace sscanf by kstrtoul

arch/powerpc/kernel/fadump.c | 5 +++--
arch/powerpc/kernel/sysfs.c | 7 +++----
arch/powerpc/mm/hugetlbpage.c | 2 +-
arch/powerpc/platforms/cell/cbe_thermal.c | 4 ++--
arch/powerpc/platforms/powernv/subcore.c | 6 +++---
arch/powerpc/platforms/pseries/power.c | 5 ++---
arch/powerpc/sysdev/mv64x60_pci.c | 7 +++++--
7 files changed, 19 insertions(+), 17 deletions(-)

--
1.9.1


2014-07-12 11:37:04

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 3/7] powerpc/powernv: replace sscanf %lx by kstrtoul 16

See checkpatch warning
"Prefer kstrto<type> to single variable sscanf"

Signed-off-by: Fabian Frederick <[email protected]>
---
arch/powerpc/platforms/powernv/subcore.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/subcore.c b/arch/powerpc/platforms/powernv/subcore.c
index 894ecb3..79721b2 100644
--- a/arch/powerpc/platforms/powernv/subcore.c
+++ b/arch/powerpc/platforms/powernv/subcore.c
@@ -337,9 +337,9 @@ static ssize_t __used store_subcores_per_core(struct device *dev,

/* We are serialised by the attribute lock */

- rc = sscanf(buf, "%lx", &val);
- if (rc != 1)
- return -EINVAL;
+ rc = kstrtoul(buf, 16, &val);
+ if (rc)
+ return rc;

switch (val) {
case 1:
--
1.9.1

2014-07-12 11:36:34

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 1/7] powerpc: fadump: replace sscanf by kstrtoint

See checkpatch warning
"Prefer kstrto<type> to single variable sscanf"

Signed-off-by: Fabian Frederick <[email protected]>
---
arch/powerpc/kernel/fadump.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index 742694c..3c40b5f 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -426,6 +426,7 @@ static inline int fadump_gpr_index(u64 id)
{
int i = -1;
char str[3];
+ int rc;

if ((id & GPR_MASK) == REG_ID("GPR")) {
/* get the digits at the end */
@@ -434,8 +435,8 @@ static inline int fadump_gpr_index(u64 id)
str[2] = '\0';
str[1] = id & 0xff;
str[0] = (id >> 8) & 0xff;
- sscanf(str, "%d", &i);
- if (i > 31)
+ rc = kstrtoint(str, 0, &i);
+ if (rc || i > 31)
i = -1;
}
return i;
--
1.9.1

2014-07-12 11:37:01

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 2/7] powerpc/mv64x60_pci: replace sscanf by kstrtou32

See checkpatch warning
"Prefer kstrto<type> to single variable sscanf"

Signed-off-by: Fabian Frederick <[email protected]>
---
arch/powerpc/sysdev/mv64x60_pci.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/sysdev/mv64x60_pci.c b/arch/powerpc/sysdev/mv64x60_pci.c
index 330d566..ca0b29c 100644
--- a/arch/powerpc/sysdev/mv64x60_pci.c
+++ b/arch/powerpc/sysdev/mv64x60_pci.c
@@ -52,14 +52,17 @@ static ssize_t mv64x60_hs_reg_write(struct file *filp, struct kobject *kobj,
{
struct pci_dev *phb;
u32 v;
+ int rc;

if (off > 0)
return 0;
if (count <= 0)
return -EINVAL;

- if (sscanf(buf, "%i", &v) != 1)
- return -EINVAL;
+ rc = kstrtou32(buf, 0, &v);
+
+ if (rc)
+ return rc;

phb = pci_get_bus_and_slot(0, PCI_DEVFN(0, 0));
if (!phb)
--
1.9.1

2014-07-12 11:36:59

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 4/7] powerpc/sysfs: replace sscanf by kstrtol

See checkpatch warning
"Prefer kstrto<type> to single variable sscanf"

Signed-off-by: Fabian Frederick <[email protected]>
---
arch/powerpc/kernel/sysfs.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/kernel/sysfs.c b/arch/powerpc/kernel/sysfs.c
index 67fd2fd..4293e4f 100644
--- a/arch/powerpc/kernel/sysfs.c
+++ b/arch/powerpc/kernel/sysfs.c
@@ -43,12 +43,11 @@ static ssize_t store_smt_snooze_delay(struct device *dev,
size_t count)
{
struct cpu *cpu = container_of(dev, struct cpu, dev);
- ssize_t ret;
long snooze;
+ int rc = kstrtol(buf, 0, &snooze);

- ret = sscanf(buf, "%ld", &snooze);
- if (ret != 1)
- return -EINVAL;
+ if (rc)
+ return rc;

per_cpu(smt_snooze_delay, cpu->dev.id) = snooze;
return count;
--
1.9.1

2014-07-12 11:36:57

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 6/7] powerpc/cell: replace sscanf by kstrtouint

See checkpatch warning
"Prefer kstrto<type> to single variable sscanf"

Signed-off-by: Fabian Frederick <[email protected]>
---
arch/powerpc/platforms/cell/cbe_thermal.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/platforms/cell/cbe_thermal.c b/arch/powerpc/platforms/cell/cbe_thermal.c
index 2c15ff0..d71c3c4 100644
--- a/arch/powerpc/platforms/cell/cbe_thermal.c
+++ b/arch/powerpc/platforms/cell/cbe_thermal.c
@@ -129,9 +129,9 @@ static ssize_t store_throttle(struct cbe_pmd_regs __iomem *pmd_regs, const char
u64 new_value;
int ret;

- ret = sscanf(buf, "%u", &temp);
+ ret = kstrtouint(buf, 0, &temp);

- if (ret != 1 || temp < TEMP_MIN || temp > TEMP_MAX)
+ if (ret || temp < TEMP_MIN || temp > TEMP_MAX)
return -EINVAL;

new_value = temp_to_reg(temp);
--
1.9.1

2014-07-12 11:36:54

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 7/7] powerpc/pseries: replace sscanf by kstrtoul

See checkpatch warning
"Prefer kstrto<type> to single variable sscanf"

Signed-off-by: Fabian Frederick <[email protected]>
---
arch/powerpc/platforms/pseries/power.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/platforms/pseries/power.c b/arch/powerpc/platforms/pseries/power.c
index 6d62662..27a3e9c 100644
--- a/arch/powerpc/platforms/pseries/power.c
+++ b/arch/powerpc/platforms/pseries/power.c
@@ -38,11 +38,10 @@ static ssize_t auto_poweron_store(struct kobject *kobj,
struct kobj_attribute *attr,
const char *buf, size_t n)
{
- int ret;
unsigned long ups_restart;
- ret = sscanf(buf, "%lu", &ups_restart);
+ int ret = kstrtoul(buf, 0, &ups_restart);

- if ((ret == 1) && ((ups_restart == 1) || (ups_restart == 0))){
+ if ((!ret) && ((ups_restart == 1) || (ups_restart == 0))) {
rtas_poweron_auto = ups_restart;
return n;
}
--
1.9.1

2014-07-12 11:36:50

by Fabian Frédérick

[permalink] [raw]
Subject: [PATCH 5/7] hugetlb: replace sscanf by kstrtoul

See checkpatch warning
"Prefer kstrto<type> to single variable sscanf"

Signed-off-by: Fabian Frederick <[email protected]>
---
arch/powerpc/mm/hugetlbpage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c
index 7e70ae9..9118313 100644
--- a/arch/powerpc/mm/hugetlbpage.c
+++ b/arch/powerpc/mm/hugetlbpage.c
@@ -350,7 +350,7 @@ static int __init do_gpage_early_setup(char *param, char *val,
size = memparse(val, NULL);
} else if (strcmp(param, "hugepages") == 0) {
if (size != 0) {
- if (sscanf(val, "%lu", &npages) <= 0)
+ if (kstrtoul(val, 0, &npages))
npages = 0;
gpage_npages[shift_to_mmu_psize(__ffs(size))] = npages;
size = 0;
--
1.9.1