14327 Commits

Author SHA1 Message Date
n_hibma
65f1192fbe Added a number of device names: Konica, Microsoft, Macally 1999-03-24 07:46:53 +00:00
peter
b1c85cae2e Update Specialix download microcode for the transputer based serial host
cards from the 3.0-beta to 3.0.4 release.

Submitted-by:  Nick Sayer <nsayer@quack.kfu.com>
PR: 10674
1999-03-24 02:49:43 +00:00
grog
52877fac88 Correct the text of an obscure error message. 1999-03-24 00:43:05 +00:00
billf
da0438ea6a Remove duplicate line.
Reviewed by:	eivind
1999-03-23 23:01:15 +00:00
n_hibma
7e54723f10 Check whether the PIRQD enable bit is set in LegSup and if not, set it.
On my PIIX4 chip rev 1 this is required. Have not had any complaints from
other people so it might be a problem with this stepping.
1999-03-23 21:37:45 +00:00
n_hibma
19a0bccc49 1) clean up debugging output
2) remove erroneous querying of PCI LegSup register while it should be
   fetched from PCI config space
3) change name of define for this register
1999-03-23 21:35:57 +00:00
dfr
11ad9ec0fa Call the module's unload handler before removing the device from the
cdevsw list.  This allows a handler to veto the load without losing its
place in the list.

PR:	kern/10653
1999-03-23 21:11:47 +00:00
phk
e1c9acedca Add a sysctl variable which can help stop chroot(2) escapes.
kern.chroot_allow_open_directories = 0
	chroot(2) fails if there are open directories.

kern.chroot_allow_open_directories = 1 (default)
	chroot(2) fails if there are open directories and the process
	is subject of a previous chroot(2).

kern.chroot_allow_open_directories = anything else
	filedescriptors are not checked.  (old behaviour).

I'm very interested in reports about software which breaks when
running with the default setting.
1999-03-23 14:26:40 +00:00
phk
a6cff8a405 Fix some nasty hangs if garbage were passed.
Noticed by:	Emmanuel DELOGET <pixel@DotCom.FR>
Remembered by:	msmith
1999-03-23 14:23:15 +00:00
bde
9e462600cc Fixed a couple of missing drive selects in wdreset(). This mainly
affects cases where there is a slave but no master.  These bugs
were usually recovered from provided ATAPI was configured, but only
after lengthy delays.  Configuring ATAPI still fixes some bugs for
non-atapi drives.

Don't wait for seek complete in wdreset().  If necessary for pre-ata
drives, it can be waited for later (we got it wrong by only looking
at it for drive 0 anyway).  It is set as part of a historical
signature for ata drives but doesn't say anything useful about the
reset state.  It is cleared as part of a non-historical signature
for atapi drives so that drivers which don't understand atapi drives
seem to see no drive.  Waiting for it caused lengthy delays and
broke the status returned by wdreset() in cases where the master
was not an ata drive.  Then the whole wdprobe() failed in some
cases where the recovery code didn't work.

Don't wait for drive ready in wdreset().  The considerations are
the same as for seek complete, except drive ready does say something
useful about the reset state of ata drives, and waiting for it
later is required anyway for such drives.

Lengthy delays can now be avoided by not configuring nonexistent
(ata) drives.  Unfortunately, this breaks detection of atapi drives
in some configurations.
1999-03-23 10:22:19 +00:00
gibbs
7d27f1bce1 Fix a typo.
PR: 10722
Submitted by:	Chris Costello <chris@holly.dyndns.org>
1999-03-23 07:27:38 +00:00
gibbs
7d255e7447 Add support for the 3950U2B controller.
Recognize aic7895 controllers that have been "acquired" by a RAIDPort
card as normal aic7895s.

Recognize the aic7815 Raid Parity/Memory controller chip and notify
the user that it's RAID functionality will be ignored.
1999-03-23 07:26:41 +00:00
gibbs
d57cb059af Use TCL_CHANNEL/SCSI_ID/etc. macros in more locations.
Don't mess with the IRQMS bit in the host control register unless
we are an aic7770 chip.

Use calling context to determine if the card is already paused when
we update the target message request bit field in controller scratch
ram.  Looking at the paused bit in the HCNTRL register opened up a
race condition.

Insert delays in the target message request update routine as a temporary
work around for what looks like a chip bug.  I'm still investigating this
one.

Fix the Abort/Abort Tag/BDR handler to pull its message from the message
buffer in our softc instead of attempting to get it from a register on
the controller.  The message is never recorded by the controller in the
new message scheme.

Don't rely on having an SCB when a BDR occurs.  We can issue these during
invalid reconnects to.

Fix a few cases where we were restarting the sequencer but then still
falling out of a switch statement to unpause the sequencer again.
This could cause us to mess up sequencer state if it generated another
pausing interrupt between the time of the restart and unpause.

