aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeert Uytterhoeven <geert@linux-m68k.org>2007-10-08 03:43:02 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:55:19 -0400
commitd8b0fb51ef1563c631d26cb649a5479b5cc4899c (patch)
tree29276760231fa088dd96961a5bfdde1011163aa7
parent6470a89de90167cc1ff8a0312197ca422f5fe35f (diff)
[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: Geert Uytterhoeven <geert@linux-m68k.org> Acked-By: Holger Schurig <hs4233@mail.mn-solutions.de> Acked-By: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/libertas/debugfs.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c
index cb00b080409e..0bda0b511910 100644
--- a/drivers/net/wireless/libertas/debugfs.c
+++ b/drivers/net/wireless/libertas/debugfs.c
@@ -3,6 +3,7 @@
3#include <linux/debugfs.h> 3#include <linux/debugfs.h>
4#include <linux/delay.h> 4#include <linux/delay.h>
5#include <linux/mm.h> 5#include <linux/mm.h>
6#include <linux/string.h>
6#include <net/iw_handler.h> 7#include <net/iw_handler.h>
7 8
8#include "dev.h" 9#include "dev.h"
@@ -205,7 +206,7 @@ static int libertas_parse_chan(char *buf, size_t count,
205 if (!start) 206 if (!start)
206 return -EINVAL; 207 return -EINVAL;
207 start += 5; 208 start += 5;
208 end = strstr(start, " "); 209 end = strchr(start, ' ');
209 if (!end) 210 if (!end)
210 end = buf + count; 211 end = buf + count;
211 hold = kzalloc((end - start)+1, GFP_KERNEL); 212 hold = kzalloc((end - start)+1, GFP_KERNEL);
@@ -256,7 +257,7 @@ static void libertas_parse_ssid(char *buf, size_t count,
256 if (!hold) 257 if (!hold)
257 return; 258 return;
258 hold += 5; 259 hold += 5;
259 end = strstr(hold, " "); 260 end = strchr(hold, ' ');
260 if (!end) 261 if (!end)
261 end = buf + count - 1; 262 end = buf + count - 1;
262 263