summaryrefslogtreecommitdiffstats
path: root/target/linux/package/switch/src/switch-robo.c
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-03-25 14:31:42 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2006-03-25 14:31:42 +0000
commit8764b18cddfe084e600109cef9d58d85e7a57531 (patch)
tree3a43d97c55ab11f481846e20d229c184b614f466 /target/linux/package/switch/src/switch-robo.c
parent6db467ac855d0d34bb193c19d325e521aff14b00 (diff)
fix gcc4-related bug in switch-robo
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@3483 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/package/switch/src/switch-robo.c')
-rw-r--r--target/linux/package/switch/src/switch-robo.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/target/linux/package/switch/src/switch-robo.c b/target/linux/package/switch/src/switch-robo.c
index 7e4c4de29..b23fca644 100644
--- a/target/linux/package/switch/src/switch-robo.c
+++ b/target/linux/package/switch/src/switch-robo.c
@@ -51,6 +51,7 @@
#define SIOCGETCPHYRD (SIOCDEVPRIVATE + 9)
#define SIOCSETCPHYWR (SIOCDEVPRIVATE + 10)
+static char *device;
static int use_et = 0;
static int is_5350 = 0;
static struct ifreq ifr;
@@ -425,17 +426,18 @@ static int handle_reset(void *driver, char *buf, int nr)
static int __init robo_init()
{
- char *device = "ethX";
int notfound = 1;
+ device = strdup("ethX");
for (device[3] = '0'; (device[3] <= '3') && notfound; device[3]++) {
notfound = robo_probe(device);
}
device[3]--;
- if (notfound)
+ if (notfound) {
+ kfree(device);
return -ENODEV;
- else {
+ } else {
switch_config cfg[] = {
{"enable", handle_enable_read, handle_enable_write},
{"enable_vlan", handle_enable_vlan_read, handle_enable_vlan_write},
@@ -465,6 +467,7 @@ static int __init robo_init()
static void __exit robo_exit()
{
switch_unregister_driver(DRIVER_NAME);
+ kfree(device);
}