Kill the 'transceiver settle' loop during card initialization.  I
failed to realize that a controller that is not connected to any
cables will never settle or enable the SCSI transceivers at all.
The correct solution is to monitor the IOERR interrupt which indicates
that the transceiver state has changed (UW<->LVD).

Modify the aic7xxx assembler to properly echo input when stdin is not
a tty.
1999-03-23 07:24:29 +00:00
grog
03a11d74b6 Change the definition of VINUM_STARTCONFIG to take an int write parameter. 1999-03-23 04:50:40 +00:00
grog
e47937912b Add flag VF_FORCECONFIG for use by the config_drive and friends. 1999-03-23 04:49:32 +00:00
grog
d82a503606 vinum_start:
remove the splbio() around the call to launch read requests.

launch_requests:
  Move the splbio() protection outside the entire launch_loop.  The
  previous location was causing problems with IDE drives, where the
  call to the strategy routine often did not complete until after
  complete_rqe deallocated the request structure.

Solution-independently-found-by: Russell Neeper <r-neeper@tamu.edu>
Problem-reported-by: Vallo Kallaste <vallo@matti.ee>
		     John Saunders <john@nlc.net.au>
		     Bernd Walter <ticso@cicely.de> (maybe)
1999-03-23 04:49:08 +00:00
grog
ed415fe18c VINUM_STARTCONFIG:
Pass the 'data' parameter to start_config, which uses it as the
  parameter 'force.
1999-03-23 04:48:31 +00:00
grog
5f48e8b768 init_drive:
Check for partition types FS_VINUM and FS_UNUSED.  Accept both, but
  complain about FS_UNUSED.  At a later date, only FS_VINUM will be
  accepted.

Threatened-since: over a year
1999-03-23 04:48:05 +00:00
grog
688623aa54 Change the declaration of start_config. 1999-03-23 04:47:33 +00:00
grog
91ed55b390 start_config:
Add a flag `force' (VF_FORCECONFIG) to force name changes of
  existing drives.
config_drive:
  If the drive already has a vinum label, and name doesn't match the
  specified drive, do it anyway if the 'force' flag is specified.
finish_config:
  Reset the `force' flag.

Continually-tripped-over-by:  Karl Pielorz <kpielorz@tdx.co.uk>

give_sd_to_drive:
  If the drive is down, take the subdisk down and don't try to fix
  things.

update_plex_config:
  Don't try to update the config parameters of a plex which isn't
  fully configured (state plex_init or plex_unallocated).

  Correctly calculate the amount to trim off a striped or RAID-5 plex
  whose size is not a multiple of the stripe size.
1999-03-23 04:47:09 +00:00
grog
5386813d7a Add partition type for Vinum.
Offered-for-inspection-to: jkh
1999-03-23 04:08:42 +00:00
bde
9c2168a7db Removed all traces of LN_FLAGS. It was only used to produce a link
/usr/sbin/sysctl -> ${DESTDIR}/sbin/sysctl in some versions of 2.2,
and this link was broken if DESTDIR was set.

Added a SYMLINKS macro.  This works the same as LINKS, except it
creates symlinks and the linked-to pathname may be relative.  This
is more flexible than LN_FLAGS, since it supports installing
symlinks independently of hard links.

Use `ln -f[s] ...' instead of `rm -f ...; ln [-s] ...' for LINKS and
SYMLINKS.  This is equivalent if the target is neither a directory nor
a symlink to a directory.

PR:		8279
1999-03-23 03:06:25 +00:00
n_hibma
10c53b0d51 Cosmetical changes. 1999-03-22 19:58:59 +00:00
n_hibma
f4b0f1726a Implementation of the keyboard driver.
Done by: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1999-03-22 19:55:30 +00:00
n_hibma
7dfa9c591c Moved timeout initialisation a bit earlier in the process. The
untimeout function triggered panics once in a while.
1999-03-22 19:52:28 +00:00
phk
fbf7e67973 Make the same size rounding error both ways. 1999-03-22 14:01:58 +00:00
alc
9b15de3986 Two changes:
Remove more (redundant) map timestamp increments from properly
synchronized routines.  (Changed: vm_map_entry_link, vm_map_entry_unlink,
and vm_map_pageable.)

