--- lib/string.c.orig 2015-06-15 23:59:32.768346193 -0400 +++ lib/string.c 2015-06-16 00:11:45.791381539 -0400 @@ -17,6 +17,10 @@ * * Sat Feb 09 2002, Jason Thomas , * Matthew Hawkins * - Kissed strtok() goodbye + * + * * Tuesday June 16 2015, Orestes Leal Rodriguez + * - strlen, strnlen: by using a single counter we use less cpu instructions + * by avoiding substracting the memory addresses before return */ #include @@ -401,11 +405,11 @@ EXPORT_SYMBOL(strim); */ size_t strlen(const char *s) { - const char *sc; + size_t sz = 0; - for (sc = s; *sc != '\0'; ++sc) - /* nothing */; - return sc - s; + for (; *s++ != '\0'; sz++) + /*empty */; + return sz; } EXPORT_SYMBOL(strlen); #endif @@ -418,12 +422,13 @@ EXPORT_SYMBOL(strlen); */ size_t strnlen(const char *s, size_t count) { - const char *sc; + size_t sz = 0; - for (sc = s; count-- && *sc != '\0'; ++sc) - /* nothing */; - return sc - s; + for (; count-- && *s++ != '\0'; sz++) + /* empty */; + return sz; } + EXPORT_SYMBOL(strnlen); #endif