Commit Graph

18183 Commits

Author SHA1 Message Date
Hellmuth Michaelis
acfb47d41c update to isdn4bsd beta release 0.90 1999-12-14 20:48:35 +00:00
Matthew Dillon
b7303db36e Fix two problems: First, fix the append seek position race that can
occur due to np->n_size potentially changing if nfs_getcacheblk()
    blocks in nfs_write().

    Second, under -current we must supply the proper bufsize when obtaining
    buffers that straddle the EOF, but due to the fact that np->n_size can
    change out from under us it is possible that we may specify the wrong
    buffer size and wind up truncating dirty data written by another
    process.

    Both problems are solved by implementing nfs_rslock(), which allows us
    to lock around sensitive buffer cache operations such as those that
    occur when appending to a file.

    It is believed that this race is responsible for causing dirtyoff/dirtyend
    and (in stable) validoff/validend to exceed the buffer size.  Therefore
    we have now added a warning printf for the dirtyoff/end case in current.

    However, we have introduced a new problem which we need to fix at some
    point, and that is that soft or intr NFS mounts may become
    uninterruptable from the point of view of process A which is stuck waiting
    on rslock while process B is stuck doing the rpc.  To unstick process A,
    process B would have to be interrupted first.

Reviewed by:	Alfred Perlstein <bright@wintelcom.net>
1999-12-14 19:07:54 +00:00
Andrew Gallatin
4365788773 Stop calling everthing an XP1000. 1999-12-14 17:50:00 +00:00
Andrew Gallatin
7c79b9ff14 Improve the mapping between the hardware PCI bus numbering on multi-hose
tsunami systems and the PCI bus-numbering system of FreeBSD.  Eg, the former
allows for 2 PCI bus 2's (one each on hoses 0 and 1) while the latter
needs to give each PCI bus a unique monotonically increasing number.

It has been fairly well tested and correctly maps machines with a ppb on
hose 1 as well as machines with ppbs on both hoses.

DS10s remain untested, as I do not have a pci card with a ppb which will
pass POST in a tsunami.

This is a house of cards.
1999-12-14 17:35:08 +00:00
Jonathan Lemon
c0f7fd5575 Use SEQ_* macros for comparing sequence space numbers.
Reviewed by:	truckman
1999-12-14 15:43:56 +00:00
Søren Schmidt
dbdfe960cb Have another go at the VIA support, this time use the PCI ID form the
main component in the southbridge chip to determine which VIA chip
we are dealing with.

Try to enable DMA on generic controllers that say they has the
capability, instead of relying on the BIOS to have set it up.
1999-12-14 10:25:28 +00:00
Seigo Tanimura
4bfc6d7e79 Fix the command to launch DMA for 16bit samples.
Tested by:	Steve Reid <sreid@sea-to-sky.net>
1999-12-14 06:34:48 +00:00
Brian Feldman
6c54410230 Bug fix:
The variables "m_mclalloc_wid" and "m_mballoc_wid" were not in the
proper place.  They should have been in uipc_mbuf.c and have been global,
not in mbuf.h and local per each file that uses mbuf.h.

Sorta bug fix:
   In mbuf.h, the definitions of various things for KERNEL and not
KERNEL cases were very screwy.   This fixes all of that which I could
find.
1999-12-14 02:23:14 +00:00
Bill Paul
91cc2adb2e Fix some problems reported by Mike Pritchard:
- Add a flag DC_TX_INTR_ALWAYS which causes the transmit code to
  request a TX done interrupt for every packet. The PNIC seems to need
  this to insure that the sent TX buffers get reaped in a timely fashion.

- Try to unreset the SIA as soon as possible after resetting the whole
  chip.

- Change dcphy to support either 10/100 or 10Mbps only NICs. The
  built-in 21143 ethernet in Compaq Presario machines is 10Mbps only
  and it doesn't work right if we try to advertise 100Mbps modes during
  autoneg. When restricted to only 10mbps modes, it works fine.

  Note that for now, I detect this condition by checking the PCI
  subsystem ID on this NIC (which has a Compaq vendor/device ID).
  Yes, I know that's what the SROM is supposed to be for. I'm deliberately
  ignoring the SROM wherever possible. Sue me.

The latter two fixes allow if_dc to work correctly with the built-in
ethernet on certain Compaq Presario boxes. There are liable to be quite
a few people using these as their home systems who might want to try
FreeBSD; may as well be nice to them.

Now if anybody out there has an Alpha miata with 10Mbps ethernet and
can show me the output from pciconf -l on their system, I'd be grateful.
1999-12-13 21:45:13 +00:00
Matt Jacob
cda9006f07 minor comment update 1999-12-13 19:40:00 +00:00
Matthew Dillon
1e64c256dc Add a readahead heuristic to the NFS server side code. While the server
cannot unilaterally pass data to a client it can reduce the physical
    disk transaction overhead by reading larger blocks.  This results in
    better pipelining of requests/responses over the network and an almost
    100% increase in cpu efficiency on the server.  On a 100BaseTX network
    NFS read performance increases from 8.5 MBytes/sec to 10 MB/sec (maxed
    out), and cpu efficiency increases from 72% idle to 80% idle on the server.

