Showing the changes to kernel/sysctl_binary.c (1 of 5 files). Show all
Unified · Split
| @@ -971,7 +971,6 @@ out: · 970 unmodified lines | ||
| 971 | 971 | static ssize_t bin_intvec(struct file *file, |
| 972 | 972 | void __user *oldval, size_t oldlen, void __user *newval, size_t newlen) |
| 973 | 973 | { |
| 974 | − mm_segment_t old_fs = get_fs(); | |
| 975 | 974 | ssize_t copied = 0; |
| 976 | 975 | char *buffer; |
| 977 | 976 | ssize_t result; |
| @@ -984,13 +983,10 @@ static ssize_t bin_intvec(struct file *file, · 6 unmodified lines | ||
| 984 | 983 | if (oldval && oldlen) { |
| 985 | 984 | unsigned __user *vec = oldval; |
| 986 | 985 | size_t length = oldlen / sizeof(*vec); |
| 987 | − loff_t pos = 0; | |
| 988 | 986 | char *str, *end; |
| 989 | 987 | int i; |
| 990 | 988 | |
| 991 | − set_fs(KERNEL_DS); | |
| 992 | − result = vfs_read(file, buffer, BUFSZ - 1, &pos); | |
| 993 | − set_fs(old_fs); | |
| 989 | + result = kernel_read(file, 0, buffer, BUFSZ - 1); | |
| 994 | 990 | if (result < 0) |
| 995 | 991 | goto out_kfree; |
| 996 | 992 | |
| @@ -1017,7 +1013,6 @@ static ssize_t bin_intvec(struct file *file, · 20 unmodified lines | ||
| 1017 | 1013 | if (newval && newlen) { |
| 1018 | 1014 | unsigned __user *vec = newval; |
| 1019 | 1015 | size_t length = newlen / sizeof(*vec); |
| 1020 | − loff_t pos = 0; | |
| 1021 | 1016 | char *str, *end; |
| 1022 | 1017 | int i; |
| 1023 | 1018 | |
| @@ -1033,9 +1028,7 @@ static ssize_t bin_intvec(struct file *file, · 9 unmodified lines | ||
| 1033 | 1028 | str += snprintf(str, end - str, "%lu\t", value); |
| 1034 | 1029 | } |
| 1035 | 1030 | |
| 1036 | − set_fs(KERNEL_DS); | |
| 1037 | − result = vfs_write(file, buffer, str - buffer, &pos); | |
| 1038 | − set_fs(old_fs); | |
| 1031 | + result = kernel_write(file, buffer, str - buffer, 0); | |
| 1039 | 1032 | if (result < 0) |
| 1040 | 1033 | goto out_kfree; |
| 1041 | 1034 | } |
| @@ -1049,7 +1042,6 @@ out: · 7 unmodified lines | ||
| 1049 | 1042 | static ssize_t bin_ulongvec(struct file *file, |
| 1050 | 1043 | void __user *oldval, size_t oldlen, void __user *newval, size_t newlen) |
| 1051 | 1044 | { |
| 1052 | − mm_segment_t old_fs = get_fs(); | |
| 1053 | 1045 | ssize_t copied = 0; |
| 1054 | 1046 | char *buffer; |
| 1055 | 1047 | ssize_t result; |
| @@ -1062,13 +1054,10 @@ static ssize_t bin_ulongvec(struct file *file, · 6 unmodified lines | ||
| 1062 | 1054 | if (oldval && oldlen) { |
| 1063 | 1055 | unsigned long __user *vec = oldval; |
| 1064 | 1056 | size_t length = oldlen / sizeof(*vec); |
| 1065 | − loff_t pos = 0; | |
| 1066 | 1057 | char *str, *end; |
| 1067 | 1058 | int i; |
| 1068 | 1059 | |
| 1069 | − set_fs(KERNEL_DS); | |
| 1070 | − result = vfs_read(file, buffer, BUFSZ - 1, &pos); | |
| 1071 | − set_fs(old_fs); | |
| 1060 | + result = kernel_read(file, 0, buffer, BUFSZ - 1); | |
| 1072 | 1061 | if (result < 0) |
| 1073 | 1062 | goto out_kfree; |
| 1074 | 1063 | |
| @@ -1095,7 +1084,6 @@ static ssize_t bin_ulongvec(struct file *file, · 20 unmodified lines | ||
| 1095 | 1084 | if (newval && newlen) { |
| 1096 | 1085 | unsigned long __user *vec = newval; |
| 1097 | 1086 | size_t length = newlen / sizeof(*vec); |
| 1098 | − loff_t pos = 0; | |
| 1099 | 1087 | char *str, *end; |
| 1100 | 1088 | int i; |
| 1101 | 1089 | |
| @@ -1111,9 +1099,7 @@ static ssize_t bin_ulongvec(struct file *file, · 9 unmodified lines | ||
| 1111 | 1099 | str += snprintf(str, end - str, "%lu\t", value); |
| 1112 | 1100 | } |
| 1113 | 1101 | |
| 1114 | − set_fs(KERNEL_DS); | |
| 1115 | − result = vfs_write(file, buffer, str - buffer, &pos); | |
| 1116 | − set_fs(old_fs); | |
| 1102 | + result = kernel_write(file, buffer, str - buffer, 0); | |
| 1117 | 1103 | if (result < 0) |
| 1118 | 1104 | goto out_kfree; |
| 1119 | 1105 | } |
| @@ -1127,19 +1113,15 @@ out: · 7 unmodified lines | ||
| 1127 | 1113 | static ssize_t bin_uuid(struct file *file, |
| 1128 | 1114 | void __user *oldval, size_t oldlen, void __user *newval, size_t newlen) |
| 1129 | 1115 | { |
| 1130 | − mm_segment_t old_fs = get_fs(); | |
| 1131 | 1116 | ssize_t result, copied = 0; |
| 1132 | 1117 | |
| 1133 | 1118 | /* Only supports reads */ |
| 1134 | 1119 | if (oldval && oldlen) { |
| 1135 | − loff_t pos = 0; | |
| 1136 | 1120 | char buf[40], *str = buf; |
| 1137 | 1121 | unsigned char uuid[16]; |
| 1138 | 1122 | int i; |
| 1139 | 1123 | |
| 1140 | − set_fs(KERNEL_DS); | |
| 1141 | − result = vfs_read(file, buf, sizeof(buf) - 1, &pos); | |
| 1142 | − set_fs(old_fs); | |
| 1124 | + result = kernel_read(file, 0, buf, sizeof(buf) - 1); | |
| 1143 | 1125 | if (result < 0) |
| 1144 | 1126 | goto out; |
| 1145 | 1127 | |
| @@ -1175,18 +1157,14 @@ out: · 29 unmodified lines | ||
| 1175 | 1157 | static ssize_t bin_dn_node_address(struct file *file, |
| 1176 | 1158 | void __user *oldval, size_t oldlen, void __user *newval, size_t newlen) |
| 1177 | 1159 | { |
| 1178 | − mm_segment_t old_fs = get_fs(); | |
| 1179 | 1160 | ssize_t result, copied = 0; |
| 1180 | 1161 | |
| 1181 | 1162 | if (oldval && oldlen) { |
| 1182 | − loff_t pos = 0; | |
| 1183 | 1163 | char buf[15], *nodep; |
| 1184 | 1164 | unsigned long area, node; |
| 1185 | 1165 | __le16 dnaddr; |
| 1186 | 1166 | |
| 1187 | − set_fs(KERNEL_DS); | |
| 1188 | − result = vfs_read(file, buf, sizeof(buf) - 1, &pos); | |
| 1189 | − set_fs(old_fs); | |
| 1167 | + result = kernel_read(file, 0, buf, sizeof(buf) - 1); | |
| 1190 | 1168 | if (result < 0) |
| 1191 | 1169 | goto out; |
| 1192 | 1170 | |
| @@ -1215,7 +1193,6 @@ static ssize_t bin_dn_node_address(struct file *file, · 22 unmodified lines | ||
| 1215 | 1193 | } |
| 1216 | 1194 | |
| 1217 | 1195 | if (newval && newlen) { |
| 1218 | − loff_t pos = 0; | |
| 1219 | 1196 | __le16 dnaddr; |
| 1220 | 1197 | char buf[15]; |
| 1221 | 1198 | int len; |
| @@ -1232,9 +1209,7 @@ static ssize_t bin_dn_node_address(struct file *file, · 10 unmodified lines | ||
| 1232 | 1209 | le16_to_cpu(dnaddr) >> 10, |
| 1233 | 1210 | le16_to_cpu(dnaddr) & 0x3ff); |
| 1234 | 1211 | |
| 1235 | − set_fs(KERNEL_DS); | |
| 1236 | − result = vfs_write(file, buf, len, &pos); | |
| 1237 | − set_fs(old_fs); | |
| 1212 | + result = kernel_write(file, buf, len, 0); | |
| 1238 | 1213 | if (result < 0) |
| 1239 | 1214 | goto out; |
| 1240 | 1215 | } |