fix gcc4-related bug in switch-robo

SVN-Revision: 3483
This commit is contained in:
Felix Fietkau 2006-03-25 14:31:42 +00:00
parent d5a2be33ed
commit 2ab14de547
3 changed files with 14 additions and 10 deletions

View File

@ -68,13 +68,6 @@ static struct file_operations switch_proc_fops = {
write: switch_proc_write write: switch_proc_write
}; };
static inline char *strdup(char *str)
{
char *new = kmalloc(strlen(str) + 1, GFP_KERNEL);
strcpy(new, str);
return new;
}
static ssize_t switch_proc_read(struct file *file, char *buf, size_t count, loff_t *ppos) static ssize_t switch_proc_read(struct file *file, char *buf, size_t count, loff_t *ppos)
{ {
#ifdef LINUX_2_4 #ifdef LINUX_2_4

View File

@ -48,4 +48,12 @@ extern switch_vlan_config *switch_parse_vlan(switch_driver *driver, char *buf);
extern int switch_parse_media(char *buf); extern int switch_parse_media(char *buf);
extern int switch_print_media(char *buf, int media); extern int switch_print_media(char *buf, int media);
static inline char *strdup(char *str)
{
char *new = kmalloc(strlen(str) + 1, GFP_KERNEL);
strcpy(new, str);
return new;
}
#endif #endif

View File

@ -51,6 +51,7 @@
#define SIOCGETCPHYRD (SIOCDEVPRIVATE + 9) #define SIOCGETCPHYRD (SIOCDEVPRIVATE + 9)
#define SIOCSETCPHYWR (SIOCDEVPRIVATE + 10) #define SIOCSETCPHYWR (SIOCDEVPRIVATE + 10)
static char *device;
static int use_et = 0; static int use_et = 0;
static int is_5350 = 0; static int is_5350 = 0;
static struct ifreq ifr; static struct ifreq ifr;
@ -425,17 +426,18 @@ static int handle_reset(void *driver, char *buf, int nr)
static int __init robo_init() static int __init robo_init()
{ {
char *device = "ethX";
int notfound = 1; int notfound = 1;
device = strdup("ethX");
for (device[3] = '0'; (device[3] <= '3') && notfound; device[3]++) { for (device[3] = '0'; (device[3] <= '3') && notfound; device[3]++) {
notfound = robo_probe(device); notfound = robo_probe(device);
} }
device[3]--; device[3]--;
if (notfound) if (notfound) {
kfree(device);
return -ENODEV; return -ENODEV;
else { } else {
switch_config cfg[] = { switch_config cfg[] = {
{"enable", handle_enable_read, handle_enable_write}, {"enable", handle_enable_read, handle_enable_write},
{"enable_vlan", handle_enable_vlan_read, handle_enable_vlan_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() static void __exit robo_exit()
{ {
switch_unregister_driver(DRIVER_NAME); switch_unregister_driver(DRIVER_NAME);
kfree(device);
} }