diff options
author | Geert Uytterhoeven <geert@linux-m68k.org> | 2007-10-08 03:43:02 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-10-10 19:55:19 -0400 |
commit | d8b0fb51ef1563c631d26cb649a5479b5cc4899c (patch) | |
tree | 29276760231fa088dd96961a5bfdde1011163aa7 /drivers | |
parent | 6470a89de90167cc1ff8a0312197ca422f5fe35f (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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/libertas/debugfs.c | 5 |
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 | ||