aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sysctl_binary.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sysctl_binary.c')
-rw-r--r--kernel/sysctl_binary.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/kernel/sysctl_binary.c b/kernel/sysctl_binary.c
index 02e1859f2ca8..58ea8c03662e 100644
--- a/kernel/sysctl_binary.c
+++ b/kernel/sysctl_binary.c
@@ -986,8 +986,9 @@ static ssize_t bin_intvec(struct file *file,
986 size_t length = oldlen / sizeof(*vec); 986 size_t length = oldlen / sizeof(*vec);
987 char *str, *end; 987 char *str, *end;
988 int i; 988 int i;
989 loff_t pos = 0;
989 990
990 result = kernel_read(file, 0, buffer, BUFSZ - 1); 991 result = kernel_read(file, buffer, BUFSZ - 1, &pos);
991 if (result < 0) 992 if (result < 0)
992 goto out_kfree; 993 goto out_kfree;
993 994
@@ -1016,6 +1017,7 @@ static ssize_t bin_intvec(struct file *file,
1016 size_t length = newlen / sizeof(*vec); 1017 size_t length = newlen / sizeof(*vec);
1017 char *str, *end; 1018 char *str, *end;
1018 int i; 1019 int i;
1020 loff_t pos = 0;
1019 1021
1020 str = buffer; 1022 str = buffer;
1021 end = str + BUFSZ; 1023 end = str + BUFSZ;
@@ -1029,7 +1031,7 @@ static ssize_t bin_intvec(struct file *file,
1029 str += scnprintf(str, end - str, "%lu\t", value); 1031 str += scnprintf(str, end - str, "%lu\t", value);
1030 } 1032 }
1031 1033
1032 result = kernel_write(file, buffer, str - buffer, 0); 1034 result = kernel_write(file, buffer, str - buffer, &pos);
1033 if (result < 0) 1035 if (result < 0)
1034 goto out_kfree; 1036 goto out_kfree;
1035 } 1037 }
@@ -1057,8 +1059,9 @@ static ssize_t bin_ulongvec(struct file *file,
1057 size_t length = oldlen / sizeof(*vec); 1059 size_t length = oldlen / sizeof(*vec);
1058 char *str, *end; 1060 char *str, *end;
1059 int i; 1061 int i;
1062 loff_t pos = 0;
1060 1063
1061 result = kernel_read(file, 0, buffer, BUFSZ - 1); 1064 result = kernel_read(file, buffer, BUFSZ - 1, &pos);
1062 if (result < 0) 1065 if (result < 0)
1063 goto out_kfree; 1066 goto out_kfree;
1064 1067
@@ -1087,6 +1090,7 @@ static ssize_t bin_ulongvec(struct file *file,
1087 size_t length = newlen / sizeof(*vec); 1090 size_t length = newlen / sizeof(*vec);
1088 char *str, *end; 1091 char *str, *end;
1089 int i; 1092 int i;
1093 loff_t pos = 0;
1090 1094
1091 str = buffer; 1095 str = buffer;
1092 end = str + BUFSZ; 1096 end = str + BUFSZ;
@@ -1100,7 +1104,7 @@ static ssize_t bin_ulongvec(struct file *file,
1100 str += scnprintf(str, end - str, "%lu\t", value); 1104 str += scnprintf(str, end - str, "%lu\t", value);
1101 } 1105 }
1102 1106
1103 result = kernel_write(file, buffer, str - buffer, 0); 1107 result = kernel_write(file, buffer, str - buffer, &pos);
1104 if (result < 0) 1108 if (result < 0)
1105 goto out_kfree; 1109 goto out_kfree;
1106 } 1110 }
@@ -1120,8 +1124,9 @@ static ssize_t bin_uuid(struct file *file,
1120 if (oldval && oldlen) { 1124 if (oldval && oldlen) {
1121 char buf[UUID_STRING_LEN + 1]; 1125 char buf[UUID_STRING_LEN + 1];
1122 uuid_t uuid; 1126 uuid_t uuid;
1127 loff_t pos = 0;
1123 1128
1124 result = kernel_read(file, 0, buf, sizeof(buf) - 1); 1129 result = kernel_read(file, buf, sizeof(buf) - 1, &pos);
1125 if (result < 0) 1130 if (result < 0)
1126 goto out; 1131 goto out;
1127 1132
@@ -1154,8 +1159,9 @@ static ssize_t bin_dn_node_address(struct file *file,
1154 char buf[15], *nodep; 1159 char buf[15], *nodep;
1155 unsigned long area, node; 1160 unsigned long area, node;
1156 __le16 dnaddr; 1161 __le16 dnaddr;
1162 loff_t pos = 0;
1157 1163
1158 result = kernel_read(file, 0, buf, sizeof(buf) - 1); 1164 result = kernel_read(file, buf, sizeof(buf) - 1, &pos);
1159 if (result < 0) 1165 if (result < 0)
1160 goto out; 1166 goto out;
1161 1167
@@ -1188,6 +1194,7 @@ static ssize_t bin_dn_node_address(struct file *file,
1188 __le16 dnaddr; 1194 __le16 dnaddr;
1189 char buf[15]; 1195 char buf[15];
1190 int len; 1196 int len;
1197 loff_t pos = 0;
1191 1198
1192 result = -EINVAL; 1199 result = -EINVAL;
1193 if (newlen != sizeof(dnaddr)) 1200 if (newlen != sizeof(dnaddr))
@@ -1201,7 +1208,7 @@ static ssize_t bin_dn_node_address(struct file *file,
1201 le16_to_cpu(dnaddr) >> 10, 1208 le16_to_cpu(dnaddr) >> 10,
1202 le16_to_cpu(dnaddr) & 0x3ff); 1209 le16_to_cpu(dnaddr) & 0x3ff);
1203 1210
1204 result = kernel_write(file, buf, len, 0); 1211 result = kernel_write(file, buf, len, &pos);
1205 if (result < 0) 1212 if (result < 0)
1206 goto out; 1213 goto out;
1207 } 1214 }