Commit graph

38076 commits

Author SHA1 Message Date
Bill Paul 497760a16a Fix bug that can cause transmit corruption. There are actually two 'rings'
in the transmit code: the TX descriptor ring, and a 'shadow' ring of mbuf
pointers, one for each TX descriptor. When transmitting a packet that
consists of several fragments in an mbuf chain, we link each fragment
to a descriptor in the TX ring, but we only save a pointer to the mbuf
chain. This pointer is saved in the shadow ring entry which corresponds
to the first fragment in the packet. Later, ti_txeof() can release the
whole chain with a single m_freem() call. (We need the second ring to
keep track of the virtual addresses of the mbuf chains.)

The problem with this is that the Tigon isn't actually through with the
mbuf chain until it reaches the last fragment (which has the TI_BDFLAG_END
bit set), however the current scheme releases the mbuf chain as soon as
the first fragment is consumed. This is wrong, since the mbufs can then
be yanked out from under the Tigon and modified before the other fragments
can be transmitted.

The fix is to make a one line change to ti_encap() so that it saves the
mbuf chain pointer in the shadow ring entry that corresponds to the last
fragment in TX ring instead of the first. This prevents the mbufs from
being released until the last fragment is transmitted.

Painstakingly diagnosed and fixed by: Robert Picco <picco@mail.wevinc.com>
Brought to my attention by: dg
1999-05-24 14:56:55 +00:00
Luigi Rizzo e142fadecb close pr 10889:
+ add a missing call to dn_rule_delete() when flushing firewall
  rules, thus preventing possible panics due to dangling pointers
  (this was already done for single rule deletes).
+ improve "usage" output in ipfw(8)
+ add a few checks to ipfw pipe parameters and make it a bit more
  tolerant of common mistakes (such as specifying kbit instead of Kbit)

PR: kern/10889
Submitted by: Ruslan Ermilov
1999-05-24 10:01:22 +00:00
Brian Somers 26e64ed9d4 Don't warn about ``!'' lines being unindented commands in ppp.conf. 1999-05-24 09:04:35 +00:00
John Birrell 994d9b67a5 Added a missing comma to the static condition variable initialisation
definition.

Submitted by: David Leonard <David.Leonard@csee.uq.edu.au>, an OpenBSD guy.
1999-05-24 07:22:55 +00:00
Peter Wemm 578de0426e Fix a [start,end] vs [start,count] botch that corrupted the resource
manager and prevented IOPort allocation beyond the first EISA slot from
working.  subr_rman.c should have trapped this on the way into the system
rather than tripping over the wreckage.

Head banged into wall repeatedly by:  "Matthew N. Dodd" <winter@jurai.net>
1999-05-24 03:08:46 +00:00
John Birrell 5095f1917a Remove the static declaration from the line[] variable to allow
openpty() to be called from a threaded application.
1999-05-24 01:15:28 +00:00
John Birrell 8fb7da0099 Remove the mfs stuff now that mfs_init() does the MFS_ROOT initialisation. 1999-05-24 00:54:17 +00:00
John Birrell 350185153d Back out my previous change (phk didn't like it) in favour of setting
rootdev in the mfs initialisation code iff MFS_ROOT (which Bruce doesn't
like). Damned if I do - damned if I don't.
1999-05-24 00:37:26 +00:00
Jean-Marc Zucconi 8878be20f8 Fix typo in dump reporting
PR:		bin/10573
Submitted by:	Christian Weisgerber <naddy@mips.rhein-neckar.de>
1999-05-24 00:35:47 +00:00
John Birrell 02013ff886 Remove the test for bdevsw(dev) == NULL from bdevvp() because it fails
if there is no character device associated with the block device. In this
case that doesn't matter because bdevvp() doesn't use the character
device structure.

I can use the pointy bit of the axe too.
1999-05-24 00:34:10 +00:00
John Birrell 4d562a18fc - Make setroot() conditional on FFS etc, to avoid a compiler warning
on systems with no FFS.
- Remove all references to mfs from cpu_rootconf(). mfs_init is
  called prior to cpu_rootconf(), so it can set mountrootfsname to mfs
  and (more imporantly) set rootdev using the (bogus in Bruce's opinion)
  special major number of 255.
1999-05-24 00:30:49 +00:00
John Birrell ed3a2fb7b3 - Back out Luoqi's cdevsw stuff. It panics on my system and is not required.
- Fix an error message.
- Do the MFS_ROOT setting of mountrootfsname in mfs_init() instead of
  cpu_rootconf().
- Set rootdev in mfs_init instead of later in mfs_mount() iff MFS_ROOT.
1999-05-24 00:27:12 +00:00
Warner Losh b790f1b6de getopt(3) returns -1 not EOF. 1999-05-23 23:24:26 +00:00
Warner Losh c8b4bd56c2 Getopt(3) returns -1 not EOF. 1999-05-23 23:18:38 +00:00
Warner Losh 0e49c54852 Getopt(3) returns -1, not EOF. 1999-05-23 23:17:28 +00:00
Roger Hardiman ab27fe4452 Added rgb_vbi_prog() to capture VBI data and video at the
same time. To capture VBI data, /dev/vbi must be opened
before starting video capture.
A partly on code from Hiroki Mori <mori@infocity.co.jp>
1999-05-23 21:40:51 +00:00
Brian Somers 3da2229c1c Use RELENG_3 as an example, not RELENG_2_2. 1999-05-23 20:01:20 +00:00
Justin T. Gibbs 8281556234 Rely on the statistics in XPT_GDEV_STATS instead of the versions still
retained in XPT_GDEV_TYPE for binary compatibility.  Mark the legacy
structure values for removal when we bump the major CAM revision.
1999-05-23 18:57:29 +00:00
Justin T. Gibbs 3caf668db7 Don't reference our SCB until we have validated that the firmware has
returned an SCB that is in range.
1999-05-23 18:55:58 +00:00
Justin T. Gibbs cf7d3071b9 Poll for interrupts in bt_cmd in case they are masked. A completing
mailbox command will block the completion of an immediate command,
so we must service them for our command to succeed.

PR: 11799
1999-05-23 18:54:34 +00:00
David E. O'Brien c2fc637349 Get case right in "COMPAT3X".
Submitted by:	Kevin Street <street@iname.com>
1999-05-23 17:57:23 +00:00
Jean-Marc Zucconi ef9866be68 xargs was spliting the input in a very different way from everyone else,
and was also a bit inconsistent: leading blanks, or any double blanks
generated empty arguments, but a trailing blank did not.

PR:		bin/2630, bin/10914
Submitted by:	Arne Henrik Juul <arnej@imf.unit.no>
1999-05-23 15:58:22 +00:00
Brian Somers 6961f3da13 brucify
Mentioned by: sprice@hiwaay.net
1999-05-23 13:52:05 +00:00
Doug Rabson 485de8b5d2 Use the correct width integer on both i386 and alpha.
Reviewed by: Steve Price <sprice@hiwaay.net>
1999-05-23 13:43:04 +00:00
Peter Wemm a0ca55077a Don't reference non-existant ATAPI option..
PR:		11814
Submitted by:	Sheldon Hearn <sheldonh@uunet.co.za>
1999-05-23 11:11:31 +00:00
John Birrell eb9dc34d8b Fix a problem with static initialisation of mutexes and condition
variables.

Submitted by: Dan Eischen <eischen@vigrid.com>
1999-05-23 10:55:33 +00:00
John Birrell d47066829a Make MFS_ROOT work again. MFS_ROOT means that rootdev is not set.
Broken by: phk
Problem ignored by: phk
1999-05-23 10:51:33 +00:00
David E. O'Brien ce31eb2262 Install g2c.h header incase others want to call libg2c from C.
Submitted by:	Steve
1999-05-23 10:02:46 +00:00
John Birrell 21e58b66a1 Add a missing backslash from the last commit. (Broke installworld) 1999-05-23 02:11:41 +00:00
Jean-Marc Zucconi 7e74cac42e Construct the profile file name from the name of the executable. A program
compiled with -pg and run will generate a file <executable-filename>.gmon,
not gmon.out.

PR:		bin/8426
1999-05-23 00:37:56 +00:00
Jean-Marc Zucconi fce8f73e4d Initialize exit code so that the program exits with code 0 on success.
PR:		bin/10904
Submitted by:	Ben Smithurst <ben@scientia.demon.co.uk>
1999-05-22 22:56:26 +00:00
Justin T. Gibbs fdd1fe20a4 Add the amd driver. 1999-05-22 22:10:07 +00:00
Justin T. Gibbs ebada55cce aic7xxx.c:
Honor the 'bus reset at startup' option now that the XPT properly
	handles transfer negotiation in this scenario.

	Honor the sync rate settings on Ultra2 controllers.  We would
	always negotiate at the fastest speed.  Oops.

aic7xxx.h:
	Whitespace.

aic7xxx.seq:
	Fix a minor nit that would cause the controller to miss the update
	of the negotiation required bitmask causing the negotiation to
	be delayed by a command.
1999-05-22 22:04:11 +00:00
Justin T. Gibbs 516871c613 Add a default async handler funstion to cam_periph.c to remove duplicated
code in all initiator type peripheral drivers.

scsi_target.c:
	Release ATIO structures that wind up in the 'unkown command queue'
	for consumption by our userland counterpart, back to the controller
	when the exception for that command is cleared.
1999-05-22 22:00:24 +00:00
Justin T. Gibbs 87cfaf0e1f Add the XPT_PATH_STATS and XPT_GDEV_STATS function codes. These ccb
types allow the reporting of error counts and other statistics.  Currently
we provide information on the last BDR or bus reset as well as active
transaction inforamtion, but this will be expanded as more information is
added to aid in error recovery.

Use the 'last reset' information to better handle bus settle delays.
Peripheral drivers now control whether a bus settle delay occurs and
for how long.  This allows target mode peripheral drivers to avoid
having their device queue frozen by the XPT for what shoudl only be
initiator type behavior.

Don't perform a bus reset if the target device is incapable of performing
transfer negotiation (e.g. Fiber Channel).

If we don't perform a bus reset but the controller is capable of transfer
negotiations, force negotiations on the first transaction to go to the
device.  This ensures that we aren't tripped up by a left over negotiation
from the prom, BIOS, loader, etc.

Add a default async handler funstion to cam_periph.c to remove duplicated
code in all initiator type peripheral drivers.

Allow mapping of XPT_CONT_TARGET_IO ccbs from userland.  They are
itentical to XPT_SCSI_IO ccbs as far as data mapping is concerned.
1999-05-22 21:58:47 +00:00
Justin T. Gibbs 1723e869c1 First cut at a driver for the amd53c974 PCI SCSI host adapter. This
driver lacks error recovery and still needs more testing, but it's
about time I got it under revision control.

Submitted by:	 Tekram Inc.
Bus Space/DMA and cleanup: gibbs
1999-05-22 21:50:40 +00:00
Dmitrij Tejblum 9d3a442583 Don't call calcru() on a swapped-out process. calcru() access p_stats, which
is in U-area.
1999-05-22 20:10:31 +00:00
Tim Vanderhoek 53ee42d318 Use BINOWN and BINGRP (some people do change these...) 1999-05-22 19:38:04 +00:00
Doug Rabson accaf17a2a Port pnpinfo to alpha. 1999-05-22 17:35:48 +00:00
Doug Rabson a604540eab Cope with non page-aligned arguments to ioperm. 1999-05-22 17:35:04 +00:00
David E. O'Brien 4b139d33a7 I seem to be having some CVS problems... I don't know why this wasn't
commited with the Makefile fixes.  CVS/Entries clearly show it being added...
1999-05-22 16:21:47 +00:00
Bill Paul 33b3ee3898 - Fix up some comments in if_wi.c (no code changes)
- Mention that the 6Mbps turbo adapters are supported in HARDWARE.TXT
  and RELNOTES.TXT and the wi.4 man page
- Mention turbo adapters in the wicontrol.8 man page and provide a
  complete table of available transmit speed settings
1999-05-22 16:12:54 +00:00
Doug Rabson 6f50cfb43a Use the resource apis to manipulate resources. 1999-05-22 15:47:34 +00:00
Doug Rabson f78030e22d Don't use BUS_WRITE_IVAR to manipulate resources. 1999-05-22 15:45:47 +00:00
Doug Rabson a3be63b3ce * Factor out the common code between the isa bus drivers for i386 and alpha.
* Re-work the resource allocation code to use helper functions in subr_bus.c.
* Add simple isa interface for manipulating the resource ranges which can be
  allocated and remove the code from isa_write_ivar() which was previously
  used for this purpose.
1999-05-22 15:18:28 +00:00
Doug Rabson 7e082b48a2 Add some helper functions to make it easier to write a driver for a bus
which needs to manage resources for its children.
1999-05-22 14:57:15 +00:00
Robert Nordier 32ea10b4fc Fix a reference to the mysterious Mike Smisth. 1999-05-22 13:18:28 +00:00
Robert Nordier e5da9b6ba6 Include a table of disk error codes and a note about the cylinder >
1023 issue.
1999-05-22 12:55:16 +00:00
Peter Wemm 13b758eb46 Add seatbelt like in previous function.. 1999-05-22 09:52:21 +00:00
Peter Wemm 2b5be3fad4 Recover from removing the last (unshared) interrupt handler.
PR:		11806
Submitted by:	Assar Westerlund <assar@sics.se>
1999-05-22 09:39:31 +00:00