sysctl.c (2d3b559df3ed39258737789aae2ae7973d205bc1) sysctl.c (c31bcc8fb89fc2812663900589c6325ba35d9a65)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * sysctl.c: General linux system control interface
4 *
5 * Begun 24 March 1995, Stephen Tweedie
6 * Added /proc support, Dec 1995
7 * Added bdflush entry and intvec min/max checking, 2/23/96, Tom Dyas.
8 * Added hooks for /proc/sys/net (minor, minor patch), 96/4/1, Mike Shaver.

--- 1076 unchanged lines hidden (view full) ---

1085 break;
1086 }
1087
1088 val = convmul * val / convdiv;
1089 if ((min && val < *min) || (max && val > *max)) {
1090 err = -EINVAL;
1091 break;
1092 }
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * sysctl.c: General linux system control interface
4 *
5 * Begun 24 March 1995, Stephen Tweedie
6 * Added /proc support, Dec 1995
7 * Added bdflush entry and intvec min/max checking, 2/23/96, Tom Dyas.
8 * Added hooks for /proc/sys/net (minor, minor patch), 96/4/1, Mike Shaver.

--- 1076 unchanged lines hidden (view full) ---

1085 break;
1086 }
1087
1088 val = convmul * val / convdiv;
1089 if ((min && val < *min) || (max && val > *max)) {
1090 err = -EINVAL;
1091 break;
1092 }
1093 *i = val;
1093 WRITE_ONCE(*i, val);
1094 } else {
1094 } else {
1095 val = convdiv * (*i) / convmul;
1095 val = convdiv * READ_ONCE(*i) / convmul;
1096 if (!first)
1097 proc_put_char(&buffer, &left, '\t');
1098 proc_put_long(&buffer, &left, val, false);
1099 }
1100 }
1101
1102 if (!write && !first && left && !err)
1103 proc_put_char(&buffer, &left, '\n');

--- 1359 unchanged lines hidden ---
1096 if (!first)
1097 proc_put_char(&buffer, &left, '\t');
1098 proc_put_long(&buffer, &left, val, false);
1099 }
1100 }
1101
1102 if (!write && !first && left && !err)
1103 proc_put_char(&buffer, &left, '\n');

--- 1359 unchanged lines hidden ---