ru [Thu, 19 Oct 2000 10:44:44 +0000 (10:44 +0000)]
A failure to allocate memory for auxiliary TCP data is now fatal.
This fixes a null pointer dereference problem that is unlikely to
happen in normal circumstances.
jon [Thu, 19 Oct 2000 08:34:32 +0000 (08:34 +0000)]
NEWCARD/Cardbus -
This commit adds support for Xircom X3201 based cardbus cards.
Support for the TDK 78Q2120 MII is also added.
IBM Etherjet, Intel and Xircom cards uses these chips.
Note that as a result of this commit, some Intel/DEC 21143 based cardbus
cards will also attach, but not get link. That is being looked at.
jhb [Thu, 19 Oct 2000 08:16:34 +0000 (08:16 +0000)]
Move init_clocks earlier in the system startup so that hardclock and clock
interrupts are started before the device probe. This allows interrupt
threads to run during the device probe among other things.
msmith [Thu, 19 Oct 2000 08:06:50 +0000 (08:06 +0000)]
Call the BIOS to route the selected interrupt. Correctly calculate the
interrupt from the PCI routing table (ffs returns 1 for the rightmost
bit, not 0).
rwatson [Thu, 19 Oct 2000 07:53:59 +0000 (07:53 +0000)]
o Introduce new VOP_ACCESS() flag VADMIN, allowing file systems to perform
"administrative" authorization checks. In most cases, the VADMIN test
checks to make sure the credential effective uid is the same as the file
owner.
o Modify vaccess() to set VADMIN as an available right if the uid is
appropriate.
o Modify references to uid-based access control operations such that they
now always invoke VOP_ACCESS() instead of using hard-coded policy checks.
o This allows alternative UFS policies to be implemented by replacing only
ufs_access() (such as mandatory system policies).
o VOP_ACCESS() requires the caller to hold an exclusive vnode lock on the
vnode: I believe that new invocations of VOP_ACCESS() are always called
with the lock held.
o Some direct checks of the uid remain, largely associated with the QUOTA
and SUIDDIR code.
roger [Thu, 19 Oct 2000 07:33:28 +0000 (07:33 +0000)]
Update to driver 2.17
Fixes bugs in devfs when unloading and reloading
Syncs with NetBSD changes
Submitted by: Alexander Langer <alex@big.endian.de>
Submitted by: Thomas Klausner <wiz@netbsd.org>
Submitted by: Daniel O'Connor" <doconnor@gsoft.com.au>
joe [Wed, 18 Oct 2000 17:48:10 +0000 (17:48 +0000)]
Opening braces should be at the end of the controlling line. Else
and elsif belong on the same line as the closing brace for the
previous if or elsif block.
peter [Wed, 18 Oct 2000 10:39:18 +0000 (10:39 +0000)]
Attempt to fix the random read blocking. The old code slept at
priority "0" and without PCATCH, so it was uninterruptable. And
even when it did wake up after entropy arrived, it exited after the
wakeup without actually reading the freshly arrived entropy. I
sent this to Mark before but it seems he is in transit.
Mark: feel free to replace this if it gets in your way.
jhb [Wed, 18 Oct 2000 10:30:12 +0000 (10:30 +0000)]
Add in a simple API for memory barriers to machine/bus.h:
- barrier_read() enforces a memory read barrier
- barrier_write() enforces a memory write barrier
- barrier_rw() enforces a memory read/write barrier
jwd [Wed, 18 Oct 2000 05:29:26 +0000 (05:29 +0000)]
Use dd to better block the data being sent to /dev/random.
Note: I am not redirecting stdout so that the amount of
data being transferred can be seen (22k and 576k currently).
mdodd [Wed, 18 Oct 2000 05:15:40 +0000 (05:15 +0000)]
Add new bus method 'GET_RESOURCE_LIST' and appropriate generic
implementation.
Add bus_generic_rl_{get,set,delete,release,alloc}_resource() functions
which provide generic operations for devices using resource list style
resource management.
This should simplify a number of bus drivers. Further commits to follow.
This should support:
- cardbus controllers:
* TI 113X
* TI 12XX
* TI 14XX
* Ricoh 47X
* Ricoh 46X
* ToPIC 95
* ToPIC 97
* ToPIC 100
* Cirrus Logic CLPD683x
- cardbus cards
* 3c575BT
* 3c575CT
* Xircom X3201 (includes IBM, Xircom and, Intel cards)
[ 3com support already in kernel, Xircom will be committed real soon now]
This doesn't work with 16bit pccards under NEWCARD.
Enable in your config by having "device pccbb" and "device cardbus".
(A "device pccard" will attach a pccard bus, but it means you system have
a high chance of panicing when a 16bit card is inserted)
It should be fairly simple to make a driver attach to cardbus under
NEWCARD -- simply add an entry for attaching to cardbus on a new
DRIVER_MODULE and add new device IDs as necessary. You should also make
sure the card can be detached nicely without the interrupt routine doing
something weird, like going into an infinite loop. Usually that should
entail adding an additional check when a pci register or the bus space is
read to check if it equals 0xffffffff.
This should support:
- cardbus controllers:
* TI 113X
* TI 12XX
* TI 14XX
* Ricoh 47X
* Ricoh 46X
* ToPIC 95
* ToPIC 97
* ToPIC 100
* Cirrus Logic CLPD683x
- cardbus cards
* 3c575BT
* 3c575CT
* Xircom X3201 (includes IBM, Xircom and, Intel cards)
[ 3com support already in kernel, Xircom will be committed real soon now]
This doesn't work with 16bit pccards under NEWCARD.
Enable in your config by having "device pccbb" and "device cardbus".
(A "device pccard" will attach a pccard bus, but it means you system have
a high chance of panicing when a 16bit card is inserted)
It should be fairly simple to make a driver attach to cardbus under
NEWCARD -- simply add an entry for attaching to cardbus on a new
DRIVER_MODULE and add new device IDs as necessary. You should also make
sure the card can be detached nicely without the interrupt routine doing
something weird, like going into an infinite loop. Usually that should
entail adding an additional check when a pci register or the bus space is
read to check if it equals 0xffffffff.
imp [Wed, 18 Oct 2000 02:21:00 +0000 (02:21 +0000)]
o Remove a boatload of debugging printfs.
o Report function number and config index on probe line
o Activate the resources (I hope) when RF_ACTIVE is set on those resources
I'm allocating on behalf of my children.
o Always enable interrupts on multifunction cards in the multifunction
register.
jhb [Tue, 17 Oct 2000 23:12:37 +0000 (23:12 +0000)]
- Wrap the sanity checks for staying in the idle loop for absurdly long
amounts of time in #ifdef DIAGNOSTIC
- Call vm_page_zero_idle() during the idle loop.
des [Tue, 17 Oct 2000 22:43:41 +0000 (22:43 +0000)]
Work much harder at obtaining a correct device node. If what devname(3)
returns doesn't exist, or doesn't match the desired device, fall back to
scanning /dev for a matching node, and as a last resort, if that fails,
try to create the node ourselves as /dev/dump.
Add comments to several variables and functions.
Clean up syslog(3) usage; use %m instead of strerror(3).
imp [Tue, 17 Oct 2000 22:31:27 +0000 (22:31 +0000)]
Add a bunch of wireless cards from Japan. Shigeru YAMAMOTO-san
brought them to BSDcon and gratiously allowed me to test each one with
the wireless setup here. In addition, support another CF card which
YAMAMOTO-san also brought.
Also add a Lexar CF card which didn't work with auto on many laptops.
imp [Tue, 17 Oct 2000 22:08:03 +0000 (22:08 +0000)]
Implement resource alignment as discussed in arch@ a long time ago.
This was implemented by Shigeru YAMAMOTO-san and Jonathan Chen. I've
cleaned them up somewhat and they seem to work well enough to boot
current (but given current's state it can be hard to tell). Doug
Rabson also reviewed the design and signed off on it.
mjacob [Tue, 17 Oct 2000 18:18:14 +0000 (18:18 +0000)]
Roll minor revision- for once we'll use this because.... if revision >= 5.4,
compile time will build in mutex locks, otherwise the old locking (splcam/splx
with a recursion counter) will be compiled in.
We still depend on config_intr_hook to tell us when it's okay to call
msleep instead of polling. It'd be real nice if we could do this early
enough to not hang up a machine struggling with a bad Fibre Channel loop,
but that's still to come.
n_hibma [Tue, 17 Oct 2000 17:13:38 +0000 (17:13 +0000)]
Fix the build break.
The solution isn't perfect, instead of printing the first report, it
will the report no report id, but the proper solution is more complex
than this. We would need to iterate over the report descriptor and
figure out all the report id's before starting to print.
joe [Tue, 17 Oct 2000 15:32:57 +0000 (15:32 +0000)]
Reclarify variable definition blocks.
Ask programmers to use modules where possible instead of reinventing
the wheel.
Use 'chomp' not 'chop' please.
Fixup some mdoc.
dwmalone [Tue, 17 Oct 2000 10:19:42 +0000 (10:19 +0000)]
Syslogd normally converts messages of facility kern to facility
user unless they come directly from the kernel. Document this and
add a flag to syslogd which prevents this conversion.
Sort getopt args while I'm at it.
PR: 21788
Submitted by: Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
ps [Tue, 17 Oct 2000 10:05:49 +0000 (10:05 +0000)]
Implement write combining for crashdumps. This is useful when
write caching is disabled on both SCSI and IDE disks where large
memory dumps could take up to an hour to complete.
Taking an i386 scsi based system with 512MB of ram and timing (in
seconds) how long it took to complete a dump, the following results
were obtained:
Before: After:
WCE TIME WCE TIME
------------------ ------------------
1 141.820972 1 15.600111
0 797.265072 0 65.480465
imp [Tue, 17 Oct 2000 06:29:21 +0000 (06:29 +0000)]
More NEWCARD fixes. We now almost properly print the probe message.
o Remember the resources we allocate for the config entry.
o When we get the resource, do an resource_list_add and do a
resource_list_delete if we fail later in the resource list.
o In the pccard bus, we allocate the resources. When a child asks for
them, just return the resources that we allocated (thanks to Paul
Richards and Mike Smith for the idea).
peter [Tue, 17 Oct 2000 00:41:36 +0000 (00:41 +0000)]
Implement simple write combining for newfs - this is particularly useful
for large scsi disks with WCE = 0. This yields around a 7 times speedup
on elapsed newfs time on test disks here. 64k clusters seems to be the
sweet spot for scsi disks using our present drivers.
gallatin [Tue, 17 Oct 2000 00:25:43 +0000 (00:25 +0000)]
Some linux apps, such as IBM's JDK 1.3, will attempt to mmap thread
stacks near the top of their address space. If their TOS is greater
than vm_maxsaddr, vm_map_growstack() will confuse the thread stack
with the process stack and deliver a SEGV if they attempt to grow the
thread stack past their current stacksize rlimit. To avoid this,
adjust vm_maxsaddr upwards to reflect the current stacksize rlimit
rather than the maximum possible stacksize. It would be better to
adjust the mmap'ed region, but some apps (again, IBM's JDK 1.3) do not
check mmap's return value..
This commit (in conjunction with setting MINSIGSTKSZ to 2048 &
rebuilding your kernel and modules) will get IBM's JDK 1.3 working
with FreeBSD at least well enough to run many of the example applets.
Reviewed by: marcel
Tested by: sto@stat.duke.edu, many others on freebsd-java@
gallatin [Tue, 17 Oct 2000 00:00:20 +0000 (00:00 +0000)]
A start at an implemention of linux_rt_sendsig & linux_rt_sigreturn
and associated user-level signal trampoline glue.
Without this patch, an SA_SIGINFO style handler can be installed by a linux
app, but if the handler accesses its sip argument, it will get a garbage
pointer and likely segfault.
We currently supply a valid pointer, but its contents are mainly
garbage. Filling this in properly is future work.
This is the second of 3 commits that will get IBM's JDK 1.3 working with
FreeBSD ...
mjacob [Mon, 16 Oct 2000 23:08:45 +0000 (23:08 +0000)]
Very early and very *very* lightly tested support for LIVENGOOD chipset
(followon to WISEMAN). Presumably some flavors are also no multimode copper
as well.
imp [Mon, 16 Oct 2000 23:02:21 +0000 (23:02 +0000)]
When wierdreset flag is set, turn on the DISADVFD flag when we reset
rather than all the flags. This prevents setting being read from ROM,
which is a problem. If this breaks anything, it will only break the
3C556B cards minipci cards, which mainly exist at rpi as far as rpi
has been able to tell.
gallatin [Mon, 16 Oct 2000 20:15:43 +0000 (20:15 +0000)]
Fix problems booting large kernels on alphas. The symptom is that the kernel
loads, prints the copyright, and either hangs or locks solid. The
PC tends to be in the data segment and the RA is in XentMM
Doug really came up with the fix, I'm just the monkey typing. Doug says:
The alpha can only support 64k of globals with $gp pointing at
base+32k so that the code can use 16bit signed offsets from $gp to
access it. .... it is possible to have multiple .got subsections
and the linker handles this with the relocations for 'ldgp' pseudo
instructions. [Without this patch] the code in exception.s has been
linked to use a different gp from locore.s (where pal_kgp is set).
joe [Mon, 16 Oct 2000 19:11:11 +0000 (19:11 +0000)]
Add an optional start/stop argument to pccard_ether, and migrate
the 'ifconfig ifN delete' into pccard_ether under the 'stop'
function.
In addition start dhclient with a pid file based on the interface
name, e.g. /var/run/dhclient.ep0.pid, and kill the correct dhclient
(or dhcpc) process when the card is removed.
gallatin [Mon, 16 Oct 2000 15:38:11 +0000 (15:38 +0000)]
The previous commit broke kernel builds on alpha (and probably ia64).
#ifdef away the offending code until somebody with more newbus fu than
me can figure out where to put a default function that returns 255
without touching each alpha chipset driver..