Reviewed by:	Alfred Perlstein <bright@wintelcom.net>
1999-12-13 17:34:45 +00:00
Matthew Dillon
c9940d3b84 PR: kern/15222
Submitted by:	Ian Dowse <iedowse@maths.tcd.ie>
1999-12-13 17:07:03 +00:00
Boris Popov
5e04586968 Add module for if_ef driver and make it compile. 1999-12-13 16:42:17 +00:00
Boris Popov
4f93599fba Bring up an if_ef driver which allows support for four ethernet
frame types. Currently it supports only IPX protocol and doesn't
affect existing functionality when not loaded.

Reviewed by:	Ollivier Robert <roberto@keltia.freenix.fr>
1999-12-13 16:24:22 +00:00
Boris Popov
8b7805e44e Allow ifunit() routine to understand names like ed0f2. Also
fix a bug caused by using bcmp() instead of strcmp().

Reviewed by:	Garrett Wollman <wollman@khavrinen.lcs.mit.edu>
1999-12-13 15:57:11 +00:00
KATO Takenori
012ec02313 Merge from sys/i386/conf/files.i386 rev 1.289.
Submitted by:	yokota
1999-12-13 14:57:51 +00:00
KATO Takenori
7a32bd78a7 Merge from sys/dev/kbd/kbd.c rev 1.13.
Submitted by:	yokota
1999-12-13 13:19:38 +00:00
KATO Takenori
a6b0e95eef Merge from sys/dev/syscons/syscons.c rev 1.330. 1999-12-13 13:17:24 +00:00
KATO Takenori
33dc682a2c Merge from sys/i386/conf/Makefile.i386 rev 1.166. 1999-12-13 13:15:32 +00:00
Kazutaka YOKOTA
83c5d22d61 - Pull in kbd.c when sc or vt is included in the kernel, even if
no keyboard driver is defined in the kernel config file.
1999-12-13 13:01:00 +00:00
Kazutaka YOKOTA
7a4803c7f6 - Add a module event function to the ukbd driver and make the ukbd KLD
module work.
- Delete unnecessary #include.
1999-12-13 10:36:36 +00:00
Søren Schmidt
54ecff8b84 Add DMA support for the SiS 5591 and old PIIX chipsets.
Add a missing DELAY(1) in ata_wait.

Change the info from ad_version, so the ATA version from the disk can
be used to quantify the DAM modes valid for this drive, ie be more
selective with turning DMA on on older disks that should not support it..

Fix the probe for BIOS enabled DMA in the generic case, master/slave
was reversed in the test.

Check the return for ata_command in all cases, and print warnings if
it fails.

Call ata_dmainit with all dmamodes off when falling back to PIO mode,
that should take care of both the Promise & HPT366 controllers not
being able to handle the fallback...

Cleanup the printf's in the drivers, use the prober device name (if
possible) instead of ataN-master/slave.
1999-12-13 10:19:39 +00:00
Kazutaka YOKOTA
579958932a - Remember the keyboard repeat delay and rate.
- Add a new ioctl, KDGETREPEAT, to retrieve the keyboard repeat rate.
- Delete unnecessary #include.
1999-12-13 09:31:43 +00:00
Martin Cracauer
e14140f43e Add a run of Linux ldconfig. 1999-12-13 08:38:22 +00:00
Matthew Dillon
4682c8eac9 Fix a timeout deadlock that can occur when the process holding the
receive lock hasn't yet managed to send its own request.

PR:		kern/15055
Submitted by:	Ian Dowse iedowse@maths.tcd.ie
1999-12-13 04:24:55 +00:00
Cameron Grant
5f070b6772 more dma underrun fixes, using a per-channel 2nd buffer
Submitted by:	tanimura
1999-12-13 03:29:09 +00:00
Tor Egge
f52523701c Fix two problems with pipe_write():
1. Data written beyond end of pipe buffer, causing kernel memory corruption.

    - Check that space is still valid after obtaining the pipe lock.

    - Defer the calculation of transfer size until the pipe
      lock has been obtained.

    - Update the pipe buffer pointers while holding the pipe lock.

 2. Writes of size <= PIPE_BUF not always atomic.

    - Allow an internal write to span two contiguous segments,
      so writes of size <= PIPE_BUF can be kept atomic
      when wrapping around from the end to the start of the
      pipe buffer.

PR:		15235
Reviewed by:	Matt Dillon <dillon@FreeBSD.org>
1999-12-13 02:55:47 +00:00
Alfred Perlstein
1e12157c61 explain that ioflags can be used to give read-ahead hints to the underlying
filesystem.
1999-12-13 02:28:53 +00:00
Jordan K. Hubbard
c0230c1b3d The current code incorrectly assumes that all vlans
are configured, and/or associated with a parent device.  If you
receive a frame for a VLAN that's not in the list, you walk off
the end of the list.  Boom.

