Ian Dowse [Thu, 14 Feb 2002 01:30:45 +0000 (01:30 +0000)]
In createfiles(), properly handle a number of cases where no further
volumes are available, instead of getting stuck in a loop calling
getvol(). Normally restore in 'x' or 'i' modes will ask for a new
(earlier) volume when the current inode number on the tape is greater
than the last inode to be restored, since there can be no further
inodes of interest on that volume. However we don't want to change
volumes in this case either if the user explicitly said that there
are no more tapes, or if we are looking at the first volume.
When no more volumes are available but there are still inodes that
we have not found, we now just fall through to the code that prints
out a list of any missing files, so the restore completes normally.
Also simplify the logic a bit by always returning to the start of
the main for(;;) loop whenever the volume has changed.
This should completely fix the "Changing volumes on pipe input" bug
that is often observed when restoring dumps of active filesystems.
Bruce Evans [Thu, 14 Feb 2002 01:21:23 +0000 (01:21 +0000)]
Fixed sign extension bugs in previous commit. They didn't completely
break scheduling because negative priorities were most fixed up by
converting kg_pri_user back to the correct type.
Fixed some style bugs in previous commit (non-terminated sentence fragments
and regressions in comments).
Josef Karthauser [Thu, 14 Feb 2002 00:35:03 +0000 (00:35 +0000)]
Rework revision 1.12, and wrap the bmaj entry with an #if doesn't
compile it in on FreeBSD-current, but does in all other cases
(-stable, NetBSD, OpenBSD, etc).
Bruce Evans [Wed, 13 Feb 2002 21:38:48 +0000 (21:38 +0000)]
Don't confuse a struct with its first member. This fixes:
./@/i386/i386/machdep.c: In function `init386':
./@/i386/i386/machdep.c:1700: warning: assignment from incompatible pointer type
Alfred Perlstein [Wed, 13 Feb 2002 18:47:50 +0000 (18:47 +0000)]
Re-enable WITNESS for GENERIC. Since the 5.x branch is mostly about
SMP we'd like as much feedback as possible from users about possible
locking problems as early as possible.
To negate most of the performance impact I've also enabled
WITNESS_SKIPSPIN. I've done this as we've been running WITNESS
over the spinlock code for a while without incident and it goes a
long way to making the performance problems of WITNESS much more
bearable.
Users who should be running current should know about turning WITNESS
off for performance reasons.
That said and done, WITNESS could/should be made into a tuneable,
but we'll leave that as an excersize to those that want to disable
it without a kernel recompile.
Prafulla Deuskar [Wed, 13 Feb 2002 18:19:27 +0000 (18:19 +0000)]
- Added support for receive in multiple
descriptors. This simplifies code for jumbo frames.
- Cleaned up coding conventions to make code more unix-like.
- Cleaned up code in if_em_fxhw.c and if_em_phy.c.
Added relevant comments.
Thomas Moestl [Wed, 13 Feb 2002 16:07:59 +0000 (16:07 +0000)]
Merge r1.39 from NetBSD (manage both streaming caches for psycho pairs).
Use explicit bus space accesses instead of mapping the device memory
into kva.
Fix support for psycho pairs, and catch up with iommu code changes.
Thomas Moestl [Wed, 13 Feb 2002 15:59:17 +0000 (15:59 +0000)]
Merge r1.42 of iommu.c and r1.9 of iommuvar.h from NetBSD (this adds
support for managing both streaming caches on psycho pairs).
Use explicit bus space accesses instead of mapping the device memory into
kva.
Move DVMA allocation to the map creation/dma memory allocation functions.
Thomas Moestl [Wed, 13 Feb 2002 15:51:57 +0000 (15:51 +0000)]
Clean up bus space debugging support; change sparc64_bus_mem_map() to
take a bus tag and handle as argument instead of a i/o space id and a
physical address, now that nexus handles device memory resource
allocations.
Thomas Moestl [Wed, 13 Feb 2002 15:40:05 +0000 (15:40 +0000)]
Add a few new functions/macros: intr_disable() and intr_restore() to
disable interrupts completely, and stxa_sync(), which performs a store
immediately followed by a membar #Sync with interrupts disabled (this
is needed for writes to diagnostic registers).
Ian Dowse [Wed, 13 Feb 2002 12:06:58 +0000 (12:06 +0000)]
Fix a number of long-standing restore bugs in tape.c, mainly relating
to multi-volume restores:
- In findinode(), keep a copy of header->c_type so that we don't
exit the do-while loop until we have processed the current header.
Exiting too early leaves curfile.ino set to 0, which confuses
the logic in createfiles(), so multi-volume restores with the
'x' command don't work if you follow the instructions and supply
the tapes in reverse order. This appears to have been broken
by CSRG revision 5.33 tape.c (Oct 1992).
- The logic in getvol() for deciding how many records to skip after
the volume header was confused; sometimes it would skip too few
records and sometimes too many, leading to "resync restore"
warnings and missing files. Skip to the next header only when
the current action is not `USING'. Work around a dump bug that
sets c_count incorrectly in the volume header of the first tape.
Some of the problems here date back to at least 1991.
- Back out revision 1.23. This appeared to avoid warnings about
missing files in the 'rN' verification case, but it made the
problems with the 'x' command worse by stopping getvol() from
even attempting to find the first inode number on the newly
inserted tape. The bug it addressed is fixed by correcting the
skipping logic as described above.
- Save the value of `tpblksread' in case the wrong volume is
supplied, because it is incremented each time we read a volume
header. We already saved `blksread' for the same reson.
Robert Watson [Wed, 13 Feb 2002 07:44:59 +0000 (07:44 +0000)]
Remove WITNESS from GENERIC by default: as we grow more locks, this gets
slower, and may be impeding adoption of -CURRENT by developers. We
recommend turning on WITNESS by default on crash boxes, and when doing
locking development. It will probably get turned on by default for a week
or two following any major locking commits, also.
Julian Elischer [Wed, 13 Feb 2002 00:10:04 +0000 (00:10 +0000)]
I THINK this fixes 'make world'
I'll know as soon as I re-import it and compile it.. :-)
There is no longer a 'pri' strict in the proc struct.
the fields are scattered between the ksegrp and thread in question.
Alan Cox [Tue, 12 Feb 2002 17:40:41 +0000 (17:40 +0000)]
o Clearing p/td_retval[0] after aio_newproc() is unnecessary. (We stopped
calling rfork() to create aio threads in revision 1.46.)
o Don't recompute the FILE * when it's already stored in the kernel's AIOCB.
Mkdir ${CHROOTDIR}/usr/ports/distfiles if RELEASEDISTFILES is not set.
We ensure that 'ports.tgz' tarball should have ports/distfiles directory.
At first, ${CHROOTDIR}/usr/ports is empty (rm -rf ports), then extract
ports files from CVS repository. Then if RELEASEDISTFILES is defined,
${CHROOTDIR}/usr/ports/distfiles directory is created by cp(1). However,
if you don't specify RELEASEDISTFILES, there is no chance to create
${CHROOTDIR}/usr/ports/distfiles directory.
Submitted by: {ushi,tora}.jp.FreeBSD.org
MFC after: 5 days
Søren Schmidt [Tue, 12 Feb 2002 11:35:15 +0000 (11:35 +0000)]
Major update of the ATA RAID code, part 2:
More cleanups of the RAID1 failure mode code.
Add functionality that writes the changed RAID config setup
back to the disks (in controller BIOS specific format), so
that a reboot will make the BIOS pick up the changed config.
Doug Barton [Tue, 12 Feb 2002 09:54:56 +0000 (09:54 +0000)]
* Update (c)
* Fix a problem with files that have no CVS $Id's. Thanks to naddy for
spotting this one. It wasn't a _huge_ problem since almost all the files
we install (except motd) have one, but still, it's a bug.
* Add a divider between diff outputs, which is helpful both for logs,
and for giving a good visual clue for diffs that are smaller than
$LINES. Another helpful suggestion from Gary W. Swearingen, swear@blarg.net.
Warner Losh [Tue, 12 Feb 2002 05:32:58 +0000 (05:32 +0000)]
Two fixes from Jonathan Hanna:
1) We shouldn't continue when we get a RX complete because we ack it
and the TX complete.
2) Fix a couple of spl leaks
(why splbio is needed in ISR, I cannot understand).
Luigi Rizzo [Mon, 11 Feb 2002 23:56:18 +0000 (23:56 +0000)]
MFS: synchronize the code with the version in -stable, specifically:
+ SYSCTL_ULONG -> SYSCTL_UINT
+ some procedure renaming and variable rearrangement
+ fix the 'interface going deaf' problem same as in -stable.
Ruslan Ermilov [Mon, 11 Feb 2002 16:47:05 +0000 (16:47 +0000)]
Fixed -DMAKE_KERBEROS5 world breakage in kerberos5/lib/libroken
(make-roken is a build tool). This bug was hiding itself after
a just fixed bug in cross-linker (binutuils/ld/Makefile,v 1.20).
The bug was fatal for cross builds; for example, an alpha binary
(make-roken) was attempted to be run on i386.
Added make-roken to the list of build-tools in libasn1. It only
worked because another build tool needs make-roken implicitly:
Yaroslav Tykhiy [Mon, 11 Feb 2002 15:26:20 +0000 (15:26 +0000)]
Found a single point where rmuser(8) wasn't robust to strange
characters in a username: where it was inserted into a regexp.
Fix it by escaping metacharacters in the name with \Q-\E.
Josef Karthauser [Mon, 11 Feb 2002 02:57:50 +0000 (02:57 +0000)]
Merge from NetBSD: revs 1.12 and 1.21 - 1.23
Original NetBSD log messages are:
----------------------------
revision 1.23
date: 2001/12/12 15:48:18; author: augustss; lines: +132 -114
Add a scanner quirk for keeping the pipes open between device opening.
Idea from Enami.
----------------------------
revision 1.22
date: 2001/12/03 01:47:13; author: augustss; lines: +8 -16
Handle vendor/product lookup with a common routine.
----------------------------
revision 1.21
date: 2001/12/01 09:42:39; author: enami; lines: +4 -4
Shorten wmesg so that they can be distinguished in ps/top output.
----------------------------
revision 1.12
date: 2001/01/23 14:04:14; author: augustss; lines: +7 -1
Make sure driver attach/detach events are generated in a
consistent manner.
----------------------------