Commit d8b0fb51 authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by David S. Miller

[PATCH] libertas link error due to gcc `smartness'

Some versions of gcc replace strstr() calls with a single-character `needle'
parameter by strchr() behind our back. This causes a link error if strchr() is
defined as an inline function in <asm/string.h> (e.g. on m68k):

| drivers/built-in.o: In function `libertas_parse_chan':
| linux/drivers/net/wireless/libertas/debugfs.c:209: undefined reference to `strchr'
| drivers/built-in.o: In function `libertas_parse_ssid':
| linux/drivers/net/wireless/libertas/debugfs.c:260: undefined reference to `strchr'

Avoid this by explicitly calling strchr() instead.

Also include <linux/string.h>, because this file calls lots of str*() routines.
Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Acked-By: default avatarHolger Schurig <hs4233@mail.mn-solutions.de>
Acked-By: default avatarDan Williams <dcbw@redhat.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 6470a89d
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/string.h>
#include <net/iw_handler.h> #include <net/iw_handler.h>
#include "dev.h" #include "dev.h"
...@@ -205,7 +206,7 @@ static int libertas_parse_chan(char *buf, size_t count, ...@@ -205,7 +206,7 @@ static int libertas_parse_chan(char *buf, size_t count,
if (!start) if (!start)
return -EINVAL; return -EINVAL;
start += 5; start += 5;
end = strstr(start, " "); end = strchr(start, ' ');
if (!end) if (!end)
end = buf + count; end = buf + count;
hold = kzalloc((end - start)+1, GFP_KERNEL); hold = kzalloc((end - start)+1, GFP_KERNEL);
...@@ -256,7 +257,7 @@ static void libertas_parse_ssid(char *buf, size_t count, ...@@ -256,7 +257,7 @@ static void libertas_parse_ssid(char *buf, size_t count,
if (!hold) if (!hold)
return; return;
hold += 5; hold += 5;
end = strstr(hold, " "); end = strchr(hold, ' ');
if (!end) if (!end)
end = buf + count - 1; end = buf + count - 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment