Commit Graph

49760 Commits

Author SHA1 Message Date
des
9b9369d90e New libfetch-based fetch. 2000-06-28 16:55:15 +00:00
des
b112ea1321 Handle multiline replies properly, instead of kinda-right. 2000-06-28 15:48:26 +00:00
roger
114ecdeaa9 Update to driver 2.14. Adds new Tuner types for Hauppauge WinTV cards 2000-06-28 15:09:12 +00:00
nbm
ce68da90ca Fix the rmdir -p a/b/c/ case, where rmdir -p a/b/c works, and rmdir c/
works.

PR:		PR 6521
Submitted by:	Rudolf Cejka <xcejka00@dcse.fee.vutbr.cz>
Reviewed by:	eivind (in brief retrograde)
2000-06-28 14:54:07 +00:00
joe
c328bb90a7 Added 400.status-pkg.
Forgotten by:	brian
2000-06-28 14:37:22 +00:00
brian
b7b1c2edad Add options NETGRAPH_ETHER 2000-06-28 09:33:59 +00:00
brian
c6cc4497b1 Further protection against comments in /etc/{passwd,group}
Submitted by:	Andre Albsmeier <andre.albsmeier@mchp.siemens.de>
PR:		14269
2000-06-28 09:31:31 +00:00
brian
15dc9f70e6 kldload ng_ether if we need to. 2000-06-28 09:30:30 +00:00
mpp
1bcd874077 Grumble. The previous commit still had the wrong date in the
example.  Oct 29 0:30 +3 hours is still Oct 29, no matter what the
DST setting is, and not Oct 30..
2000-06-28 09:20:06 +00:00
mpp
e704e1d688 Typo fix.
PR:		docs/19554
Submitted by:	Kazuo Horikawa <horikawa@psinet.com>
2000-06-28 09:13:32 +00:00
brian
73f143b681 Fix a comment
Submitted by:	joe
2000-06-28 06:51:37 +00:00
kato
955d8d37b0 Disabled ida, amr and mlx devices. 2000-06-28 03:25:47 +00:00
kato
53e719e96a Merged from sys/i386/i386/userconfig.c revision 1.181. 2000-06-28 03:23:42 +00:00
kato
8b446b8a02 Merged from sys/i386/isa/spkr.c revision 1.47. 2000-06-28 03:20:56 +00:00
kato
54a8c46497 Merged from sys/i386/isa/npx.c revision 1.83. 2000-06-28 03:19:44 +00:00
kato
ca048afcef Merged from sys/i386/isa/isa_dma.c revision 1.6. 2000-06-28 03:18:51 +00:00
kato
3c6b0942ae Merged from sys/i386/isa/clock.c revision 1.152. 2000-06-28 03:17:51 +00:00
kato
f9b58fdc5b Merged from sys/i386/conf/GENERIC revisions 1.261 and 1.262. 2000-06-28 03:15:27 +00:00
jasone
07f1aa63b8 Fix typo in SEE ALSO section. 2000-06-28 03:15:21 +00:00
ken
0f56982341 When printing out the transfer rate display for 'camcontrol inquiry',
use the current setting for tagged queueing when deciding whether or not to
print "Tagged Queueing Enabled" instead of using the device's actual
capabilities.

This is more consistent with the rest of the transfer rate display, which
relies on current settings, and is more consistent with the way we display
things on boot.

Reported by:	Gustavo Vieira Goncalves Coelho Rios <kernel@tdnet.com.br>
Reviewed by:	mjacob
2000-06-28 02:48:31 +00:00
obrien
4e9e041e5a Turn off GLOBAL. It is moving to Ports.
Approved by:	unanimous response on arch@freebsd.org
2000-06-28 00:39:18 +00:00
alfred
1e48e18a71 don't panic the system when fpathconv is called on an unsupported filetype. 2000-06-27 23:08:36 +00:00
alfred
6a77970fb2 by changing the logic here we can support dynamic additions of new
filetypes.

Reviewed by: green
2000-06-27 22:46:35 +00:00
alfred
ea961c73cb use warnings
use strict
add 'usage'
2000-06-27 22:41:12 +00:00
alfred
6887475162 if there are leading zeros fail the lookup
Pointed out by: Alexander Viro <viro@math.psu.edu>
2000-06-27 21:37:17 +00:00
jasone
685b55093c If multiple threads are blocked in sigwait() for the same signal that does
not have a user-supplied signal handler, when a signal is delivered, one
thread will receive the signal, and then the code reverts to having no
signal handler for the signal.  This can leave the other sigwait()ing
threads stranded permanently if the signal is later ignored, or can result
in process termination when the process should have delivered the signal to
one of the threads in sigwait().

To fix this problem, maintain a count of sigwait()ers for each signal that
has no default signal handler.  Use the count to correctly install/uninstall
dummy signal handlers.

Reviewed by:	deischen
2000-06-27 21:30:16 +00:00
green
26efc47d38 So /this/ is what has made OpenSSH's SSHv2 support never work right!
In some cases, limits did not get set to the proper class, but
instead always to "default", because not all passwd copies were
done to completion.
2000-06-27 21:16:06 +00:00
jhb
1a17cb6a0c Catch the usage() function up to the command line changes. Add -I and
remove -e.
2000-06-27 20:36:44 +00:00
wollman
485e9cac6a Fix description of -i' and -w' options.
Fix spelling of `TeX'.
Move historical formats into a separate list, to make thier cruftiness
clear.
2000-06-27 20:21:56 +00:00
jhb
e1ff78731a - Don't blindly assume that there are 8 hard drives installed. Instead,
use the BIOS Equipment List to determine how many hard drives are
  installed and if the drive number we received in %dl is valid.
- Don't bother to disable interrupts when setting up the stack.  The 8086
  and beyond implicitly disable interrupts after an instruction that sets
  %ss (for example, a pop or a mov) so that you can safely set %ss and %sp
  in two consecutive instructions.  An exception to this is the lss
  instruction, which can set both registers simultaneously and thus doesn't
  need this hack.
- Add support for EDD BIOS extensions to support booting off of hard drives
  of nearly arbitrary length.
2000-06-27 20:04:10 +00:00
mjacob
e4ec9bc987 Fix usage of DELAY (SYS_DELAY is the platform independent local
define).  Fix stupidity wrt checking whether we've gone to
LOOP_PDB_RCVD loopstate- it's okay to be greater than this state.
D'oh! Protect calls to isp_pdb_sync and isp_fclink_state with IS_FC
macros.

Completely redo mailbox command routine (in preparation to make this
possibly wait rather than poll for completion).

Make a major attempt to solve the 'lost interrupt' problem

1. Problem

The Qlogic cards would appear to 'lose' interrupts, i.e., a legitimate
regular SCSI command placed on the request queue would never complete
and the watchdog routine in the driver would eventually wakeup and
catch it. This would typically only happen on Alphas, although a
couple folks with 700MHz Intel platforms have also seen this.

For a long time I thought it was a foulup with f/w negotiations of
SYNC and/or WIDE as it always seemed to happen right after the
platform it was running on had done a SET TARGET PARAMETERS mailbox
command to (re)enable sync && wide (after initially forcing
ASYNC/NARROW at startup). However, occasionally, the same thing
would also occur for the Fibre Channel cards as well (which, ahem,
have no SET TARGET PARAMETERS for transfer mode).

After finally putting in a better set of watchdog routines for the
platforms for this driver, it seemed to be the case that the command
in question (usually a READ CAPACITY) just had up and died- the
watchdog routine would catch it after ~10 seconds. For some platforms
(NetBSD/OpenBSD)- an ABORT COMMAND mailbox command was sent (which
would always fail- indicating that the f/w denied knowledge of this
command, i.e., the f/w thought it was a done command). In any case,
retrying the command worked. But this whole problem needed to be
really fixed.

2. A False Step That Went in The Right Direction

The mailbox code was completely rewritten to no longer try and grab
the mailbox semaphore register and to try and 'by hand' complete
async fast posting completions. It was also rewritten to now have
separate in && out bitpatterns for registers to load to start and
retrieve to complete. This means that isp_intr now handles mailbox
completions.

This substantially simplifies the mailbox handling code, and carries
things 90% toward getting this to be a non-polled routine for this
driver.

This did not solve the problem, though.

3. Register Debouncing

I saw some comments in some errata sheets and some notes in a Qlogic
produced Linux driver (for the Qlogic 2100) that seemed to indicate
that debouncing of reads of the mailbox registers might be needed,
so I added this.  This did not affect the problem. In fact, it made
the problem worse for non-2100 cards.

5. Interrupt masking/unmasking

The driver *used* to do a substantial amount of masking/unmasking
of the interrupt control register. This was done to make sure that
the core common code could just assume it would never get pre-empted.

This apparently substantially contributed to the lost interrupt
problem.  The rewrite of the ICR (Interrupt Control Register),
which is a separate register from the ISR (Interrupt Status Register)
should not have caused any change to interrupt assertions pending.
The manual does not state that it will, and the register layout
seems to imply that the ICR is just an active route gate. We only
enable PCI Interrupts and RISC Interrupts- this should mean that
when the f/w asserts a RISC interrupt and (and the ICR allows RISC
Interrupts) and we have PCI Interrupts enabled, we should get a
PCI interrupt. Apparently this is a latch- not a signal route.

Removing this got rid of *most* but not all, lost interrupts.

5. Watchdog Smartening

I made sure that the watchdog routine would catch cases where the
Qlogic's ISR showed an interrupt assertion. The watchdog routine
now calls the interrupt service routine if it sees this. Some
additional internal state flags were added so that the watchdog
routine could then know whether the command it was in the middle
of burying (because we had time it out) was in fact completed by
the interrupt service routine.

6. Occasional Constipation Of Commands..

In running some very strenous high IOPs tests (generating about
11000 interrupts/second across one Qlogic 1040, one Qlogic 1080
and one Qlogic 2200 on an Alpha PC164), I found that I would get
occasional but regular 'watchdog timeouts' on both the 1080 and
the 2100 cards. This is under FreeBSD, and the watchdog timeout
routine just marks the command in error and retries it.

Invariably, right after this 'watchdog timeout' error, I'd get a
command completion for the command that I had thought timed out.
That is, I'd get a command completion, but the handle returned by
the firmware mapped to no current command. The frequency of this
problem is low under such a load- it would usually take an 30
minutes per 'lost' interrupt.

I doubled the timeout for commands to see if it just was an edge
case of waiting too short a period. This has no effect.

I gathered and printed out microtimes for the watchdog completed
command and the completion that couldn't find a command- it was
always the case that the order of occurrence was "timeout, completion"
separated by a time on the order of 100 to 150 ms.

This caused me to consider 'firmware constipation' as to be a
possible culprit. That is, resubmission of a command to the device
that had suffered a watchdog timeout seemed to cause the presumed
dead command to show back up.

I added code in the watchdog routine that, when first entered for
the command, marks the command with a flag, reissues a local timeout
call for one second later, but also then issues a MARKER Request
Queue entry to the Qlogic f/w. A MARKER entry is used typically
after a Bus Reset to cause the f/w to get synchronized with respect
to either a Bus, a Nexus or a Target.

Since I've added this code, I always now see the occasional watchdog
timeout, but the command that was about to be terminated always
now seems to be completed after the MARKER entry is issued (and
before the timeout extension fires, which would come back and
*really* terminate the command).
2000-06-27 19:44:31 +00:00
mjacob
9ac6bffe81 Add in the enabling of interrupts (to isp_attach). Clean up a busted
comment. Check against firmware state- not loop state when enabling
target mode. Other changes have to do with no longer enabling/disabling
interrupts at will.

Rearchitect command watchdog timeouts-

First of all, set the timeout period for a command that has a
timeout (in isp_action) to the period of time requested *plus* two
seconds. We don't want the Qlogic firmware and the host system to
race each other to report a dead command (the watchdog is there to
catch dead and/or broken firmware).

Next, make sure that the command being watched isn't done yet. If
it's not done yet, check for INT_PENDING and call isp_intr- if that
said it serviced an interrupt, check to see whether the command is
now done (this is what the "IN WATCHDOG" private flag is for- if
isp_intr completes the command, it won't call xpt_done on it because
isp_watchdog is still looking at the command).

If no interrupt was pending, or the command wasn't completed, check
to see if we've set the private 'grace period' flag. If so, the
command really *is* dead, so report it as dead and complete it with
a CAM_CMD_TIMEOUT value.

If the grace period flag wasn't set, set it and issue a SYNCHRONIZE_ALL
Marker Request Queue entry and re-set the timeout for one second
from now (see Revision 1.45 isp.c notes for more on this) to give
the firmware a final chance to complete this command.
2000-06-27 19:31:02 +00:00
mjacob
c32e4a88bf Clean up private storage so that we can use the spriv_field0 to
store a bitmask of whether we've set a value into ccb->ccb_h.status,
whether we're in the watchdog routine for this command now, whether
we've set a grace period for this command and whether this command is
actually done.

See comments of rev 1.45 of isp.c for more complete information.
2000-06-27 19:22:13 +00:00
mjacob
51596cce55 Add 8 bits of volatile mailbox busy mask- this will be the bitmask of
output mailbox values we want to get back out of the chip once a mailbox
command is done. Add storage for the maximum number of output mailbox
registers to the softc.

Roll minor version number.
2000-06-27 19:17:39 +00:00
mjacob
c3ccd76815 Add mailbox bitmask macros (numbers of available mailbox registers
based upon Qlogic chip type). Define maximum mailboxes. Add INT_PENDING_MASK
macro. Change mailbox offset macro name.
2000-06-27 19:15:43 +00:00
mjacob
4252a0e093 Add an isp_handle_index function- this is prepatory to loading more into
the handle (i.e., generation number), so we will now need a function that
will take a handle and return a flat index [ 0 .. maxhandles-1 ] for
auxillary routines that need an index to get at buddy store values
(like dma maps or xflist pointers).
2000-06-27 19:14:14 +00:00
alfred
643ea4e185 remove crufty exec stuff, perl is in the base system
make it work with warnings on (there was some harmless use of uninitialized
variables)
make it work with 'use strict'

Approved by: peter
2000-06-27 19:09:55 +00:00
sheldonh
6be5180b1f Use Dq Li (double-quoted literal) instead of Ic (internal command) to
mark up a sample invocation, since it is not a command internal to the
described utility.

Do not use Ar (argument) to mark up something which is not an argument
to the utility or one of its internal commands.
2000-06-27 18:22:13 +00:00
markm
d075a2c607 Fix the upgrade-build case. 2000-06-27 15:28:14 +00:00
ru
15462ff9cb Added new option (-punch_fw) which allows to `punch holes'
in the ipfirewall(4) for incoming FTP/IRC DCC connections.

Submitted by:	Rene de Vries <rene@canyon.demon.nl>
Rewritten by:	ru
2000-06-27 15:26:24 +00:00
ru
268f00dee9 Fixed PunchFWHole():
- ipfw always rejected rule with `neither in nor out' diagnostics.
- number of src/dst ports was not set properly.
2000-06-27 14:56:07 +00:00
brian
1a9ea82414 Reword the description of weekly_status_pkg_enable (although not
quite how Sheldon suggested)

Suggested by: sheldonh
2000-06-27 12:04:43 +00:00
ru
2bcb688f1c - mdoc(7) style cleanup
- new version of security note from alex.
2000-06-27 11:39:36 +00:00
brian
1400b2309b Add weekly_status_pkg_enable (defaults to NO) 2000-06-27 11:20:08 +00:00
des
af6a1c52dc Use libfetch instead of libftpio. This adds support for http and IPv6. 2000-06-27 11:00:07 +00:00
brian
4f3352b86c Mention $daily_accounting_compress
Forgotten by: Ben & I
2000-06-27 10:52:21 +00:00
markm
98710a31ad I am guilty of an act of ommission. There is no longer a /dev/urandom
device with Yarrow, and although I coded for that in dev/MAKEDEV, I forgot
to _tell_ folks.

This commit adds back the /dev/urandom device (as a duplicate) of /dev/random,
until such time as it can be properly announced.

This will help the openssl users quite a lot.
2000-06-27 09:38:40 +00:00
phk
0535bee2fb Move prtactive to vfs from ufs. It is used all over the place. 2000-06-27 07:46:22 +00:00
archie
2c5a7a6ad0 Update to reflect new ng_ether(4) hooks.
Remove 'options NETGRAPH' requirement.
2000-06-27 00:09:49 +00:00
jhb
4e0ad3c333 Comment this. 2000-06-26 23:58:04 +00:00