Micro-optimize vm_map_entry_link and vm_map_entry_unlink, eliminating
unnecessary dereferences.  At the same time, converted them from macros
to inline functions.
1999-03-21 23:37:00 +00:00
jkh
d52fa1be5c Add cdev 120 as the audit device.
Requested by:	Robert Watson <robert+freebsd@cyrus.watson.org>
1999-03-21 21:53:09 +00:00
phk
e787195c02 Link the bb structures together as we find them. 1999-03-21 12:30:50 +00:00
alc
1c18b849ca Eliminate a pointless TLB flush from the SMP idle loop.
Submitted by:	Luoqi Chen <luoqi@watermarkgroup.com>
Reviewed by:	"John S. Dyson" <toor@dyson.iquest.net>
1999-03-20 18:44:13 +00:00
dcs
70ba7a32ce Revert bootinfo to 1.4 and use a different solution to NULL m_args
instead (don't copy).
1999-03-20 14:13:09 +00:00
dcs
c032780b94 Fix a couple of nasty errors in the README. 1999-03-20 12:25:43 +00:00
wes
0f81341182 Turn on PCI bus mastering in driver attach routine
to avoid hanging the system if the BIOS has not
initialized the interface.

PR:		10150
Reviewed by:	dg
1999-03-20 04:51:25 +00:00
kato
0e2ac47664 Sync with sys/i386/isa/if_ed.c revision 1.150. 1999-03-19 16:01:34 +00:00
kato
6d2e2542e4 Sync with sys/boot/i386/loader/version revision 1.4. 1999-03-19 15:59:56 +00:00
kato
abcc07c5f4 Sync with sys/boot/i386/libi386/bootinfo.c revision 1.18. 1999-03-19 15:58:05 +00:00
dfr
dab08467c1 Don't lower the ipl for splsoftcam, splsoftvm and splsoftnet. 1999-03-19 10:56:28 +00:00
bde
9dfb67dcc5 Fixed a serious bug in rev.1.202. getnewbuf() sometimes didn't
initialise bp->b_data.  This tended to cause panics for file
systems whose block size is smaller than one page.
1999-03-19 10:17:44 +00:00
grog
a7a3e25040 Define two superdevices for vinum(8), depending on whether they are
compiled with or without debugging support.  This enables us to catch
(fatal) mismatches between the kernel and userland.

Coalesce flags VINUM_DISKCONFIG and VINUM_READING_CONFIG.  They did
essentially the same thing.

Add VINUM_BIGDRIVE for pretending we have macho hardware.
1999-03-19 07:19:52 +00:00
grog
7428724341 VolState: return an enum volumestate, not a (non-existent) enum volstate.
Strangely, neither gcc nor EGCS noticed this bug.

Eagle-eyed by: arno@heho.snv.jussieu.fr (Arno J. Klaassen)
1999-03-19 07:17:05 +00:00
grog
fd54e66185 Perform all of vinumstrategy at splbio. This doesn't appear
necessary, but might explain some weird problems that some people have
been getting.
1999-03-19 07:15:24 +00:00
grog
b3c2dbf024 Use microtime, not getmicrotime, to note the times in the malloc and
free histories.
1999-03-19 07:14:18 +00:00
grog
0cda71eddc Add debug flags DEBUG_BIGDRIVE, designed for testing only. It
pretends that each drive is 100 times as large as it really is.  Not
for use at home.

Coalesce flags VINUM_DISKCONFIG and VINUM_READING_CONFIG.  They did
essentially the same thing.
1999-03-19 07:13:31 +00:00
grog
8299aec88d Coalesce flags VINUM_DISKCONFIG and VINUM_READING_CONFIG. They did
essentially the same thing.

Reset flags at the right point at the end of configuration.  The
previous code disabled configuration saving at the end.
1999-03-19 07:10:19 +00:00
grog
af791bb47c free_vinum: don't change loop bounds for deleting drives while in the loop.
This solved a problem where 'vinum resetconfig' only reset half
	    the drives.

Reported-by:  Brad Knowles <blk@skynet.be>
	      Karl Pielorz <kpielorz@tdx.co.uk>

Change the super device.  We now have three super devices:

  1.  The normal superdevice used by vinum(8).
  2.  The superdevice used by vinum(8) when compiled with debug support.
  3.  The superdevice used by the daemon.

This method allows vinum(8) to determine debug mismatches.  Also check
correctly for the device type.  The old code did not check all bits of
the minor number.

  Reported-by: a cast of thousands, most recently by Brad Knowles
               <blk@skynet.be>.
1999-03-19 07:08:40 +00:00
alc
4bdf1d66da Construct the free queue(s) in descending order (by physical
address) so that the first 16MB of physical memory is allocated
last rather than first.  On large-memory machines, this avoids
the exhaustion of low physical memory before isa_dmainit has run.
1999-03-19 05:21:03 +00:00
grog
5a02343350 Modify to compile with egcs.
Prodded-by: obrien
1999-03-18 23:26:22 +00:00
jlemon
65c196874d Cast (u_char *) to (vm_offset_t) to silence compiler warnings. 1999-03-18 20:13:20 +00:00
jlemon
031e75b49e Remove debugging printf that I overlooked. 1999-03-18 18:43:03 +00:00
dcs
c18006911a Avoid copying m_args if none exists. (Perhaps this is a better solution,
Doug?)
1999-03-18 14:36:22 +00:00