diff mbox

staging: sm750fb: skip unnecessary comparisons

Message ID 20170703001809.GA1480@lynnl.wit (mailing list archive)
State New, archived
Headers show

Commit Message

Lynn Lei July 3, 2017, 1:26 a.m. UTC
introduced early checks to skip unnecessary comparisons when flags set.

Signed-off-by: Lynn Lei <lynnl.wit@gmail.com>
---
 drivers/staging/sm750fb/sm750.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

Comments

Greg KH July 3, 2017, 6:19 a.m. UTC | #1
On Mon, Jul 03, 2017 at 09:26:47AM +0800, Lynn Lei wrote:
> introduced early checks to skip unnecessary comparisons when flags set.

Why?

> 
> Signed-off-by: Lynn Lei <lynnl.wit@gmail.com>
> ---
>  drivers/staging/sm750fb/sm750.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
> index 386d4adcd91d..9e57a2d32465 100644
> --- a/drivers/staging/sm750fb/sm750.c
> +++ b/drivers/staging/sm750fb/sm750.c
> @@ -1171,11 +1171,16 @@ static int __init lynxfb_setup(char *options)
>  	 */
>  	while ((opt = strsep(&options, ":")) != NULL) {
>  		/* options that mean for any lynx chips are configured here */
> -		if (!strncmp(opt, "noaccel", strlen("noaccel"))) {
> +
> +		/*
> +		 * NOTE: the length of options is hard-coded
> +		 * if any of those options changed  please update its length
> +		 */

That's not good, why require this?  What is wrong with the original code
here?  It doesn't have that type of restriction, right?

> +		if (!g_noaccel && !strncmp(opt, "noaccel", 7)) {
>  			g_noaccel = 1;
> -		} else if (!strncmp(opt, "nomtrr", strlen("nomtrr"))) {
> +		} else if (!g_nomtrr && !strncmp(opt, "nomtrr", 6)) {

I don't see the benefit of this change at all, what am I missing?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-fbdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
index 386d4adcd91d..9e57a2d32465 100644
--- a/drivers/staging/sm750fb/sm750.c
+++ b/drivers/staging/sm750fb/sm750.c
@@ -1171,11 +1171,16 @@  static int __init lynxfb_setup(char *options)
 	 */
 	while ((opt = strsep(&options, ":")) != NULL) {
 		/* options that mean for any lynx chips are configured here */
-		if (!strncmp(opt, "noaccel", strlen("noaccel"))) {
+
+		/*
+		 * NOTE: the length of options is hard-coded
+		 * if any of those options changed  please update its length
+		 */
+		if (!g_noaccel && !strncmp(opt, "noaccel", 7)) {
 			g_noaccel = 1;
-		} else if (!strncmp(opt, "nomtrr", strlen("nomtrr"))) {
+		} else if (!g_nomtrr && !strncmp(opt, "nomtrr", 6)) {
 			g_nomtrr = 1;
-		} else if (!strncmp(opt, "dual", strlen("dual"))) {
+		} else if (!g_dualview && !strncmp(opt, "dual", 4)) {
 			g_dualview = 1;
 		} else {
 			strcat(tmp, opt);