Josef Karthauser [Wed, 19 Jan 2000 14:25:08 +0000 (14:25 +0000)]
It's not been possible to configure a print server running lpd,
with remote hosts feeding it, so that some hosts have their header
pages supressed and some don't. This is because lpd doesn't know
how to rewrite a print job before forwarding it to a remote lpd.
In particular this causes problems with p rinters that contain
their own lpd, eg. HP jet direct cards, because they can't suppress
headers. It's not possible to have headers supressed by putting
'sh' in any printcap in the lpd chain, it is up to the originating
lpr to have a '-h' option specified at run time.
Lpr has been modified to allow _it_ to honour the 'sh' flag in the
local print cap. This allows the administrator to switch off
headers for a particular printer (on a particular host) irrespective
of whether that printer is local to the machine or remote.
This doesn't break anything, because in the case of a remote printer
the 'sh' flag would have had no meaning, in the case of the local
printer it would have been on anyway.
Submitted by: Scott James Remnant <scott@pavilion.net>
David E. O'Brien [Wed, 19 Jan 2000 09:47:19 +0000 (09:47 +0000)]
Utility to control the printing of "Fixed up unaligned data access for pid
nnn at pc 0xADDR" and the fixup of the UA fault on the DEC Alpha when an
unaligned access fault happens. Modeled after the OSF/1 utility of the
same name.
Jason Evans [Wed, 19 Jan 2000 07:04:50 +0000 (07:04 +0000)]
Implement continuations to correctly handle [sig|_]longjmp() inside of a
signal handler. Explicitly check for jumps to anywhere other than the
current stack, since such jumps are undefined according to POSIX.
While we're at it, convert thread cancellation to use continuations, since
it's cleaner than the original cancellation code.
Avoid delivering a signal to a thread twice. This was a pre-existing bug,
but was likely unexposed until these other changes were made.
Defer signals generated by pthread_kill() so that they can be delivered on
the appropriate stack. deischen claims that this is unnecessary, which is
likely true, but without this change, pthread_kill() can cause undefined
priority queue states and/or PANICs in [sig|_]longjmp(), so I'm leaving
this in for now. To compile this code out and exercise the bug, define
the _NO_UNDISPATCH cpp macro. Defining _PTHREADS_INVARIANTS as well will
cause earlier crashes.
Bill Paul [Wed, 19 Jan 2000 06:12:32 +0000 (06:12 +0000)]
Close PR#16028. Make the sanity check saner. The condition that we
check for on the server may arise legitimately on the client. The
correct way to check for a zero record length is to check for it
without the LAST_FRAG marker in it, since it's legal to send a LAST_FRAG
marker with 0 bytes of data.
Bill Paul [Wed, 19 Jan 2000 01:01:56 +0000 (01:01 +0000)]
Fix a couple of bugs:
- The busy wait hack in usbdi.c was doing its timeout in microseconds
instead of milliseconds.
- if_aue.c:aue_intr() is creating a bitmask by and'ing two bits when it
should be or'ing them.
Søren Schmidt [Tue, 18 Jan 2000 21:02:59 +0000 (21:02 +0000)]
Rearrange the probecode, so that 80pin cables can be identified
correctly on both master and slave.
Smash together the ata_params & atapi_params structures as they
are more or less equal anyways.
Get rid of the last SYSINIT's in here.
Daniel Eischen [Tue, 18 Jan 2000 11:35:25 +0000 (11:35 +0000)]
Properly initialize the last active time of the initial thread. This fixes
the case that a CPU hungry main thread is prevented from being preempted
due to a negative calculation of its time slice.
Peter Wemm [Tue, 18 Jan 2000 09:30:58 +0000 (09:30 +0000)]
Add another four device ID's for isa pnp modems. The USR's seem to use
the same vendor and logical ID. The rest I am not sure whether they
are vendor or logical, but it won't hurt if I've put a vendor ID here
as merely will not match. These came from the old sio-pnp code, hence
the uncertainty about which ID it is.
Yoshinobu Inoue [Tue, 18 Jan 2000 09:02:19 +0000 (09:02 +0000)]
Merge a bug fix from freebsd-current; check m != NULL before touching it,
at udp6_ctlinput().
There should be kernel panic at PCCARD suspend etc, before this bug fix.
David E. O'Brien [Tue, 18 Jan 2000 07:37:10 +0000 (07:37 +0000)]
Add two new functions cd9660_readfile() & cd9660_readdir(), which
cd9660_read() now uses to read CDROMs. With these changes FreeBSD/Alpha
can now boot from a bootable CDROM.
Mike Smith [Tue, 18 Jan 2000 02:15:05 +0000 (02:15 +0000)]
Don't mark unallocated resources as active; the goal is to reserve them,
and there may be a good reason for them being unallocated (eg. they're
nonsensical or not useful). The goal here is simply to reserve them
against accidental use by other code.
Mike Smith [Tue, 18 Jan 2000 02:13:27 +0000 (02:13 +0000)]
Don't try to map memory resources into the kernel until they're actually
activated. Some of the things that get listed as "resources" aren't
necessarily suited for this.
(This shouldn't be a problem for any driver that correctly passes
RF_ACTIVE)
Kirk McKusick [Tue, 18 Jan 2000 02:13:26 +0000 (02:13 +0000)]
Need to reset the buffer pointer to avoid reconsidering the same buffer
again (without this the rollback analysis was being lost). Should reduce
the write count for most workloads.
Submitted by: Craig A Soules <soules+@andrew.cmu.edu>
Kirk McKusick [Tue, 18 Jan 2000 01:33:05 +0000 (01:33 +0000)]
During fastpath processing for removal of a short-lived inode, the
set of restrictions for cancelling an inode dependency (inodedep)
is somewhat stronger than originally coded. Since this check appears
in two places, we codify it into the function check_inode_unwritten
which we then call from the two sites, one freeing blocks and the
other freeing directory entries.
Kirk McKusick [Tue, 18 Jan 2000 01:30:03 +0000 (01:30 +0000)]
Need to reorganize the flushing of directory entry (pagedep) dependencies
so that they never try to lock an inode corresponding to ".." as this
can lead to deadlock. We observe that any inode with an updated link count
is always pushed into its buffer at the time of the link count change, so
we do not need to do a VOP_UPDATE, but merely find its buffer and write it.
The only time we need to get the inode itself is from the result of a
mkdir whose name will never be ".." and hence locking such an inode will
never request a lock above us in the filesystem tree. Thanks to Brian
Fundakowski Feldman for providing the test program that tickled soft updates
into hanging in "inode" sleep.
Submitted by: Brian Fundakowski Feldman <green@FreeBSD.org>
Bill Fumerola [Tue, 18 Jan 2000 01:27:47 +0000 (01:27 +0000)]
Add the "use -lutil" line to all functions that require it so people like
Dan Papsian <bugg@bugg.strangled.net> don't anger wpaul and myself with
silly linking errors.
Bill Paul [Mon, 17 Jan 2000 23:14:40 +0000 (23:14 +0000)]
Change the mechanism by which we detect that the firmware is already
running. It turns out that trying to read the MAC address when there's
no firmware creates a zero length transfer. This apparently doesn't
hurt anything on a UHCI controller, but OHCI controllers generate an
IOERROR, and the device doesn't initialize.
Instead, check the bcdDevice revision code. We know this will be
different when the firmware is running, so if we detect the firmware's
code instead of the bare hardware's code, we skip the firmware load.
Bill Paul [Mon, 17 Jan 2000 18:49:20 +0000 (18:49 +0000)]
The correct part number for the CATC ASIC is USB-EL1210A, not
USB-EL1201A or even USB-EL1202A. Wonder what drugs I was on when
I made this mistake, and then propagated it to 6 different files.