fix gcc4-related bug in switch-robo
SVN-Revision: 3483
This commit is contained in:
parent
d5a2be33ed
commit
2ab14de547
3 changed files with 14 additions and 10 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue