Re: [PATCH v2 14/21] sched/debug: use match_string() helper
On Thu, May 31, 2018 at 2:11 PM, Yisheng Xie wrote: > match_string() returns the index of an array for a matching string, > which can be used instead of open coded variant. > FWIW, Reviewed-by: Andy Shevchenko > Cc: Ingo Molnar > Cc: Peter Zijlstra > Signed-off-by: Yisheng Xie > --- > v2: > - rename i to ret to show the change in returned value meaning - per Andy > > kernel/sched/debug.c | 31 +++ > 1 file changed, 15 insertions(+), 16 deletions(-) > > diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c > index 15b10e2..5591147 100644 > --- a/kernel/sched/debug.c > +++ b/kernel/sched/debug.c > @@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp) > cmp += 3; > } > > - for (i = 0; i < __SCHED_FEAT_NR; i++) { > - if (strcmp(cmp, sched_feat_names[i]) == 0) { > - if (neg) { > - sysctl_sched_features &= ~(1UL << i); > - sched_feat_disable(i); > - } else { > - sysctl_sched_features |= (1UL << i); > - sched_feat_enable(i); > - } > - break; > - } > + i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp); > + if (i < 0) > + return i; > + > + if (neg) { > + sysctl_sched_features &= ~(1UL << i); > + sched_feat_disable(i); > + } else { > + sysctl_sched_features |= (1UL << i); > + sched_feat_enable(i); > } > > - return i; > + return 0; > } > > static ssize_t > @@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp) > { > char buf[64]; > char *cmp; > - int i; > + int ret; > struct inode *inode; > > if (cnt > 63) > @@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp) > /* Ensure the static_key remains in a consistent state */ > inode = file_inode(filp); > inode_lock(inode); > - i = sched_feat_set(cmp); > + ret = sched_feat_set(cmp); > inode_unlock(inode); > - if (i == __SCHED_FEAT_NR) > - return -EINVAL; > + if (ret < 0) > + return ret; > > *ppos += cnt; > > -- > 1.7.12.4 > -- With Best Regards, Andy Shevchenko
Re: [PATCH v2 14/21] sched/debug: use match_string() helper
On Thu, May 31, 2018 at 2:11 PM, Yisheng Xie wrote: > match_string() returns the index of an array for a matching string, > which can be used instead of open coded variant. > FWIW, Reviewed-by: Andy Shevchenko > Cc: Ingo Molnar > Cc: Peter Zijlstra > Signed-off-by: Yisheng Xie > --- > v2: > - rename i to ret to show the change in returned value meaning - per Andy > > kernel/sched/debug.c | 31 +++ > 1 file changed, 15 insertions(+), 16 deletions(-) > > diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c > index 15b10e2..5591147 100644 > --- a/kernel/sched/debug.c > +++ b/kernel/sched/debug.c > @@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp) > cmp += 3; > } > > - for (i = 0; i < __SCHED_FEAT_NR; i++) { > - if (strcmp(cmp, sched_feat_names[i]) == 0) { > - if (neg) { > - sysctl_sched_features &= ~(1UL << i); > - sched_feat_disable(i); > - } else { > - sysctl_sched_features |= (1UL << i); > - sched_feat_enable(i); > - } > - break; > - } > + i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp); > + if (i < 0) > + return i; > + > + if (neg) { > + sysctl_sched_features &= ~(1UL << i); > + sched_feat_disable(i); > + } else { > + sysctl_sched_features |= (1UL << i); > + sched_feat_enable(i); > } > > - return i; > + return 0; > } > > static ssize_t > @@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp) > { > char buf[64]; > char *cmp; > - int i; > + int ret; > struct inode *inode; > > if (cnt > 63) > @@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp) > /* Ensure the static_key remains in a consistent state */ > inode = file_inode(filp); > inode_lock(inode); > - i = sched_feat_set(cmp); > + ret = sched_feat_set(cmp); > inode_unlock(inode); > - if (i == __SCHED_FEAT_NR) > - return -EINVAL; > + if (ret < 0) > + return ret; > > *ppos += cnt; > > -- > 1.7.12.4 > -- With Best Regards, Andy Shevchenko
[PATCH v2 14/21] sched/debug: use match_string() helper
match_string() returns the index of an array for a matching string, which can be used instead of open coded variant. Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Yisheng Xie --- v2: - rename i to ret to show the change in returned value meaning - per Andy kernel/sched/debug.c | 31 +++ 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 15b10e2..5591147 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp) cmp += 3; } - for (i = 0; i < __SCHED_FEAT_NR; i++) { - if (strcmp(cmp, sched_feat_names[i]) == 0) { - if (neg) { - sysctl_sched_features &= ~(1UL << i); - sched_feat_disable(i); - } else { - sysctl_sched_features |= (1UL << i); - sched_feat_enable(i); - } - break; - } + i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp); + if (i < 0) + return i; + + if (neg) { + sysctl_sched_features &= ~(1UL << i); + sched_feat_disable(i); + } else { + sysctl_sched_features |= (1UL << i); + sched_feat_enable(i); } - return i; + return 0; } static ssize_t @@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp) { char buf[64]; char *cmp; - int i; + int ret; struct inode *inode; if (cnt > 63) @@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp) /* Ensure the static_key remains in a consistent state */ inode = file_inode(filp); inode_lock(inode); - i = sched_feat_set(cmp); + ret = sched_feat_set(cmp); inode_unlock(inode); - if (i == __SCHED_FEAT_NR) - return -EINVAL; + if (ret < 0) + return ret; *ppos += cnt; -- 1.7.12.4
[PATCH v2 14/21] sched/debug: use match_string() helper
match_string() returns the index of an array for a matching string, which can be used instead of open coded variant. Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Yisheng Xie --- v2: - rename i to ret to show the change in returned value meaning - per Andy kernel/sched/debug.c | 31 +++ 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c index 15b10e2..5591147 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c @@ -111,20 +111,19 @@ static int sched_feat_set(char *cmp) cmp += 3; } - for (i = 0; i < __SCHED_FEAT_NR; i++) { - if (strcmp(cmp, sched_feat_names[i]) == 0) { - if (neg) { - sysctl_sched_features &= ~(1UL << i); - sched_feat_disable(i); - } else { - sysctl_sched_features |= (1UL << i); - sched_feat_enable(i); - } - break; - } + i = match_string(sched_feat_names, __SCHED_FEAT_NR, cmp); + if (i < 0) + return i; + + if (neg) { + sysctl_sched_features &= ~(1UL << i); + sched_feat_disable(i); + } else { + sysctl_sched_features |= (1UL << i); + sched_feat_enable(i); } - return i; + return 0; } static ssize_t @@ -133,7 +132,7 @@ static int sched_feat_set(char *cmp) { char buf[64]; char *cmp; - int i; + int ret; struct inode *inode; if (cnt > 63) @@ -148,10 +147,10 @@ static int sched_feat_set(char *cmp) /* Ensure the static_key remains in a consistent state */ inode = file_inode(filp); inode_lock(inode); - i = sched_feat_set(cmp); + ret = sched_feat_set(cmp); inode_unlock(inode); - if (i == __SCHED_FEAT_NR) - return -EINVAL; + if (ret < 0) + return ret; *ppos += cnt; -- 1.7.12.4