Add support for the Promise command sequencer present on all modern Promise
controllers (PDC203** PDC206**).
This also adds preliminary support for the Promise SX4/SX4000 but *only*
as a "normal" Promise ATA controller (ATA RAID's are supported though
but only RAID0, RAID1 and RAID0+1).
This cuts off yet another 5-8% of the command overhead on promise controllers,
making them the fastest we have ever had support for.
Work is now continuing to add support for this in ATA RAID, to accellerate
ATA RAID quite a bit on these controllers, and especially the SX4/SX4000
series as they have quite a few tricks in there..
This commit also adds a few fixes to the SATA code needed for proper support.
Brian Feldman [Tue, 13 Apr 2004 02:58:06 +0000 (02:58 +0000)]
Add -P arguments for dump(8) and restore(8) which allow the user to
use backup methods other than files and tapes. The -P argument is
a normal sh(1) pipeline with either $DUMP_VOLUME or $RESTORE_VOLUME
defined in the environment, respectively.
For example, I can back up my home to three DVD+R[W]s as so:
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad0s2e 400285501009314026733126 27% /home
green# dump -0 -L -C16 -B4589840 -P 'growisofs -Z /dev/cd0=/dev/fd/0' /home
Warner Losh [Mon, 12 Apr 2004 20:56:34 +0000 (20:56 +0000)]
Improve reading of CIS cards:
(1) Align to 64k for the CIS. Some cards don't like it when we aren't
aligned to a 64k boundary. I can't find anything in the standard
that requires this, but I have 1/2 dozen cards that won't work at
all unless I enable this.
(2) Sleep 1s before scanning the CIS. This may be a nop, but has little
harm.
(3) The CIS can be up to 4k in some weird, odd-ball edge cases. Since we
have limiters for when that's not the case, it does no harm to increase
it to 4k.
#1 was submitted, in a different form, by Carlos Velasco.
Colin Percival [Mon, 12 Apr 2004 15:56:05 +0000 (15:56 +0000)]
stop() no longer needs sched_lock held; in fact, holding sched_lock causes
a LOR against sleepq. Fix the comment, and fix ptracestop() to pick up
sched_lock after stop() rather than before.
Reported by: Scott Sipe <cscotts@mindspring.com>
Reviewed by: rwatson, jhb
Ruslan Ermilov [Mon, 12 Apr 2004 14:59:25 +0000 (14:59 +0000)]
Count outgoing link-level broadcast packets in if_omcasts.
I'm not sure this is completely correct but at least this
is consistent with the accounting of incoming broadcasts.
PR: kern/65273
Submitted by: David J Duchscher <daved@tamu.edu>
Maxime Henrion [Mon, 12 Apr 2004 13:02:21 +0000 (13:02 +0000)]
Don't send the available space as is in the FSSTAT call. Under
FreeBSD, we can have a negative available space value, but the
corresponding fields in the NFS protocol are unsigned. So
trnucate the value to 0 if it's negative, so that the client
doesn't receive absurdly high values.
Tim Kientzle [Mon, 12 Apr 2004 01:16:16 +0000 (01:16 +0000)]
More work on ACLs: fix error in archive_entry's ACL parsing code,
try to set ACLs even if fflag restore fails, first cut at reading
Solaris tar ACLs
Code improvement: merge gnu tar read support into main tar reader;
this eliminates a lot of duplicate code and generalizes the tar
reader to handle formats with GNU-like extensions.
Style: Makefile cleanup, eliminate 'dmalloc' references, remove 'tartype'
from archive_entry (this makes archive_entry more format-agnostic)
Thanks to: David Magda for providing Solaris tar test files
Maxime Henrion [Sun, 11 Apr 2004 21:36:31 +0000 (21:36 +0000)]
Belatedly remove the getvfsent(3) API. All the consumers have been
updated to use getvfsbyname(3) or the vfs.conflist sysctl since a
long time, except mount_smbfs(8) which has just been fixed.
Warner Losh [Sun, 11 Apr 2004 19:32:20 +0000 (19:32 +0000)]
Frank Mayhar's <frank@exit.com> sx driver for older Specialix
I/O8+ and I/O4+ intelligent serial controllers. si is for
completely different hardware, also made by Specialix.
Max Laier [Sun, 11 Apr 2004 17:35:40 +0000 (17:35 +0000)]
Commit import of OpenBSD-stable fix:
Fix by dhartmei@ and mcbride@
1.433
Properly m_copyback() modified TCP sequence number after demodulation
1.432
Fix icmp checksum when sequence number modlation is being used.
Also fix a daddr vs saddr cut-n-paste error in ICMP error handling.
Robert Watson [Sun, 11 Apr 2004 16:26:39 +0000 (16:26 +0000)]
Compare IFF_POLLING flag with ifp->if_flags rather than ifp->if_ipending,
which was almost certainly a bug since polling support was introduced
in this driver.
Warner Losh [Sun, 11 Apr 2004 07:02:49 +0000 (07:02 +0000)]
Add system tunable to turn off power state changes. Default to off until
we get the resource allocation stuff hammered out.
Fix and off by one error that caused unnecessary filtering of valid
BARs for only 4 bytes than ICH3 and other PCI IDE controllers have.
Andrew Gallatin submitted this, although it doesn't solve the problems
ICH3 controllers have with the new code, it does restore the former
resource list on the probe line.
Warner Losh [Sun, 11 Apr 2004 06:37:21 +0000 (06:37 +0000)]
Document more clearly that a probe routine:
Should have no side effects
Must not hold resources when it returns
May be called multiple times if it returns < 0.
Remove the bad advise that the probe routine should look for children
for devices that implement busses. This is more properly reserved for
the attach routine.
Alan Cox [Sat, 10 Apr 2004 22:41:46 +0000 (22:41 +0000)]
- pmap_kenter_temporary() is unused by machine-independent code. Therefore,
move its declaration to the machine-dependent header file on those
machines that use it. In principle, only i386 should have it.
Alpha and AMD64 should use their direct virtual-to-physical mapping.
- Remove pmap_kenter_temporary() from ia64. It is unused. Approved
by: marcel@
Hiroki Sato [Sat, 10 Apr 2004 20:44:11 +0000 (20:44 +0000)]
New release note:
VIA C3 Nehemiah's hardware RNG support,
nge(4) VLAN support bugfix,
rl(4) polling support bugfix,
ste(4) and vr(4) polling support,
twa driver,
bsdlabel(8) -f option,
bthidcontrol and bthidd for Bluetooth HID,
doscmd removed,
fdcontrol(8), fdformat(1), and fdread(1) now work on FreeBSD/pc98,
find(1) -acl option,
UTF-8 versions of the supported system locales,
netstat(1) now displays the multicast group memberships,
pgrep(1) and pkill(1),
ps(1) supports more POSIX/SUSv3 compatible options,
Heimdal Kerberos 0.6 -> 0.6.1,
libpcap 0.7.1 -> 0.8.3,
OpenSSL 0.9.7c -> 0.9.7d, and
tcpdump 3.7.1 -> 3.8.3.
Update release note:
Sort ctau(4) entry in the alphabetical order.
Unbreak alpha kernel build and unbreak any non-i386 runtime brokenness.
The VIA Nehemias is so obviously specific to i386 that it should not
be compiled on non-i386 platforms. The obviousness is in the fact that
all functions in nehemias.c are purely i386 inline assembly, guarded
by #ifdef __i386__
Maxime Henrion [Sat, 10 Apr 2004 11:08:16 +0000 (11:08 +0000)]
Remove a comment that complains about the lack of %qd, to justify
truncating a rlim_t to a long. We have %qd since some time now.
However, the correct format to use here is %jd and a cast to
intmax_t, so do this.
Maksim Yevmenkin [Sat, 10 Apr 2004 00:18:00 +0000 (00:18 +0000)]
Start committing Bluetooth HID (Human Interface Device) support.
Note: bthidd(8) is still not complete. Need to commit kernel
support (a-la Linux /dev/input) to feed HID events into kernel.
Also need to write bthidd(8) and bthidd.conf(5) man pages.
Warner Losh [Fri, 9 Apr 2004 20:41:18 +0000 (20:41 +0000)]
Only print state change message for real state changes. When we set a
device in D0 to D0, that's a no-op, however the messages seem to be
confusing some people. Eventually, these messages will be parked
behind a if (bootverbose).