atmel: Remove open-coded and wrong strcasecmp
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Wed, 21 Jan 2015 11:52:07 +0000 (12:52 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 23 Jan 2015 19:38:54 +0000 (21:38 +0200)
The kernel's string library does in fact have strcasecmp, at least
since ded220bd8f08 ("[STRING]: Move strcasecmp/strncasecmp to
lib/string.c"). Moreover, this open-coded version is in fact wrong: If
the strings only differ in their last character, a and b have already
been incremented to point to the terminating NUL bytes, so they would
wrongly be treated as equal.

Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/atmel.c

index 9183f1cf89a76d9cce88a9da9b68dc570592bd58..55db9f03eb2a3f25d702f88b7bde5b7d16b64441 100644 (file)
@@ -45,7 +45,6 @@
 #include <linux/ptrace.h>
 #include <linux/slab.h>
 #include <linux/string.h>
-#include <linux/ctype.h>
 #include <linux/timer.h>
 #include <asm/byteorder.h>
 #include <asm/io.h>
@@ -2699,16 +2698,7 @@ static int atmel_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
                domain[REGDOMAINSZ] = 0;
                rc = -EINVAL;
                for (i = 0; i < ARRAY_SIZE(channel_table); i++) {
-                       /* strcasecmp doesn't exist in the library */
-                       char *a = channel_table[i].name;
-                       char *b = domain;
-                       while (*a) {
-                               char c1 = *a++;
-                               char c2 = *b++;
-                               if (tolower(c1) != tolower(c2))
-                                       break;
-                       }
-                       if (!*a && !*b) {
+                       if (!strcasecmp(channel_table[i].name, domain)) {
                                priv->config_reg_domain = channel_table[i].reg_domain;
                                rc = 0;
                        }