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)
{
#ifdef LINUX_2_4
extern int switch_parse_media(char *buf);
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
#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;
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},
static void __exit robo_exit()
{
switch_unregister_driver(DRIVER_NAME);
+ kfree(device);
}