onoe [Tue, 10 Oct 2000 09:50:25 +0000 (09:50 +0000)]
awi needs to access memory with 8bit,
but pccardd apparently maps memory with MDF_16BITS flag.
So memory mapped access is disabled and use IO port instead for now.
This fixes the problem for config index 0x01 in the pccard.conf
with the message: "awi0: failed to complete selftest (timeout)"
brian [Mon, 9 Oct 2000 22:49:44 +0000 (22:49 +0000)]
If write() gives -1/ENOBUFS, keep the packet and sleep for 1/10th
of a second before attempting to write it again (unless there's
something else to do instead).
chris [Mon, 9 Oct 2000 20:06:13 +0000 (20:06 +0000)]
o Move from Alfred Perstein's "exclusion" technique of handling special
file types to requiring all file types to properly implement fo_stat.
This makes any new file type additions much easier as this code no
longer has to be modified to accomodate it.
o Instead of using curproc in fdesc_allocvp, pass a `struct proc' pointer as
a new fifth parameter.
rwatson [Mon, 9 Oct 2000 20:04:39 +0000 (20:04 +0000)]
o Sanity check was inverted, resulting in a possible spurious panic
during unmount if extended attributes were in use. Correct by removing
an unneeded (and undesirable) '!'.
gibbs [Mon, 9 Oct 2000 19:54:54 +0000 (19:54 +0000)]
Close a race condition that doesn't really exist in -current. When
a resource shortage occurs, freeze our queue and then set the resource
shortage flag while the controller data structure is locked. The old
code did these in the wrong order potentially allowing our interrupt
handler to release the queue and clear the flag before the freeze
ever occurred.
update to i4b version 0.95.04
This commit adds the ReleaseNotes file which contains a list of major i4b
changes happened since the last version comitted to FreeBSD (0.90.01).
phk [Mon, 9 Oct 2000 14:18:07 +0000 (14:18 +0000)]
Don't hold an extra reference to vnodes. Devfs vnodes are sufficiently
cheap to setup that it doesn't really matter that we recycle device
vnodes at kleenex speed.
Implement first cut try at killing cloned devices when they are
not needed anymore. For now only the bpf driver is involved in
this experiment. Cloned devices can set the SI_CHEAPCLONE flag
which allows us to destroy_dev() it when the vcount() drops to zero
and the vnode is reclaimed. For now it's a requirement that the
driver doesn't keep persistent state from close to (re)open.
dwmalone [Mon, 9 Oct 2000 12:34:51 +0000 (12:34 +0000)]
Cleanup of bitstring.h:
1) Add FreeBSD: tag.
2) Add parenthesis around macro args.
3) Add parenthesis around macros which are expressions.
4) Add do { ... } while (0) around macros which are compound statements.
5) Sync bitstr_size and bit_alloc with neater versions from NetBSD.
6) Fix bit_ffs and bit_ffc so that they don't search off the end of the
bitstirng.
7) Try to avoid rightshifting signed ints.
I didn't take NetBSD's version directly as the macros are significantly
slower for long bitstrings. Bruce reviewed a previous version of
this patch.
dcs [Mon, 9 Oct 2000 11:29:40 +0000 (11:29 +0000)]
Now I see the error of my ways.
Previous revision of this file changed the "boot" commands to take
no arguments from the stack. This is only valid in the case where
a kernel has not been loaded. In that case, load_kernel_and_modules
will be called, which takes a list of arguments from the stack.
When a kernel is presently loaded, though, the list of arguments must
be passed to the boot command, which was the behaviour before the last
revision.
adrian [Mon, 9 Oct 2000 10:23:31 +0000 (10:23 +0000)]
Reviewed by: rwatson, bp
Approved by: rwatson
Obtained from: NetBSD source tree
Second part of the fsck wrappers commit. This commit enables the new fsck
code (removing the fsck/* code and replacing it with the netbsd fsck
wrapper code), and enabling some FFS-based utilities to compile.
Details:
* quotacheck, fsdb required modification to use the fsck_ffs/ code rather
than fsck/ . This might change later since quotacheck requires preen.c
which should exist in fsck/ rather than fsck_ffs/
* src/Makefile has fsck_ffs added to it so it it built as part of the tree
now
* share/doc/smm/03.fsck/ uses the SMM.doc/ stuff from fsck_ffs, not fsck.
I've tested this, and it shouldn't require any changes on your machine.
The fsck wrapper reads /etc/fsck and is command-line-compatible enough
to not require rc changes (well, most changes unless you want to do
anything nifty by specifying the fs types explicityly, read the man page
if you want further details on what it can do.)
This now allows us to support multiple filesystem types during bootup.
adrian [Mon, 9 Oct 2000 10:22:56 +0000 (10:22 +0000)]
Reviewed by: rwatson, bp
Approved by: rwatson
Obtained from: NetbSD source tree
Second part of the fsck wrappers commit. This commit enables the new fsck
code (removing the fsck/* code and replacing it with the netbsd fsck
wrapper code), and enabling some FFS-based utilities to compile.
Details:
* quotacheck, fsdb required modification to use the fsck_ffs/ code rather
than fsck/ . This might change later since quotacheck requires preen.c
which should exist in fsck/ rather than fsck_ffs/
* src/Makefile has fsck_ffs added to it so it it built as part of the tree
now
* share/doc/smm/03.fsck/ uses the SMM.doc/ stuff from fsck_ffs, not fsck.
I've tested this, and it shouldn't require any changes on your machine.
The fsck wrapper reads /etc/fsck and is command-line-compatible enough
to not require rc changes (well, most changes unless you want to do
anything nifty by specifying the fs types explicityly, read the man page
if you want further details on what it can do.)
This now allows us to support multiple filesystem types during bootup.
adrian [Mon, 9 Oct 2000 09:21:04 +0000 (09:21 +0000)]
Some missed magic in the fsck wrapper commit which is required by other
utilities which use bits of fsck_ffs - namely quotacheck and fsdb.
In depth, utilities.c contains blockcheck() which is needed by both,
but also a slew of routines which require bits of the FFS code to be
compiled in. This breaks the fs-specific and non-fs-specific code
up into two files (well, blockcheck() is the only routine in utilities.c,
that'll change later) which makes building fsck_ffs, quotacheck and
fsdb work yet again.
(You won't find commits to fsdb and quotacheck here before I haven't
committed the post-fsck-wrappers version of them yet.)
adrian [Mon, 9 Oct 2000 08:26:35 +0000 (08:26 +0000)]
Reviewed by: rwatson, bp
Approved by: rwatson
Obtained from: NetBSD-current source tree
The beginnings of the fsck wrappers stuff from NetBSD. This particular commit
brings a newly repo-copied sbin/fsck_ffs/ (from sbin/fsck/) into fsck wrappers
mode.
A quick overview (the code reflects this):
* Documentation changed to reflect fsck_ffs instead of fsck
* Simply acts on a single filesystem, doesn't try to do any multiple filesystem
magic - this is done by the fsck wrappers now
And then specific to fsck_ffs:
* link to /sbin/fsck_4.2bsd and /sbin/fsck_ufs. This is because right now
the filesystem is of type ufs not ffs, and that during autodetection the
labeltype rather than the VFS type is used - this is because when doing
an autodetection of filesystem type in the fsck wrapper program, it does
not have any link between label type (4.2bsd, vinum, etc) and VFS string.
Note that this shouldn't break a build since the required buildworld Makefile
magic and import of the fsck wrapper code into src/sbin/fsck/ will happen
in a seperate commit.
phk [Mon, 9 Oct 2000 08:08:36 +0000 (08:08 +0000)]
Initiate deorbit burn sequence for <machine/mouse.h>.
Replace all in-tree uses with <sys/mouse.h> which repo-copied a few
moments ago from src/sys/i386/include/mouse.h by peter.
This is also the appropriate fix for exo-tree sources.
Put warnings in <machine/mouse.h> to discourage use.
November 15th 2000 the warnings will be converted to errors.
January 15th 2001 the <machine/mouse.h> files will be removed.
kris [Mon, 9 Oct 2000 06:08:00 +0000 (06:08 +0000)]
String buffer safety cleanup. I don't think any of these were exploitable
remotely, but they would be if e.g. it happened to call the logging
function using a DNS hostname.
Also replace random() by arc4random() - only one of these is arguably
required since it's directly used in the protocol, but we might as
well replace both to avoid using two different PRNGs.
bde [Mon, 9 Oct 2000 05:39:03 +0000 (05:39 +0000)]
Unremoved used include of <machine/ipl.h>. Removing it in rev.1.95
significantly pessimized syscalls by arranging to do null rescheduling
on return from every syscall. (AST_RESCHED was not defined, and the
mask ~AST_RESCHED gets replaced by the useless mask ~0. This bug has
been fixed before, in rev.1.92.)
will [Mon, 9 Oct 2000 04:53:36 +0000 (04:53 +0000)]
Add :L and :U variable modifiers. These convert the variable's value to
all-lower or all-upper case characters, respectively. These were added
to further reduce differences between NetBSD/OpenBSD and FreeBSD make(1)
to propagate OpenPackages.
will [Mon, 9 Oct 2000 04:31:43 +0000 (04:31 +0000)]
Add :C/// variable modifier, which is similar to :S/// in functionality
but allows for regex. I removed NO_REGEX since no one could give a reason
to have it, and since we don't use make in bootstrap tools, it's not needed.
This is mostly added to synch up with NetBSD/OpenBSD so as to eliminate
roadblocks in the OpenPackages project (see http://www.openpackages.org/).
It's also quite useful, and costs us only about 3 kilobytes of space.
imp [Mon, 9 Oct 2000 03:40:15 +0000 (03:40 +0000)]
o Record the pccard_function in the ivar.
o Use a macro function to get the ivar for the child rather than the casting
directly. This should be a little safer and easier to read.
gibbs [Mon, 9 Oct 2000 01:46:01 +0000 (01:46 +0000)]
Clean up error recovery code:
aic7xxx.c:
In target mode, reset the TQINPOS on every restart of the sequencer.
In the past we did this only during a bus reset, but there are other
reasons the sequencer might be reset.
In ahc_clear_critical_section(), disable pausing chip interrupts while
we step the sequencer out of a critical section. This avoids the
possibility of getting a pausing interrupt (unexpected bus free,
bus reset, etc.) that would prevent the sequencer from stepping.
Send the correct async notifications in the case of a BDR or bus reset.
In ahc_loadseq(), correct the calculation of our critical sections.
In some cases, the sections would be larger than needed.
aic7xxx.h:
Remove an unused SCB flag.
aic7xxx.seq:
MK_MESSAGE is cleared by the kernel, there is no need to waste
a sequencer instruction clearing it.
aic7xxx_freebsd.c:
Go through the host message loop instead of issuing a single
byte message directly in the ahc_timeout() case where we
are currently on the bus to the device. The effect is the same,
but this way we get a nice printf saying that an expected BDR
was delivered instead of an unexpected bus free.
If we are requeuing an SCB for an error recovery action, be sure
to set the DISCONNECTED flag in the in-core version of the SCB.
This ensures that, in the SCB-paging case, the sequencer will
still recognize the reselection as valid even if the version
of the SCB with this flag set was never previously paged out
to system memory. In the non-paging case, set the MK_MESSAGE
flag in SCB_CONTROL directly.
aic7xxx_pci.c:
Enable the Memeory Write and Invalidate bug workaround for
all aic7880 chips with revs < 1. This bug is rarely triggered
in FreeBSD as most transfers end on cache-aligned boundaries,
but a recheck of my references indicates that these chips
are affected.
msmith [Mon, 9 Oct 2000 00:41:29 +0000 (00:41 +0000)]
Change the way that eventhandler lists are processed so that an event
handler can safely remove itself from a list while being run.
(Note that it is not safe to remove anything else from the same list,
as this may still cause corruption in the case where the removed
item is next on the list.)
msmith [Mon, 9 Oct 2000 00:40:17 +0000 (00:40 +0000)]
Resolve the inconsistency between "the number of resources of a particular
kind we can manage in a set of configurations" and "the number of resources
of a particular kind that can be programmed into an ISA PnP adapter".
phk [Sun, 8 Oct 2000 21:34:00 +0000 (21:34 +0000)]
Initiate deorbit burn sequence for <machine/console.h>.
Replace all in-tree uses with necessary subset of <sys/{fb,kb,cons}io.h>.
This is also the appropriate fix for exo-tree sources.
Put warnings in <machine/console.h> to discourage use.
November 15th 2000 the warnings will be converted to errors.
January 15th 2001 the <machine/console.h> files will be removed.
obrien [Sun, 8 Oct 2000 18:45:01 +0000 (18:45 +0000)]
Duh, it is mtree(8) that creates boot/kernel for us as refered to in
rev 1.572. Of course if you are manually running the various Makefile
targets, it may or may not get run.
bde [Sun, 8 Oct 2000 09:24:45 +0000 (09:24 +0000)]
Fixed printf format errors which corrupted /var/db/mounttab on i386's with
64-bit longs (don't assume that time_t is long; assume that time_t's are
representable as longs).
bde [Sun, 8 Oct 2000 09:17:56 +0000 (09:17 +0000)]
Use the correct timestamp for the -C -p case when the comparison fails.
A garbage timestamp was used for at least installing /dev/null with -C -p
when the target doesn't already exist.
bmilekic [Sun, 8 Oct 2000 03:52:27 +0000 (03:52 +0000)]
Cleanup comment in machine/param.h regarding mbuf-related sizes, and get rid
of MCLOFSET, which does not appear to be used anywhere anymore, and if it is,
it probably shouldn't be.
gibbs [Sun, 8 Oct 2000 03:37:52 +0000 (03:37 +0000)]
Correct corruption of the qinfifo in ahc_search_qinififo() for all
non-LVD controllers. We only need to take special action on the qinfifo
if we have dectected the case of an SCB that has been removed from the
qinfifo but has not been fully DMAed to the controller. A missing
conditional caused this code to be executed every time an SCB was
aborted from the queue
Don't attempt to print the path of an SCB that has been freed.
Clean up the traversal of the pending scb list in
ahc_update_pending_syncrates(). This has no functional change.
Correct ahc_timeout()'s requeing of a timedout SCB to effect a
recovery action. We now use ahc_qinfifo_requeue() and a
new function ahc_qinfifo_count() instead of performing the
requeue inline. The old code did not conform to the new qinfifo
method.
Clear the timedout SCB from the disconnected list. This ensures
that the SCB_NEXT field is free to be used for queuing us to
the qinfifo.