rwatson [Sat, 6 Mar 2010 22:04:45 +0000 (22:04 +0000)]
Remove unnecessary locking of divcbinfo lock from div_output(): this has not
been required since FreeBSD 7.0 when the so_pcb pointer leading to inp was
guaranteed to be stable when a valid socket reference is held (as it is in
the output path).
rwatson [Sat, 6 Mar 2010 21:38:31 +0000 (21:38 +0000)]
Add a comment to tcp_usr_accept() to indicate why it is we acquire the
tcbinfo lock there: r175612, which re-added it, masked a race between
sonewconn(2) and accept(2) that could allow an incompletely initialized
address on a newly-created socket on a listen queue to be exposed. Full
details can be found in that commit message.
Introduce a function rn_detachhead() that will free the
radix table root nodes. This is only needed (and available)
in the virtualization case to free the resources when tearing
down a virtual network stack.
Destroy UDP UMA zones (empty or not) upon network stack teardown
to not leak them making the VM subsystem unhappy with every stoped vnet(*).
We will still leak pages (especially as zones are marked NOFREE).
Rework reference counting in case we queue into the netisr,
or overflow the netisr queue and fall back to the interface
queue so that we can garuantee that the ifnet pointer stays
valid. Formerly we ended up with reference counts <= 0 in
case the netisr had returned ENOBUFS. The idea is to track
any packet in the netisr queue and only change the refount
on edge operations for the fallback interface queue. This
also avoids problems in case the if_snd.ifq_len lies to us.
Also rework refount assertions to make sure they trigger if
we go below 1. Formerly a negative refence count did not
trigger the assert as the refcount variable is u_int.
ache [Sat, 6 Mar 2010 19:21:57 +0000 (19:21 +0000)]
1) Rewrite input processing to not exit with error on the first EILSEQ found
in the input data but fallback to "binary equal" check instead.
POSIX says: "The input file shall be a text file", nothing more,
so the text file with illegal sequence is valid input.
BTW, GNU sort does not fails on EILSEQ too.
2) Speedup input processing a bit in complex cases like skipping fields,
chars or ignore case.
3) Enforce the implied LINE_MAX limit (from POSIX definition of "text file"
and POSIX uniq(1) description).
jilles [Sat, 6 Mar 2010 16:57:53 +0000 (16:57 +0000)]
sh: Improve the command builtin:
* avoid unnecessary fork
* allow executing builtins via command
* executing a special builtin via command removes its special properties
jmallett [Sat, 6 Mar 2010 05:49:15 +0000 (05:49 +0000)]
Check for device faults and for failures to set DRQ when expected, rather
than spinning forever. This fixes booting with CF ejected.
NB: I've made the driver pretty chatty about errors in case there's hardware
that operates differently to mine, so we can easily track down any issues.
jmallett [Sat, 6 Mar 2010 05:45:49 +0000 (05:45 +0000)]
o) Consistently use MIPS_KSEGn_TO_PHYS instead of MIPS_{,UN}CACHED_TO_PHYS etc.
Get rid of the macros that spell KSEG0 CACHED and KSEG1 UNCACHED.
o) Get rid of some nearby duplicated and unused macros.
jmallett [Fri, 5 Mar 2010 22:48:34 +0000 (22:48 +0000)]
o) Simplify the implementation of bus read/write functions, and eliminate some
redundant implementations.
o) Use ABI, not ISA, to determine address length.
o) Disable and restore interrupts around any operation that uses all 64 bits of
a register. In kernels using the O32 ABI, the upper 32 bits of those
registers is likely to be corrupted by an interrupt.
jmallett [Fri, 5 Mar 2010 22:44:49 +0000 (22:44 +0000)]
Do not mask off the low byte of the chipid, it makes some of the case
statements unreachable and seems to be wrong. Fixes detection of the number
of ports available on some models.
imp [Fri, 5 Mar 2010 16:56:08 +0000 (16:56 +0000)]
Add support for o32 (when it isn't the default), n32, n64, and o64 to
the linker spec. Provide the ability to have a default ABI that's
different than o32 (again, for all 4).
Submitted by: C. Jayachandran (JC) with tweaks for o64/o32 by me
- Use errx(3) instead of err(3) when checking if snprintf(3) succeeded.
snprintf(3) doesn't set errno in the tested cases.
- If the same argument reference (for example %1) was specified more than
once, the command didn't necessarily fit to the final command buffer. Fix
this using a dynamic sbuf buffer. Add a few regression tests for the case.
netchild [Fri, 5 Mar 2010 14:34:33 +0000 (14:34 +0000)]
Redirect stdin from /dev/null when starting a jail:
At least in RELENG_7 this fixes some start problems for some programs
from the ports. It is also more correct, as a jail shall not expect
input (interactivity) from the jail-host.
Revert the current behavior of starting jails in the background and
make it optional only for the start of jails (jail_parallell_start=YES
in rc.conf):
- The stop can not be done in the background, the system needs to wait
until everything is stopped correctly before it can reboot or power
down.
- The start should not be done in parallel by default, this not only
breaks POLA for people comming from RELENG_x, it may also break a
dependency chain with other scripts in the jail-host, which need to
do some stuff after the jails are up and running (e.g. hardlinking
a mysql socket from one jail into another one).
nyan [Fri, 5 Mar 2010 11:11:42 +0000 (11:11 +0000)]
MFx86: the part of r204641
In order to do that cleanly, lapic_setup_clock(), on both ia32 and amd64,
now accepts as arguments the desired sources to handle, and returns the
actual ones (LAPIC_CLOCK_NONE is forbidden because otherwise there is no
meaning in calling such function).
This allows to bring out into commont x86 code the handling part for
machdep.lapic_allclocks tunable, which is retained.
sobomax [Fri, 5 Mar 2010 03:37:42 +0000 (03:37 +0000)]
Don't spam dmesg with "registered firmware ..." when module is compiled
into kernel, unless there is a verbose boot flag set. There is no real
need to have this information printed.
joel [Thu, 4 Mar 2010 22:06:57 +0000 (22:06 +0000)]
Use our preferred license text (no more "voices in his head"). While here,
also move to a 2-clause license. From n_hibma@:
"The 3rd clause was originally there for a reason, but I guess that it is
safe to assume that no one can assume endorsement by me or anyone else
without prior consent on anything really, so we might as well remove that
clause."
imp [Thu, 4 Mar 2010 22:01:11 +0000 (22:01 +0000)]
Remove stale references to libkrb5.
Rejigger the SUBDIR setting a smidge: we now set all the libraries that depend
on something else, and then SUBDIR+= the rest.
A separate commit will fix the SUBDIR style to be the same as the rest
of the tree.
uqs [Thu, 4 Mar 2010 16:08:01 +0000 (16:08 +0000)]
ed(1): make WARNS=6 clean
Although argc and argv are never read after the longjmp is complete,
gcc is not clever enough to see that and needlessly warns about it.
So add volatile to silence the compiler.
uqs [Thu, 4 Mar 2010 16:07:14 +0000 (16:07 +0000)]
mount_nwfs(8): make WARNS=6 clean
uid_t and gid_t are unsigned. While initializing them to -1 and later
checking against -1 to see if they are still at their default usually
works, introduce two new flags and stop the inband signalling.
scottl [Thu, 4 Mar 2010 12:35:20 +0000 (12:35 +0000)]
Let the afterinstall target ignore failures from running chflags. This
allows it to work over NFS, and puts it back into conformance with other
'schg' utlitilties in the system.
edwin [Thu, 4 Mar 2010 07:04:27 +0000 (07:04 +0000)]
- Implement -3 option (show previous, this and next month) option.
- Add -A option (months after this month).
- Add -B option (months before this month).
- Fix highlighting of today in year overview.
- Fix aligning of "foreign" characters.
nwhitehorn [Thu, 4 Mar 2010 06:39:58 +0000 (06:39 +0000)]
Patch some more concurrency issues here. This expands the page table
lock to cover the PVOs, and removes the scratchpage PTEs from the PVOs
entirely to avoid the system trying to be helpful and rewriting them.
nwhitehorn [Thu, 4 Mar 2010 06:36:00 +0000 (06:36 +0000)]
Rework smu(4) to be asynchronous. It turns out that the combination of
the automatic fan management and the polling in smu_run_cmd() was
putting my system interrupt load at 20%. This change reduces that to
0.4%.
gshapiro [Thu, 4 Mar 2010 05:53:06 +0000 (05:53 +0000)]
Enable the use of nanosleep() instead of using pause() and signals.
This Makefile change can be removed when the next version of sendmail
is imported as it will have this built in to the FreeBSD conf.h section.
rrs [Wed, 3 Mar 2010 21:46:51 +0000 (21:46 +0000)]
sched_getparam was just plain broke for time-share
processes. It did not return an error but instead
just let garbage be passed back. This I fix so
it actually properly translates the priority the
process is at to a posix's high means more priority.
I also fix it so that if the ULE scheduler has bumped
it up to a realtime process you get back a sane value
i.e. the highest priority (63 for time-share).
sched_setscheduler() had the setting of the
timeshare class priority disabled. With some notes
about rejecting the posix high numbers is greater
priority and use nice instead. This fix also
adjusts that to work, with the cavet that a t-s
process may well get bumped up or down i.e. the
setscheduler() will NOT change the nice value only
the current priority. I think this is reasonable
considering if the user wants to play with nice then
he can. At least all the posix'ish interfaces now
respond sanely.
lulf [Wed, 3 Mar 2010 21:27:54 +0000 (21:27 +0000)]
- Make function of finding an available drive name a macro.
- Move check of /dev/ prefix and copy into a function to save code duplication.
This also fixes a bug where the /dev/ prefix could not be used when creating
volumes on the command line.
Tested by: Niclas Zeising <niclas.zeising - at - gmail.com>
weongyo [Wed, 3 Mar 2010 20:06:09 +0000 (20:06 +0000)]
fixes an attached-at-boot issue that bwn(4) using device_identify
interface didn't be attached automatically at boot time so changes a
approach to attach children based on leveraging some newbus niceties.
mav [Wed, 3 Mar 2010 17:58:41 +0000 (17:58 +0000)]
Several changes to fix livelock under high load, introduced by r203489:
- change the way in which command queue overflow is handled;
- do not expose to CAM two command slots, used for driver's internal purposes;
- allow driver to use up to 1024 command slots, instead of 256 before.
yongari [Wed, 3 Mar 2010 17:56:52 +0000 (17:56 +0000)]
Remove programming LED register and enable 25MHz TX clock for 88E1149 PHY. This will fix intermittent watchdog timeouts as well
as very slow network performance on 88E8072 Yukon Extreme.
attilio [Wed, 3 Mar 2010 17:13:29 +0000 (17:13 +0000)]
Improving the clocks auto-tunning by firstly checking if the atrtc may be
correctly initialized and just then assign to softclock/profclock.
Right now, some atrtc seems reporting strange diagnostic error* making the
current pattern bogus.
In order to do that cleanly, lapic_setup_clock(), on both ia32 and amd64,
now accepts as arguments the desired sources to handle, and returns the
actual ones (LAPIC_CLOCK_NONE is forbidden because otherwise there is no
meaning in calling such function).
This allows to bring out into commont x86 code the handling part for
machdep.lapic_allclocks tunable, which is retained.
In reallocf(3), free the memory only when size != 0. Otherwise, when the
System V compatibility option (malloc "V" flag) is in effect a zero sized
reallocf() could cause a double free.
dougb [Wed, 3 Mar 2010 05:45:24 +0000 (05:45 +0000)]
Upgrade to version 9.6.2. This version includes all previously released
security patches to the 9.6.1 version, as well as many other bug fixes.
This version also incorporates a different fix for the problem we had
patched in contrib/bind9/bin/dig/dighost.c, so that file is now back
to being the same as the vendor version.
Due to the fact that the DNSSEC algorithm that will be used to sign the
root zone is only included in this version and in 9.7.x those who wish
to do validation MUST upgrade to one of these prior to July 2010.