mlx4: Remove driver specific fdb handlers.
[pandora-kernel.git] / kernel / sysctl_binary.c
index b669ca1..ebf7235 100644 (file)
@@ -970,7 +970,6 @@ out:
 static ssize_t bin_intvec(struct file *file,
        void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
 {
-       mm_segment_t old_fs = get_fs();
        ssize_t copied = 0;
        char *buffer;
        ssize_t result;
@@ -983,13 +982,10 @@ static ssize_t bin_intvec(struct file *file,
        if (oldval && oldlen) {
                unsigned __user *vec = oldval;
                size_t length = oldlen / sizeof(*vec);
-               loff_t pos = 0;
                char *str, *end;
                int i;
 
-               set_fs(KERNEL_DS);
-               result = vfs_read(file, buffer, BUFSZ - 1, &pos);
-               set_fs(old_fs);
+               result = kernel_read(file, 0, buffer, BUFSZ - 1);
                if (result < 0)
                        goto out_kfree;
 
@@ -1016,7 +1012,6 @@ static ssize_t bin_intvec(struct file *file,
        if (newval && newlen) {
                unsigned __user *vec = newval;
                size_t length = newlen / sizeof(*vec);
-               loff_t pos = 0;
                char *str, *end;
                int i;
 
@@ -1032,9 +1027,7 @@ static ssize_t bin_intvec(struct file *file,
                        str += snprintf(str, end - str, "%lu\t", value);
                }
 
-               set_fs(KERNEL_DS);
-               result = vfs_write(file, buffer, str - buffer, &pos);
-               set_fs(old_fs);
+               result = kernel_write(file, buffer, str - buffer, 0);
                if (result < 0)
                        goto out_kfree;
        }
@@ -1048,7 +1041,6 @@ out:
 static ssize_t bin_ulongvec(struct file *file,
        void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
 {
-       mm_segment_t old_fs = get_fs();
        ssize_t copied = 0;
        char *buffer;
        ssize_t result;
@@ -1061,13 +1053,10 @@ static ssize_t bin_ulongvec(struct file *file,
        if (oldval && oldlen) {
                unsigned long __user *vec = oldval;
                size_t length = oldlen / sizeof(*vec);
-               loff_t pos = 0;
                char *str, *end;
                int i;
 
-               set_fs(KERNEL_DS);
-               result = vfs_read(file, buffer, BUFSZ - 1, &pos);
-               set_fs(old_fs);
+               result = kernel_read(file, 0, buffer, BUFSZ - 1);
                if (result < 0)
                        goto out_kfree;
 
@@ -1094,7 +1083,6 @@ static ssize_t bin_ulongvec(struct file *file,
        if (newval && newlen) {
                unsigned long __user *vec = newval;
                size_t length = newlen / sizeof(*vec);
-               loff_t pos = 0;
                char *str, *end;
                int i;
 
@@ -1110,9 +1098,7 @@ static ssize_t bin_ulongvec(struct file *file,
                        str += snprintf(str, end - str, "%lu\t", value);
                }
 
-               set_fs(KERNEL_DS);
-               result = vfs_write(file, buffer, str - buffer, &pos);
-               set_fs(old_fs);
+               result = kernel_write(file, buffer, str - buffer, 0);
                if (result < 0)
                        goto out_kfree;
        }
@@ -1126,19 +1112,15 @@ out:
 static ssize_t bin_uuid(struct file *file,
        void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
 {
-       mm_segment_t old_fs = get_fs();
        ssize_t result, copied = 0;
 
        /* Only supports reads */
        if (oldval && oldlen) {
-               loff_t pos = 0;
                char buf[40], *str = buf;
                unsigned char uuid[16];
                int i;
 
-               set_fs(KERNEL_DS);
-               result = vfs_read(file, buf, sizeof(buf) - 1, &pos);
-               set_fs(old_fs);
+               result = kernel_read(file, 0, buf, sizeof(buf) - 1);
                if (result < 0)
                        goto out;
 
@@ -1174,18 +1156,14 @@ out:
 static ssize_t bin_dn_node_address(struct file *file,
        void __user *oldval, size_t oldlen, void __user *newval, size_t newlen)
 {
-       mm_segment_t old_fs = get_fs();
        ssize_t result, copied = 0;
 
        if (oldval && oldlen) {
-               loff_t pos = 0;
                char buf[15], *nodep;
                unsigned long area, node;
                __le16 dnaddr;
 
-               set_fs(KERNEL_DS);
-               result = vfs_read(file, buf, sizeof(buf) - 1, &pos);
-               set_fs(old_fs);
+               result = kernel_read(file, 0, buf, sizeof(buf) - 1);
                if (result < 0)
                        goto out;
 
@@ -1193,9 +1171,10 @@ static ssize_t bin_dn_node_address(struct file *file,
 
                /* Convert the decnet address to binary */
                result = -EIO;
-               nodep = strchr(buf, '.') + 1;
+               nodep = strchr(buf, '.');
                if (!nodep)
                        goto out;
+               ++nodep;
 
                area = simple_strtoul(buf, NULL, 10);
                node = simple_strtoul(nodep, NULL, 10);
@@ -1214,7 +1193,6 @@ static ssize_t bin_dn_node_address(struct file *file,
        }
 
        if (newval && newlen) {
-               loff_t pos = 0;
                __le16 dnaddr;
                char buf[15];
                int len;
@@ -1231,9 +1209,7 @@ static ssize_t bin_dn_node_address(struct file *file,
                                le16_to_cpu(dnaddr) >> 10,
                                le16_to_cpu(dnaddr) & 0x3ff);
 
-               set_fs(KERNEL_DS);
-               result = vfs_write(file, buf, len, &pos);
-               set_fs(old_fs);
+               result = kernel_write(file, buf, len, 0);
                if (result < 0)
                        goto out;
        }