| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
automatically hacks on the active copy of the IDT if f00f_hack()
has changed it. This also allows simplifications in setidt().
This fixes breakage of FP exception handling by rev.1.55 of
sys/kernel.h. FP exceptions were sent to npx.c's probe handlers
because npx.c "restored" the old handlers to the wrong copy of the
IDT. The SYSINIT for f00f_hack() was purposely run quite late to
avoid problems like this, but it is bogusly associated with the
SYSINIT for proc0 so it was moved with the latter.
Problem reported and fix tested by: Martin Cracauer <cracauer@cons.org>
|
|
|
|
|
|
|
|
|
| |
This is the change to struct sockets that gets rid of so_uid and replaces
it with a much more useful struct pcred *so_cred. This is here to be able
to do socket-level credential checks (i.e. IPFW uid/gid support, to be added
to HEAD soon). Along with this comes an update to pidentd which greatly
simplifies the code necessary to get a uid from a socket. Soon to come:
a sysctl() interface to finding individual sockets' credentials.
|
| |
|
|
|
|
|
|
| |
DEVICE_PROBE can return priorities.
Reviewed by: Doug Rabson <dfr@nlsystems.com>
|
| |
|
| |
|
|
|
|
|
| |
operator special case. Delete special case code from vnode_if.sh,
vnode_if.src, umap_vnops.c, and null_vnops.c.
|
|
|
|
|
|
|
| |
Make syscall return value a register_t.
Based on a patch from Hidetoshi Shimokawa.
Mostly reviewed by: Hidetoshi Shimokawa and Bruce Evans.
|
|
|
|
|
|
|
|
|
| |
would occur when clustering them - caused by running out of buffers
and taking a degenerate code path as a result. It appears that waiting
instead for buffers to become available is okay.
Submitted by: Matthew Dillon <dillon@apollo.backplane.com>
Discovered by: Craig A Soules <soules+@andrew.cmu.edu>
|
|
|
|
|
|
| |
call to flushdirtybuffers() then sleep in waitfreebuffers().
PR: 11697
Reviewed by: David Greenman, Matt Dillon
|
|
|
|
|
| |
kern/vfs_subr.c named speedup_syncer() which handles the speedup request.
Change the various clients of rushjob to use the new function.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- this causes POSIX locking to use the thread group leader
(p->p_leader) as the locking thread for all advisory locks.
In non-kernel-threaded code p->p_leader == p, so this will have
no effect.
This results in (more) correct POSIX threaded flock-ing semantics.
It also prevents the leader from exiting before any of the children.
(so that p->p_leader will never be stale) in exit1().
We have been running this patch for over a month now in our lab
under load and at customer sites.
Submitted by: John Plevyak <jplevyak@inktomi.com>
|
|
|
|
|
|
| |
Other brucification tweaks.
Obtained from: bde@freebsd.org
|
|
|
|
|
| |
reentrant because it returns a static buffer. This results in a race condition
when/if an interrupt handler calls log(), printf() etc. Fix this.
|
|
|
|
| |
Submitted by: Matthew Dillon <dillon@apollo.backplane.com> and myself
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to either enqueue or free their mbuf chains, but tcp_usr_send() was
dropping them on the floor if the tcpcb/inpcb has been torn down in the
middle of a send/write attempt. This has been responsible for a wide
variety of mbuf leak patterns, ranging from slow gradual leakage to rather
rapid exhaustion. This has been a problem since before 2.2 was branched
and appears to have been fixed in rev 1.16 and lost in 1.23/1.28.
Thanks to Jayanth Vijayaraghavan <jayanth@yahoo-inc.com> for checking
(extensively) into this on a live production 2.2.x system and that it
was the actual cause of the leak and looks like it fixes it. The machine
in question was loosing (from memory) about 150 mbufs per hour under
load and a change similar to this stopped it. (Don't blame Jayanth
for this patch though)
An alternative approach to this would be to recheck SS_CANTSENDMORE etc
inside the splnet() right before calling pru_send() after all the potential
sleeps, interrupts and delays have happened. However, this would mean
exposing knowledge of the tcp stack's reset handling and removal of the
pcb to the generic code. There are other things that call pru_send()
directly though.
Problem originally noted by: John Plevyak <jplevyak@inktomi.com>
|
| |
|
|
|
|
| |
function for now, but that will change.
|
|
|
|
| |
Reviewed by: silence on on -current
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cdevsw_add() function now finds the major number(s) in the
struct cdevsw passed to it. cdevsw_add_generic() is no longer
needed, cdevsw_add() does the same thing.
cdevsw_add() will print an message if the d_maj field looks bogus.
Remove nblkdev and nchrdev variables. Most places they were used
bogusly. Instead check a dev_t for validity by seeing if devsw()
or bdevsw() returns NULL.
Move bdevsw() and devsw() functions to kern/kern_conf.c
Bump __FreeBSD_version to 400006
This commit removes:
72 bogus makedev() calls
26 bogus SYSINIT functions
if_xe.c bogusly accessed cdevsw[], author/maintainer please fix.
I4b and vinum not changed. Patches emailed to authors. LINT
probably broken until they catch up.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reformat and initialize correctly all "struct cdevsw".
Initialize the d_maj and d_bmaj fields.
The d_reset field was not removed, although it is never used.
I used a program to do most of this, so all the files now use the
same consistent format. Please keep it that way.
Vinum and i4b not modified, patches emailed to respective authors.
|
|
|
|
|
| |
creates it if it doesn't exist.
* Rename resource_list_remove() to resource_list_delete() for consistency.
|
|
|
|
|
|
|
| |
easier to use and more flexible.
* Change BUS_ADD_CHILD to take an order argument instead of a place.
* Define a partial ordering for isa devices so that sensitive devices are
probed before non-sensitive ones.
|
|
|
|
|
|
| |
how this hasn't caused problems before.
Submitted by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
|
|
|
|
|
| |
rootdev in the mfs initialisation code iff MFS_ROOT (which Bruce doesn't
like). Damned if I do - damned if I don't.
|
|
|
|
|
|
|
|
| |
if there is no character device associated with the block device. In this
case that doesn't matter because bdevvp() doesn't use the character
device structure.
I can use the pointy bit of the axe too.
|
|
|
|
|
| |
Broken by: phk
Problem ignored by: phk
|
|
|
|
| |
is in U-area.
|
|
|
|
| |
which needs to manage resources for its children.
|
| |
|
|
|
|
| |
Submitted by: bde
|
|
|
|
|
|
| |
should be handling NULL returns already.
Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
|
|
|
|
|
| |
PR: 1179
Submitted-by: lha@stacken.kth.se
|
|
|
|
|
|
| |
these ioctls are attempted. Move a misplaced comment.
Pointed out by: Bruce
|
|
|
|
| |
related crashes.
|
| |
|
|
|
|
| |
Reviewed by: Poul-Henning Kamp <phk@critter.freebsd.dk>
|
|
|
|
|
|
|
| |
eliminating the need for the pmap_object_init_pt calls in imgact_* and
mmap.
Reviewed by: David Greenman <dg@root.com>
|
| |
|
|
|
|
|
|
|
| |
It never makes sense to specify MAP_COPY_NEEDED without also specifying
MAP_COPY_ON_WRITE, and vice versa. Thus, MAP_COPY_ON_WRITE suffices.
Reviewed by: David Greenman <dg@root.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
instances to a parent bus.
* Define a new method BUS_ADD_CHILD which can be called from DEVICE_IDENTIFY
to add new instances.
* Add a generic implementation of DEVICE_PROBE which calls DEVICE_IDENTIFY
for each driver attached to the parent's devclass.
* Move the hint-based isa probe from the isa driver to a new isahint driver
which can be shared between i386 and alpha.
|
| |
|
|
|
|
|
|
|
|
| |
inodes were synced every 15 seconds. This is now reversed as during
directory create, we cannot commit the directory entry until its
inode has been written. With this switch, the inodes will be more
likely to be written by the time that the directory is written thus
reducing the number of directory rollbacks that are needed.
|
|
|
|
| |
targets.
|
| |
|
|
|
|
|
|
|
|
|
| |
Changed to `const void *'. utrace() is undocumented, so nothing should
notice.
Fixed missing consts for utrace() and ktrace() in syscalls.master.
sys/ktrace.h is missing some Lite2 changes of shorts to ints.
|
| |
|
| |
|