| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
The remainder of the PR is still open.
PR: kern/20609 (partial fix)
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pre-rfork code assumed inherent locking of a process's file descriptor
array. However, with the advent of rfork() the file descriptor table
could be shared between processes. This patch closes over a dozen
serious race conditions related to one thread manipulating the table
(e.g. closing or dup()ing a descriptor) while another is blocked in
an open(), close(), fcntl(), read(), write(), etc...
PR: kern/11629
Discussed with: Alexander Viro <viro@math.psu.edu>
|
|
|
|
|
|
| |
Submitted by: josh@zipperup.org
Submitted by: Robert Drehmel <robd@gmx.net>
Approved by: msmith
|
|
|
|
|
|
|
| |
Submitted by: josh@zipperup.org
Submitted by: Robert Drehmel <robd@gmx.net>
Submitted by: archie
Approved by: archie
|
| |
|
|
|
|
|
|
| |
minspeed/maxspeed specified by the hw driver.
Submitted by: Andrew Gordon <arg@arg1.demon.co.uk>
|
|
|
|
| |
PR: kern/22756
|
|
|
|
|
|
| |
are in softclock() for a long time. The old code already did an
splx()/slphigh() pair here, I just missed adding in the equivalent mutex
operations on sched_lock earlier.
|
| |
|
|
|
|
|
|
|
|
|
| |
This makes crash recovery work for stripe sizes that are not multiples of
DEFAULT_REVIVE_BLOCKSIZE (currently 64 kB).
While we're here, fix a few cosmetic nits.
Reviewed by: grog
Sponsored by: Enitel ASA (http://www.enitel.no/)
|
|
|
|
|
| |
Based on patch submitted by: Makoto MATSUSHITA <matusita@jp.freebsd.org>
Reviewed by: marcel, bde
|
|
|
|
|
|
|
|
|
| |
may block on a mutex while on the sleep queue without corrupting
it.
- Move dropping of Giant to after the acquire of sched_lock.
Tested by: John Hay <jhay@icomtek.csir.co.za>
jhb
|
|
|
|
|
|
|
| |
instead of DIAGNOSTIC.
- Remove the p_wchan check as it no longer applies since a process may be
switched out during CURSIG() within msleep() or mawait().
- Remove an extra sanity check only needed during the early SMPng work.
|
| |
|
|
|
|
| |
Submitted by: mckusick
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
with Julian and Archie.
Implement a new ``sizedstring'' parse type for dealing with field pairs
consisting of a uint16_t followed by a data field of that size, and use
this to deal with the data_len and data fields.
Written by: Archie with some input by me
Agreed in principle by: julian
|
|
|
|
|
|
|
|
| |
untimeout() not being called with Giant in those functions. For now,
use the sched_lock to protect the callout wheel in softclock() and in
the various timeout and callout functions.
Noticed by: tegge
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
16-bit mode. Technically, pcn_probe() is destructive because once the
chip goes into 32-bit mode, the only way to get it out again is a
hardware reset. And once the device is in 32-bit mode, the lnc driver
won't be able to talk to it. So if pcn_probe() is called before the
lnc probe routine, and pcn_probe() rejects the chip as one it doesn't
support, the lnc driver will be SOL.
I don't like this. I think it's a design flaw that you can't switch
the chip out of 32-bit mode once it's selected. The only 'right'
solution is for the pcn driver to support all of the PCI devices
in 32-bit mode, however I don't have samples of all the PCnet series
cards for testing.
|
| |
|
|
|
|
|
|
| |
files. Also a minor white space nit.
Submitted by: bde
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
acquire Giant as needed in functions that call mi_switch(). The releases
need to be done outside of the sched_lock to avoid potential deadlocks
from trying to acquire Giant while interrupts are disabled.
Submitted by: witness
|
|
|
|
| |
reviewed by: marcel
|
|
|
|
|
|
|
|
| |
linux_rt_sendsig() and restore the same signal mask linux does
in rt_sigreturn(). This gets us saving/restoring all 64-bits of the
linux sigset_t in rt signals.
Reviewed by: marcel
|
| |
|
|
|
|
|
|
|
|
| |
idea to be holding the sched_lock while we are calling it. As such,
release sched_lock before calling CURSIG() in msleep() and mawait() and
reacquire it after CURSIG() returns.
Submitted by: witness
|
|
|
|
|
|
|
|
|
|
| |
to our native connect(). This is required to deal with the differences
in the way linux handles connects on non-blocking sockets.
This gets the private beta of the Compaq Linux/alpha JDK working
on FreeBSD/alpha
Approved by: marcel
|
|
|
|
| |
what linux/i386 uses
|
|
|
|
|
|
|
|
|
| |
tsleep(). Namely, mawait() takes an extra argument which is a mutex
to drop when going to sleep. Just as with msleep(), if the priority
argument includes the PDROP flag, then the mutex will be dropped and will
not be reacquired when the process wakes up.
- Add in a backwards compatible macro await() that passes in NULL as the
mutex argument to mawait().
|
|
|
|
|
| |
mtx_assert() that ensures the mutex we release during msleep() is both
not recursed and owned by the current process.
|
|
|
|
| |
- Fix a buglet in a comment above await()
|
|
|
|
|
|
|
|
|
|
|
|
| |
except that it uses the MTX_NOSWITCH flag while it releases Giant via
mtx_exit().
- Add a mtx_recursed() primitive. This primitive should only be used on
a mutex owned by the current process. It will return non-zero if the
mutex is recursively owned, or zero otherwise.
- Add two new flags MA_RECURSED and MA_NOTRECURSED that can be used in
conjuction with MA_OWNED to control the assertion checked by mtx_assert().
- Fix some of the KTR tracepoint strings to use %p when displaying the lock
field of a mutex, which is a uintptr_t.
|
| |
|
|
|
|
| |
- Assert that Giant is not owned during the main loop of sithd_loop().
|
| |
|
|
|
|
| |
non-SMP case.
|
| |
|
| |
|
|
|
|
|
| |
checks, clock interrupts, and device interrupts.
- Assert that Giant is not owned during the main loop of ithd_loop().
|
|
|
|
|
|
| |
- On SMP systems display the cpu number with each message
- If ktr_verbose > 1, then include the filename and line number with each
trace message
|
|
|
|
| |
Submitted by: Warner Losh <imp@village.org>
|
| |
|
|
|
|
|
|
| |
are about to call cpu_switch() anyways.
Found by: witness
|
|
|
|
|
|
|
| |
macros which provide the same functionality and are a bit more
efficient, convert use of CIRCLEQ's in netgraph PPP code to TAILQ's.
Reviewed by: Archie Cobbs <archie@dellroad.org>
|
| |
|
| |
|
|
|
|
| |
other power management devices are enabled.
|
| |
|