Submitted by:	C. Stephen Gunn <csg@waterspout.com>
PR:		15291
1999-12-13 01:57:00 +00:00
Jordan K. Hubbard
ae290324a4 sys/net/if_vlan.c fails to maintain the IFF_RUNNING flag on the
vlan interfaces it manages.  This prevents the interface from
actually sending or receiving data.

Submitted by:	C. Stephen Gunn <csg@waterspout.com>
PR:		15290
1999-12-13 01:38:14 +00:00
Yoshinobu Inoue
79ea3cf110 Always set INP_IPV4 flag for IPv4 pcb entries, because netstat needs it
to print out protocol specific pcb info.

A patch submitted by guido@gvr.org, and asmodai@wxs.nl also reported
the problem.
Thanks and sorry for your troubles.

Submitted by: guido@gvr.org
Reviewed by: shin
1999-12-13 00:39:20 +00:00
Peter Wemm
00943c9151 Argh, fix a stupid typo. :-( 1999-12-12 21:36:19 +00:00
Peter Wemm
de8708acc2 Move mlx, ncp and nwfs to the common area, they build on the Alpha and
are marked cross-platform in conf/files..
1999-12-12 21:17:08 +00:00
Peter Wemm
983b11b5c3 Zap unused CFLAGS += -DNCP 1999-12-12 21:15:51 +00:00
Peter Wemm
fc6e400716 Fix pointer problem for the Alpha 1999-12-12 21:10:53 +00:00
Peter Wemm
7a377dc1b6 Move mlx from x86-only to generic. It builds on the Alpha and is in the
common conf/files for the main kernel..
1999-12-12 21:00:42 +00:00
Peter Wemm
72c10febd0 time_t is an int on the Alpha, not long. 1999-12-12 20:59:29 +00:00
Peter Wemm
7c229969ba Move amr from x86-specific to generic. (it's in the generic conf/files
in the main kernel and builds fine on the alpha here...)
1999-12-12 20:55:49 +00:00
Peter Wemm
89aaf624ea Don't waste time creating amr.h since it (and NAMR) aren't used. 1999-12-12 20:54:53 +00:00
Peter Wemm
87280b0a70 Fix a printf format problem on the Alpha, where size_t == unsigned long,
not unsigned int as on the x86.
1999-12-12 20:53:31 +00:00
Peter Wemm
484fa03fbf Fix joy and put it back in the MI section. (yes, it works on Alpha) 1999-12-12 20:42:58 +00:00
Peter Wemm
d00177ef7e Make this kld'able (#include "joy.h" no longer required as there are no
references to NJOY any more after newbusification)
1999-12-12 20:39:35 +00:00
Peter Wemm
b4c7ee1c09 Change "atapi" (the old one) from "present but broken" to "not present". 1999-12-12 20:35:47 +00:00
Peter Wemm
b41da0980c Remove a whole bunch of "CFLAGS+= -DFSNAME" cruft. It hasn't been
needed for ages, but keeps getting cut/pasted into new Makefiles.
(Once apon a time it was used to activate mount arguments in
 <sys/mount.h>, but that was killed with extreme prejudice long ago)
1999-12-12 20:34:11 +00:00
Poul-Henning Kamp
b9fcd4a616 Look for disk devices rather than bdevs.
Approved by:	grog
1999-12-12 17:43:12 +00:00
Peter Wemm
a5aa0913bd Bring these more into line with other modules that have .h files generated
on the fly.
1999-12-12 16:47:33 +00:00
Peter Wemm
9029b6442a Use the -c and -h args of vnode_if.sh to generate only the .h file that
we use.  The .c half is statically compiled into the kernel.  It's kinda
silly to generate a .h file on the fly that has inlines to call the
.c stuff when the .c code is fixed.

Also, zap the special treatment for VFS_KLD modules.  This treatment
applies to lots of things, not just VFS's.
1999-12-12 16:45:58 +00:00
Peter Wemm
6f77b2defc Use a seperate -c and -h mode. The vnode_if.c file is compiled only into
the kernel while the vnode_if.h header is a bunch of inlines to call the
code that is in the kernel. Generating the .h file on the fly is kinda
bogus because it has to match the one compiled into the kernel.

IMHO we should have kern/vnode_if.c and sys/vnode_if.h committed in the
tree but that's another battle.
1999-12-12 16:43:05 +00:00
Peter Wemm
cfdd238335 Put on asbestos suit and put a splcam() around the 'Mounting root from..'
message to stop it splitting.  Every single scsi machine I've seen seems
to reliably collide with this and it's rather annoying.
1999-12-12 16:34:43 +00:00
Peter Wemm
016fc47da3 The sysctl mod_xx hack is no longer required now that we have totally
dynamic sysctl registration.
1999-12-12 16:30:34 +00:00