X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/69ae98b46ec77c81215a3c334fd0f85df4888a4c..3814202702cc6ab529c1a0977ea5615c87ce48a8:/package/switch/src/switch-core.c diff --git a/package/switch/src/switch-core.c b/package/switch/src/switch-core.c index 6b59b9ba2..e0aa541f4 100644 --- a/package/switch/src/switch-core.c +++ b/package/switch/src/switch-core.c @@ -32,7 +32,7 @@ * ports: same syntax as for nvram's vlan*ports (eg. "1 2 3 4 5*") */ -#include +#include #include #include #include @@ -64,8 +64,8 @@ static ssize_t switch_proc_read(struct file *file, char *buf, size_t count, loff static ssize_t switch_proc_write(struct file *file, const char *buf, size_t count, void *data); static struct file_operations switch_proc_fops = { - read: switch_proc_read, - write: switch_proc_write + .read = (ssize_t (*) (struct file *, char __user *, size_t, loff_t *))switch_proc_read, + .write = (ssize_t (*) (struct file *, const char __user *, size_t, loff_t *))switch_proc_write }; static ssize_t switch_proc_read(struct file *file, char *buf, size_t count, loff_t *ppos) @@ -100,6 +100,7 @@ static ssize_t switch_proc_read(struct file *file, char *buf, size_t count, loff len = 0; } + kfree(page); return len; } @@ -138,18 +139,18 @@ static ssize_t switch_proc_write(struct file *file, const char *buf, size_t coun static int handle_driver_name(void *driver, char *buf, int nr) { - char *name = ((switch_driver *) driver)->name; + const char *name = ((switch_driver *) driver)->name; return sprintf(buf, "%s\n", name); } static int handle_driver_version(void *driver, char *buf, int nr) { - char *version = ((switch_driver *) driver)->version; + const char *version = ((switch_driver *) driver)->version; strcpy(buf, version); return sprintf(buf, "%s\n", version); } -static void add_handler(switch_driver *driver, switch_config *handler, struct proc_dir_entry *parent, int nr) +static void add_handler(switch_driver *driver, const switch_config *handler, struct proc_dir_entry *parent, int nr) { switch_priv *priv = (switch_priv *) driver->data; struct proc_dir_entry *p; @@ -174,7 +175,7 @@ static void add_handler(switch_driver *driver, switch_config *handler, struct pr } } -static inline void add_handlers(switch_driver *driver, switch_config *handlers, struct proc_dir_entry *parent, int nr) +static inline void add_handlers(switch_driver *driver, const switch_config *handlers, struct proc_dir_entry *parent, int nr) { int i; @@ -407,7 +408,7 @@ int switch_register_driver(switch_driver *driver) memcpy(new, driver, sizeof(switch_driver)); new->name = strdup(driver->name); new->interface = strdup(driver->interface); - + if ((ret = do_register(new)) < 0) { kfree(new->name); kfree(new); @@ -436,7 +437,7 @@ void switch_unregister_driver(char *name) { } } -static int __init switch_init() +static int __init switch_init(void) { if ((switch_root = proc_mkdir("switch", NULL)) == NULL) { printk("%s: proc_mkdir failed.\n", __FILE__); @@ -448,7 +449,7 @@ static int __init switch_init() return 0; } -static void __exit switch_exit() +static void __exit switch_exit(void) { remove_proc_entry("switch", NULL); }