Revision tags: release/6.0.0_cvs, release/6.0.0 |
|
#
d8339a26 |
| 08-Aug-2005 |
Christian S.J. Peron <csjp@FreeBSD.org> |
Drop in a WITNESS_WARN into SYSCTL_IN to make sure that we are not holding any non-sleep-able-locks locks when copyin is called. This gets executed un-conditionally since we have no function to wire
Drop in a WITNESS_WARN into SYSCTL_IN to make sure that we are not holding any non-sleep-able-locks locks when copyin is called. This gets executed un-conditionally since we have no function to wire the buffer in this direction.
Pointed out by: truckman MFC after: 1 week
show more ...
|
#
417ab24f |
| 08-Aug-2005 |
Christian S.J. Peron <csjp@FreeBSD.org> |
Check to see if we wired the user-supplied buffers in SYSCTL_OUT, if the buffer has not been wired and we are holding any non-sleep-able locks, drop a witness warning. If the buffer has not been wire
Check to see if we wired the user-supplied buffers in SYSCTL_OUT, if the buffer has not been wired and we are holding any non-sleep-able locks, drop a witness warning. If the buffer has not been wired, it is possible that the writing of the data can sleep, especially if the page is not in memory. This can result in a number of different locking issues, including dead locks.
MFC after: 1 week Discussed with: rwatson Reviewed by: jhb
show more ...
|
Revision tags: release/5.4.0_cvs, release/5.4.0 |
|
#
85eb15a2 |
| 10-Feb-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Make another bunch of SYSCTL_NODEs static
|
#
5937226d |
| 07-Feb-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add a missing prefix to a struct field for consistency.
|
Revision tags: release/4.11.0_cvs, release/4.11.0 |
|
#
46003fb3 |
| 31-Dec-2004 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Be consistent and always use form 'return (value);' instead of 'return value;'. We had (before this change) 84 lines where it was style(9)-clean and 15 lines where it was not.
|
Revision tags: release/5.3.0_cvs, release/5.3.0 |
|
#
df970488 |
| 27-Oct-2004 |
Robert Watson <rwatson@FreeBSD.org> |
Move the 'debug' sysctl tree under options SYSCTL_DEBUG. It generates an inordinate amount of synchronous console output that is fairly undesirable on slower serial console. It's easily hit by acci
Move the 'debug' sysctl tree under options SYSCTL_DEBUG. It generates an inordinate amount of synchronous console output that is fairly undesirable on slower serial console. It's easily hit by accident when frobbing other sysctls late at night.
show more ...
|
#
a1bd71b2 |
| 12-Oct-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add missing zero flag arguments to calls to userland_sysctl()
|
#
a7bc3102 |
| 12-Oct-2004 |
Peter Wemm <peter@FreeBSD.org> |
Put on my peril sensitive sunglasses and add a flags field to the internal sysctl routines and state. Add some code to use it for signalling the need to downconvert a data structure to 32 bits on a
Put on my peril sensitive sunglasses and add a flags field to the internal sysctl routines and state. Add some code to use it for signalling the need to downconvert a data structure to 32 bits on a 64 bit OS when requested by a 32 bit app.
I tried to do this in a generic abi wrapper that intercepted the sysctl oid's, or looked up the format string etc, but it was a real can of worms that turned into a fragile mess before I even got it partially working.
With this, we can now run 'sysctl -a' on a 32 bit sysctl binary and have it not abort. Things like netstat, ps, etc have a long way to go.
This also fixes a bug in the kern.ps_strings and kern.usrstack hacks. These do matter very much because they are used by libc_r and other things.
show more ...
|
#
00fbcda8 |
| 28-Jul-2004 |
Alexander Kabaev <kan@FreeBSD.org> |
Avoid casts as lvalues.
|
#
56f21b9d |
| 26-Jul-2004 |
Colin Percival <cperciva@FreeBSD.org> |
Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is somewhat clearer, but more importantly allows for a consistent naming scheme for suser_cred flags.
The old name is still defined,
Rename suser_cred()'s PRISON_ROOT flag to SUSER_ALLOWJAIL. This is somewhat clearer, but more importantly allows for a consistent naming scheme for suser_cred flags.
The old name is still defined, but will be removed in a few days (unless I hear any complaints...)
Discussed with: rwatson, scottl Requested by: jhb
show more ...
|
#
b4adfcf2 |
| 11-Jun-2004 |
Brian Feldman <green@FreeBSD.org> |
Make sysctl_wire_old_buffer() respect ENOMEM from vslock() by marking the valid length as 0. This prevents vsunlock() from removing a system wire from memory that was not successfully wired (by us).
Make sysctl_wire_old_buffer() respect ENOMEM from vslock() by marking the valid length as 0. This prevents vsunlock() from removing a system wire from memory that was not successfully wired (by us).
Submitted by: tegge
show more ...
|
Revision tags: release/4.10.0_cvs, release/4.10.0 |
|
#
7f8a436f |
| 05-Apr-2004 |
Warner Losh <imp@FreeBSD.org> |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
#
a961520c |
| 16-Mar-2004 |
Don Lewis <truckman@FreeBSD.org> |
Rename the wiredlen member of struct sysctl_req to validlen and always set it to avoid the need for a bunch of code that tests whether or not the lock member is set to REQ_WIRED in order to determine
Rename the wiredlen member of struct sysctl_req to validlen and always set it to avoid the need for a bunch of code that tests whether or not the lock member is set to REQ_WIRED in order to determine which length member should be used.
Fix another bug in the oldlen return value code.
Fix a potential wired memory leak if a sysctl handler uses sysctl_wire_old_buffer() and returns an EAGAIN error to trigger a retry.
show more ...
|
#
8ac3e8e9 |
| 16-Mar-2004 |
Don Lewis <truckman@FreeBSD.org> |
Don't bother calling vslock() and vsunlock() if oldlen is zero.
If vslock() returns ENOMEM, sysctl_wire_old_buffer() should set wiredlen to zero and return zero (success) so that the handler will op
Don't bother calling vslock() and vsunlock() if oldlen is zero.
If vslock() returns ENOMEM, sysctl_wire_old_buffer() should set wiredlen to zero and return zero (success) so that the handler will operate according to sysctl(3): The size of the buffer is given by the location specified by oldlenp before the call, and that location gives the amount of data copied after a successful call and after a call that returns with the error code ENOMEM. The handler will return an ENOMEM error because the zero length buffer will overflow.
show more ...
|
#
ce8660e3 |
| 15-Mar-2004 |
Don Lewis <truckman@FreeBSD.org> |
Revert to the original vslock() and vsunlock() API with the following exceptions: Retain the recently added vslock() error return.
The type of the len argument should be size_t, not u_int.
Sugges
Revert to the original vslock() and vsunlock() API with the following exceptions: Retain the recently added vslock() error return.
The type of the len argument should be size_t, not u_int.
Suggested by: bde
show more ...
|
#
16929939 |
| 05-Mar-2004 |
Don Lewis <truckman@FreeBSD.org> |
Undo the merger of mlock()/vslock and munlock()/vsunlock() and the introduction of kern_mlock() and kern_munlock() in src/sys/kern/kern_sysctl.c 1.150 src/sys/vm/vm_extern.h
Undo the merger of mlock()/vslock and munlock()/vsunlock() and the introduction of kern_mlock() and kern_munlock() in src/sys/kern/kern_sysctl.c 1.150 src/sys/vm/vm_extern.h 1.69 src/sys/vm/vm_glue.c 1.190 src/sys/vm/vm_mmap.c 1.179 because different resource limits are appropriate for transient and "permanent" page wiring requests.
Retain the kern_mlock() and kern_munlock() API in the revived vslock() and vsunlock() functions.
Combine the best parts of each of the original sets of implementations with further code cleanup. Make the mclock() and vslock() implementations as similar as possible.
Retain the RLIMIT_MEMLOCK check in mlock(). Move the most strigent test, which can return EAGAIN, last so that requests that have no hope of ever being satisfied will not be retried unnecessarily.
Disable the test that can return EAGAIN in the vslock() implementation because it will cause the sysctl code to wedge.
Tested by: Cy Schubert <Cy.Schubert AT komquats.com>
show more ...
|
#
21885af5 |
| 27-Feb-2004 |
Dag-Erling Smørgrav <des@FreeBSD.org> |
Add sysctl_move_oid() which reparents an existing OID.
|
#
47934cef |
| 26-Feb-2004 |
Don Lewis <truckman@FreeBSD.org> |
Split the mlock() kernel code into two parts, mlock(), which unpacks the syscall arguments and does the suser() permission check, and kern_mlock(), which does the resource limit checking and calls vm
Split the mlock() kernel code into two parts, mlock(), which unpacks the syscall arguments and does the suser() permission check, and kern_mlock(), which does the resource limit checking and calls vm_map_wire(). Split munlock() in a similar way.
Enable the RLIMIT_MEMLOCK checking code in kern_mlock().
Replace calls to vslock() and vsunlock() in the sysctl code with calls to kern_mlock() and kern_munlock() so that the sysctl code will obey the wired memory limits.
Nuke the vslock() and vsunlock() implementations, which are no longer used.
Add a member to struct sysctl_req to track the amount of memory that is wired to handle the request.
Modify sysctl_wire_old_buffer() to return an error if its call to kern_mlock() fails. Only wire the minimum of the length specified in the sysctl request and the length specified in its argument list. It is recommended that sysctl handlers that use sysctl_wire_old_buffer() should specify reasonable estimates for the amount of data they want to return so that only the minimum amount of memory is wired no matter what length has been specified by the request.
Modify the callers of sysctl_wire_old_buffer() to look for the error return.
Modify sysctl_old_user to obey the wired buffer length and clean up its implementation.
Reviewed by: bms
show more ...
|
Revision tags: release/5.2.1_cvs, release/5.2.1 |
|
#
63dba32b |
| 22-Feb-2004 |
Pawel Jakub Dawidek <pjd@FreeBSD.org> |
Reimplement sysctls handling by MAC framework. Now I believe it is done in the right way.
Removed some XXMAC cases, we now assume 'high' integrity level for all sysctls, except those with CTLFLAG_AN
Reimplement sysctls handling by MAC framework. Now I believe it is done in the right way.
Removed some XXMAC cases, we now assume 'high' integrity level for all sysctls, except those with CTLFLAG_ANYBODY flag set. No more magic.
Reviewed by: rwatson Approved by: rwatson, scottl (mentor) Tested with: LINT (compilation), mac_biba(4) (functionality)
show more ...
|
Revision tags: release/5.2.0_cvs, release/5.2.0, release/4.9.0_cvs, release/4.9.0 |
|
#
f0597024 |
| 05-Oct-2003 |
Bruce M Simpson <bms@FreeBSD.org> |
Bring back sysctl_wire_old_buffer(). Fix a bug in sysctl_handle_opaque() whereby the pointers would not get reset on a retried SYSCTL_OUT() call.
Noticed by: bde
|
#
dcf59a59 |
| 05-Oct-2003 |
Bruce M Simpson <bms@FreeBSD.org> |
Fix a security problem in sysctl() the long way round.
Use pre-emption detection to avoid the need for wiring a userland buffer when copying opaque data structures.
sysctl_wire_old_buffer() is now
Fix a security problem in sysctl() the long way round.
Use pre-emption detection to avoid the need for wiring a userland buffer when copying opaque data structures.
sysctl_wire_old_buffer() is now a no-op. Other consumers of this API should use pre-emption detection to notice update collisions.
vslock() and vsunlock() should no longer be called by any code and should be retired in subsequent commits.
Discussed with: pete, phk MFC after: 1 week
show more ...
|
#
51830edc |
| 05-Oct-2003 |
Bruce M Simpson <bms@FreeBSD.org> |
Fold the vslock() and vsunlock() calls in this file with #if 0's; they will go away in due course. Involuntary pre-emption means that we can't count on wiring of pages alone for consistency when perf
Fold the vslock() and vsunlock() calls in this file with #if 0's; they will go away in due course. Involuntary pre-emption means that we can't count on wiring of pages alone for consistency when performing a SYSCTL_OUT() bigger than PAGE_SIZE.
Discussed with: pete, phk
show more ...
|
#
5be99846 |
| 05-Oct-2003 |
Bruce M Simpson <bms@FreeBSD.org> |
Remove magic numbers surrounding locking state in the sysctl module, and replace them with more meaningful defines.
|
#
677b542e |
| 11-Jun-2003 |
David E. O'Brien <obrien@FreeBSD.org> |
Use __FBSDID().
|
Revision tags: release/5.1.0_cvs, release/5.1.0 |
|
#
193f2edb |
| 29-May-2003 |
Maxime Henrion <mux@FreeBSD.org> |
When loading a module that contains a sysctl which is already compiled in the kernel, the sysctl_register() call would fail, as expected. However, when unloading this module again, the kernel would t
When loading a module that contains a sysctl which is already compiled in the kernel, the sysctl_register() call would fail, as expected. However, when unloading this module again, the kernel would then panic in sysctl_unregister(). Print a message error instead.
Submitted by: Nicolai Petri <nicolai@catpipe.net> Reviewed by: imp Approved by: re@ (jhb)
show more ...
|