summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_sockbuf.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2006-09-06 21:59:36 +0000
committerjhb <jhb@FreeBSD.org>2006-09-06 21:59:36 +0000
commit27f742341b8ef59cde95e6ea310c9edc4f791b68 (patch)
tree3ed0bf311e286285d65d7588661d65bd81314e80 /sys/kern/uipc_sockbuf.c
parent8637a912149e261f1463b2d062506177d2c30e39 (diff)
downloadFreeBSD-src-27f742341b8ef59cde95e6ea310c9edc4f791b68.zip
FreeBSD-src-27f742341b8ef59cde95e6ea310c9edc4f791b68.tar.gz
Use sysctl_handle_long() instead of duplicating it's logic for
kern.ipc.maxsockbuf so that this sysctl works for 32-bit binaries running on amd64 via compat/freebsd32. MFC after: 3 days
Diffstat (limited to 'sys/kern/uipc_sockbuf.c')
-rw-r--r--sys/kern/uipc_sockbuf.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c
index d9f1ec8..f34df44 100644
--- a/sys/kern/uipc_sockbuf.c
+++ b/sys/kern/uipc_sockbuf.c
@@ -253,18 +253,14 @@ static int
sysctl_handle_sb_max(SYSCTL_HANDLER_ARGS)
{
int error = 0;
- u_long old_sb_max = sb_max;
+ u_long tmp_sb_max = sb_max;
- error = SYSCTL_OUT(req, arg1, sizeof(u_long));
+ error = sysctl_handle_long(oidp, &tmp_sb_max, arg2, req);
if (error || !req->newptr)
return (error);
- error = SYSCTL_IN(req, arg1, sizeof(u_long));
- if (error)
- return (error);
- if (sb_max < MSIZE + MCLBYTES) {
- sb_max = old_sb_max;
+ if (tmp_sb_max < MSIZE + MCLBYTES)
return (EINVAL);
- }
+ sb_max = tmp_sb_max;
sb_max_adj = (u_quad_t)sb_max * MCLBYTES / (MSIZE + MCLBYTES);
return (0);
}
OpenPOWER on IntegriCloud