Sam Leffler [Tue, 23 Sep 2003 17:54:04 +0000 (17:54 +0000)]
o update PFIL_HOOKS support to current API used by netbsd
o revamp IPv4+IPv6+bridge usage to match API changes
o remove pfil_head instances from protosw entries (no longer used)
o add locking
o bump FreeBSD version for 3rd party modules
Heavy lifting by: "Max Laier" <max@love2party.net>
Supported by: FreeBSD Foundation
Obtained from: NetBSD (bits of pfil.h and pfil.c)
Bruce M Simpson [Tue, 23 Sep 2003 16:39:31 +0000 (16:39 +0000)]
Fix a bug in arplookup(), whereby a hostile party on a locally
attached network could exhaust kernel memory, and cause a system
panic, by sending a flood of spoofed ARP requests.
Approved by: jake (mentor)
Reported by: Apple Product Security <product-security@apple.com>
Add Cisco Skinny Station protocol support to libalias, natd, and ppp.
Skinny is the protocol used by Cisco IP phones to talk to Cisco Call
Managers. With this code, one can use a Cisco IP phone behind a FreeBSD
NAT gateway.
Currently, having the Call Manager behind the NAT gateway is not supported.
More information on enabling Skinny support in libalias, natd, and ppp
can be found in those applications' manpages.
Alan Cox [Tue, 23 Sep 2003 04:28:04 +0000 (04:28 +0000)]
Change the handling of the kernel and kmem objects in vm_map_delete(): In
order to use "unmanaged" pages in the kmem object, vm_map_delete() must
unconditionally perform pmap_remove(). Otherwise, sparc64 has problems.
Peter Wemm [Tue, 23 Sep 2003 03:20:34 +0000 (03:20 +0000)]
Oops. back out last commit. The data and stack limits are used by the
32 bit binary stuff. 32 bit binaries do not like it much when the kernel
tries hard to put things above the 8GB mark.
I have a work-in-progress to fix this properly, but I didn't want to burn
anybody with this yet.
Paul Saab [Tue, 23 Sep 2003 00:37:07 +0000 (00:37 +0000)]
From the Broadcom Eratta:
Setting the No_CRC bit Can Cause Data Write Errors on BCM5701/03/04
The resolution is to not set the No_CRC bit in the Mode Control Register.
Restructure the time processing routines, mainly to fix up the
"will trim at" message printed when the user requests '-v'. The
previous code would often print the wrong time, such as:
On Sept 22, run: newsyslog -nv /var/log/wtmp
And see: will trim at Mon Sep 1 05:00:00 2003
correct msg: will trim at Wed Oct 1 05:00:00 2003
Peter Wemm [Mon, 22 Sep 2003 22:19:59 +0000 (22:19 +0000)]
MFCi386: trap.c rev 1.257 by bde. Don't forget to reenable interrupts
for breakpoint and trace traps from usermode. Although all the setidt
entries are interrupt gates on amd64, all but the trace and bpt trap
entry handlers reenable interrupts after the swapgs instruction in order
to simulate the trap/interrupt gate distinction. In other words, the
amd64 code behaves the same way that i386 does here.
Peter Wemm [Mon, 22 Sep 2003 21:56:48 +0000 (21:56 +0000)]
MFi386: machdep.c:1.570 clock.c:1.204 by bde: Quick fix for calling DELAY
for ddb input in some atkbd-based console drivers. ddb must not use any
normal locks but DELAY() normally calls getit() which needs clock_lock.
This also removes the need for recursion on clock_lock.
Peter Wemm [Mon, 22 Sep 2003 21:46:47 +0000 (21:46 +0000)]
Microoptimization to allow the compiler to evaluate ntohl() etc on
known constants at compile time rather than at run time. We have a number
of nasty hacks around the place to cache ntohl() of constants (eg: nfs).
This change allows the compiler to compile-time evaluate ntohl(1) as
0x01000000 rather than having to emit assembler code to do it. This
has other smaller flow-on effects because the compiler can see that
ntohl(constant) itself has a constant value now and can propagate the
compile time evaluation.
Obtained from: Ideas from NetBSD and Linux, and some code from NetBSD
David Xu [Mon, 22 Sep 2003 14:40:36 +0000 (14:40 +0000)]
Save and restore timeout field for signal frame just like what we did
for interrupted field.
Also in _thr_sig_handler, retrieve current signal mask from kernel not
from ucp, the later is pre-unioned mask, not current signal mask.
Alan Cox [Mon, 22 Sep 2003 04:58:09 +0000 (04:58 +0000)]
- vm_hold_free_pages() should lock the kernel object. (The pages being
freed belong to the kernel object.)
- Increase the granularity of the vm object locking in vm_hold_load_pages()
in order to reduce the number of times that we acquire and release the
same lock.
Alan Cox [Mon, 22 Sep 2003 00:56:13 +0000 (00:56 +0000)]
Initialize the page's pindex field even for VM_ALLOC_NOOBJ allocations.
(This field is useful for implementing sanity checks even if the page does
not belong to an object.)
Paul Saab [Sun, 21 Sep 2003 22:14:49 +0000 (22:14 +0000)]
revert to version 1.25 and use va_copy to obtain another copy of the
variable arguments. version 1.26 incorrectly truncated the message if
the buffer was too long.
Put x11-wm/sawfish2 and irc/xchat on CD 1 instead of sawfish and xchat.
Sawfish is gone, and xchat2 is more widely used these days since it is the
current stable release.
Thomas Quinot [Sun, 21 Sep 2003 16:49:53 +0000 (16:49 +0000)]
(atapi_cb): Reorganize error handling circuitry.
Fix to the messages output under CAM_DEBUG_CCB: the summary sense
information (error bits and sense key) is in the error field, not
in the result field, of struct ata_request. No other functional change.
Thomas Quinot [Sun, 21 Sep 2003 08:42:32 +0000 (08:42 +0000)]
(camperiphdone): When the cam_periph layer performs sense recovery,
completion of recovery is indicated by positioning the CAM_AUTOSNS_VALID
bit in the status field of the CCB, not in the flags field.
This fixes an endless loop of sense recovery actions.
Daniel Eischen [Sun, 21 Sep 2003 07:59:16 +0000 (07:59 +0000)]
The ports freeze may take longer than anticipated. Instead of
waiting for it to be delayed, temporarily back out the -pthread
removal until the freeze is lifted.
Freeze possibly taking longer than necessary: will
Requested by: kris
Jeff Roberson [Sun, 21 Sep 2003 07:39:16 +0000 (07:39 +0000)]
- Fix MD_SMALL_ALLOC on architectures that support it. Define a new alloc
function, startup_alloc(), that is used for single page allocations prior
to the VM starting up. If it is used after the VM startups up, it
replaces the zone's allocf pointer with either page_alloc() or
uma_small_alloc() where appropriate.
Alan Cox [Sat, 20 Sep 2003 23:54:36 +0000 (23:54 +0000)]
Reimplement pmap_release() such that it uses the page table rather than the
pte object to locate the page table directory pages. (This is another step
toward the elimination of the pte object.)
Peter Wemm [Sat, 20 Sep 2003 23:35:33 +0000 (23:35 +0000)]
Bad Jeffr! No cookie!
Temporarily disable the UMA_MD_SMALL_ALLOC stuff since recent commits
break sparc64, amd64, ia64 and alpha. It appears only i386 and maybe
powerpc were not broken.
Bill Paul [Sat, 20 Sep 2003 21:18:27 +0000 (21:18 +0000)]
Remove the dual-address cycle stuff. DAC is used to allow a bus master
device to access 64-bit addresses from a 32-bit PCI bus. While the
RealTek manual says you can set this bit and the chip will perform
DAC only if you give it a DMA address with any of the upper 32
bits set, this appears not to be the case. If I turn on the DAC
bit, the chip sets the 'system error' bit in the status register
when I to do a DMA on my Athlon test box with 32-bit PCI bus (VIA
chipset) even though I only have 128MB of physical memory, and thus
can never give the chip a 64-bit address.
Obviously, I can't just set it and forget it, so until I figure
out the right rule for when it's safe/necessary to enable it, keep
it turned off.
Ruslan Ermilov [Sat, 20 Sep 2003 21:13:43 +0000 (21:13 +0000)]
Keep up with recent mdoc(7) changes, that include:
- If no .Os call is made, don't print the OS info at all.
- Allow for multiple .Lb calls in the LIBRARY section.
- Improved documentation on punctuation characters.
Fix the last remaining problem encountered by KSE: apparently it is
not guaranteed that the RSE writes the NaT collection immediately,
sort of atomically, to the backing store when it writes the register
immediately prior to the NaT collection point. This means that we
cannot assume that the low 9 bits of the backingstore pointer do not
point to the NaT collection. This is rather a surprise and I don't
know at this time if it's a bug in the Merced or that it's actually
a valid condition of the architecture. A quick scan over the sources
does not indicate that we depend on the false assumption elsewhere,
but it's something to keep in mind.
The fix is to write the saved contents of the ar.rnat register to
the backingstore prior to entering the loop that copies the dirty
registers from the kernel stack to the user stack.
Move uma_small_alloc() and uma_small_free() to uma_machdep.c. These
functions reference UMA internals from <vm/uma_int.h>, which makes
them highly unwanted in non-UMA specific files.
While here, prune the includes in pmap.c and use __FBSDID(). Move
the includes above the descriptive comment.
The copyright of uma_machdep.c is assigned to the project and can
be reassigned to the foundation if and when when such is preferrable.
Stefan Eßer [Sat, 20 Sep 2003 15:10:38 +0000 (15:10 +0000)]
Correct card type of Netgear WG311 and add WAG311 and WGT511T
which are based on the AR5212 and should just work (not verified).
Add Proxim Skyline 4032, the PCI version of th e4030.
Add revision suffix 'B' to D-Link DWL-G520/G650 entries, in order
to indicate that revision A1 cards are not supported by this driver
(both A1 and B1/B2 cards are sold in identical boxes).
Explicitly point out the existence of unsupported DWL-G520/G650
(rev. A1) cards in the CAVEATS section.
Approved by: sam