106839 Commits

Author SHA1 Message Date
truckman
54d23a34f6 Don't attempt to trigger the syncer thread final sync code in the
shutdown_pre_sync state if the RB_NOSYNC flag is set.  This is the
likely cause of hangs after a system panic that are keeping crash
dumps from being done.

This is a MFC candidate for RELENG_5.

MFC after:	3 days
2004-08-20 19:21:47 +00:00
sos
61ba3ee1cb Correct the args to busdma, mostly cosmetic. 2004-08-20 19:05:22 +00:00
jhb
fc631187fd Remove some dead code under a straggling APIC_IO #ifdef that I missed
back before 5.2.
2004-08-20 17:24:52 +00:00
njl
e1d378a02c Use the new start for the offset, not the old end. 2004-08-20 17:04:49 +00:00
pjd
2f1906caa2 Add description of raidtest tool. 2004-08-20 16:56:43 +00:00
njl
45ab45f5d1 Correctly handle BIOS resources that are duplicated (!). There are many
systems that have overlapping regions specified in their sysresource
objects.  This patch fixes ATA DMA and acpi_timer allocation for such
sysctems.  It should eventually be moved to resource_list_add() if it is
a valid generalized approach.  The minimal approach for 5.3 is:

"Loop through all current resources to see if the new one overlaps
any existing ones.  If so, the old one always takes precedence and
the new one is adjusted (or rejected).  We check for three cases:

1. Tail of new resource overlaps head of old resource:  truncate the
   new resource so it is contiguous with the start of the old.
2. New resource wholly contained within the old resource:  error.
3. Head of new resource overlaps tail of old resource:  truncate the
   new resource so it is contiguous, following the old."

Tested by:	Radek Kozlowski <radek_at_raadradd.com>
Discussed with:	imp
MFC after:	4 days
2004-08-20 16:52:44 +00:00
njl
15ee0f253b Remove a check that is too strict. With BIOSen that specify an IO/ctl port
of 0x3f2-0x3f5,0x3f7 the ports are not 7 bytes apart.  This should fix
floppy probing on such systems.  (We handle the case of adjusting for
a start of 0x3f2 -> 0x3f0 separately, although that code should still be
checked if there are still floppy problems for others.)

Tested by:	Sarunas Vancevicius <vsarunas_at_eircom.net>
MFC after:	3 days
2004-08-20 16:34:30 +00:00
rwatson
5c80f32b93 Back out uipc_socket.c:1.208, as it incorrectly assumes that all
sockets are connection-oriented for the purposes of kqueue
registration.  Since UDP sockets aren't connection-oriented, this
appeared to break a great many things, such as RPC-based
applications and services (i.e., NFS).  Since jmg isn't around I'm
backing this out before too many more feet are shot, but intend to
investigate the right solution with him once he's available.

Apologies to:	jmg
Discussed with:	imp, scottl
2004-08-20 16:24:23 +00:00
phk
7b98775375 Remove unused file. 2004-08-20 15:15:48 +00:00
phk
91de1b896d Rewrite of the floppy driver to make it MPsafe & GEOM friendly:
Centralize the fdctl_wr() function by adding the offset in
	the resource to the softc structure.

	Bugfix: Read the drive-change signal from the correct place:
	same place as the ctl register.

	Remove the cdevsw{} related code and implement a GEOM class.

	Ditch the state-engine and park a thread on each controller
	to service the queue.

	Make the interrupt FAST & MPSAFE since it is just a simple
	wakeup(9) call.

	Rely on a per controller mutex to protect the bioqueues.
	Grab GEOMs topology lock when we have to and Giant when
	ISADMA needs it.  Since all access to the hardware is
	isolated in the per controller thread, the rest of the
	driver is lock & Giant free.

	Create a per-drive queue where requests are parked while
	the motor spins up.  When the motor is running the requests
	are purged to the per controller queue.  This allows
	requests to other drives to be serviced during spin-up.

	Only setup the motor-off timeout when we finish the last
	request on the queue and cancel it when a new request
	arrives.  This fixes the bug in the old code where the motor
	turned off while we were still retrying a request.

	Make the "drive-change" work reliably.  Probe the drive on
	first opens.  Probe with a recal and a seek to cyl=1 to
	reset the drive change line and check again to see if we
	have a media.

	When we see the media disappear we destroy the geom provider,
	create a new one, and flag that autodetection should happen
	next time we see a media (unless a specific format is configured).

	Add sysctl tunables for a lot of drive related parameters.
	If you spend a lot of time waiting for floppies you can
	grab the i82078 pdf from Intels web-page and try tuning
	these.

	Add sysctl debug.fdc.debugflags which will enable various
	kinds of debugging printfs.

	Add central definitions of our well known floppy formats.

	Simplify datastructures for autoselection of format and
	call the code at the right times.

	Bugfix: Remove at least one piece of code which would have
	made 2.88M floppies not work.

	Use implied seeks on enhanced controllers.

	Use multisector transfers on all controllers.  Increase
	ISADMA bounce buffers accordingly.

	Fall back to single sector when retrying.  Reset retry count
	on every successful transaction.

	Sort functions in a more sensible order and generally tidy
	up a fair bit here and there.

	Assorted related fixes and adjustments in userland utilities.

WORKAROUNDS:
	Do allow r/w opens of r/o media but refuse actual write
	operations.  This is necessary until the p4::phk_bufwork
	branch gets integrated (This problem relates to remounting
	not reopening devices, see sys/*/*/${fs}_vfsops.c for details).

	Keep PC98's private copy of the old floppy driver compiling
	and presumably working (see below).

TODO (planned)

	Move probing of drives until after interrupts/timeouts work
	(like for ATA/SCSI drives).

TODO (unplanned)

	This driver should be made to work on PC98 as well.

	Test on YE-DATA PCMCIA floppy drive.

	Fix 2.88M media.

This is a MT5 candidate (depends on the bioq_takefirst() addition).
2004-08-20 15:14:25 +00:00
des
ca124b900b Immortalize the words of a -current reader. 2004-08-20 13:39:28 +00:00
pjd
bd124ccfb5 - fflush() standard output before fork()ing.
- Remove redundant 'break'.
2004-08-20 12:49:09 +00:00
pjd
7ee655e7b6 Add the raidtest tool, which can be used for performance tests of storage devices.
It uses random offsets, random requests size and random operation type (READ or
WRITE). It also allows to run many processes to send I/O requests in parallel.
2004-08-20 12:02:34 +00:00
lesi
8d09b998b6 Add my birthday.
Approved by:	anholt (mentor)
2004-08-20 12:01:19 +00:00
des
573364fb62 Remove a couple of warnings and tweak an error message. 2004-08-20 10:23:22 +00:00
des
a05183855a Copy open_locked() from tinderbox.pl and use it to optionally acquire a
lock file upon startup.  If this fails, tbmaster will simply terminate.
2004-08-20 08:10:30 +00:00
jmg
3dc1409438 document that the sk driver now supports the Belkin F5D5005 gige card. 2004-08-20 06:27:58 +00:00
jmg
76c33d7c99 fix LOR's in sk. Original patch from dwhite. This moves the memory
allocation earlier on in sk_attach so we don't have to lock until a bit
later.

PR:		69752
2004-08-20 06:22:04 +00:00
sos
3e33988307 DONT PANIC
Only call dmainit() if there is a valid busmaster resource.
2004-08-20 06:19:25 +00:00
scottl
30583f7adf Revert the previous change. It works great for 4BSD but causes major
problems for ULE.  The reason is quite unknown and worrisome.
2004-08-20 05:58:38 +00:00
trhodes
83fb3b8169 Replace the ERRORS section with a DIAGNOSTICS section.
Requested by:	ru
2004-08-20 05:25:11 +00:00
scottl
b336a56514 In maybe_preempt(), ignore threads that are in an inconsistent state. This
is an effective band-aid for at least some of the scheduler corruption seen
recently.  The real fix will involve protecting threads while they are
inconsistent, and will come later.

Submitted by: julian
2004-08-20 05:18:50 +00:00
jmg
c394cda927 put function's name at begining of column... 2004-08-20 05:09:31 +00:00
trhodes
0d6e4617a6 Replace the ERRORS section with a DIAGNOSTICS section.
Requested by:	ru
2004-08-20 05:07:02 +00:00
jmg
8eb64c26ee add pci id for Belkin F5D5005 Gigabit ethernet card. 2004-08-20 05:06:10 +00:00
trhodes
b002cd4ada Fix a few style nits.
Noticed by:	Mr. mdoc(7) himself, ru
2004-08-20 04:52:00 +00:00
jmg
b0492852c8 make sure that the socket is either accepting connections or is connected
when attaching a knote to it...  otherwise return EINVAL...

Pointed out by:	benno
2004-08-20 04:15:30 +00:00
julian
fe9f220a60 Align netgraph message fields ready for 64-bit (and 128 bit :-) machines.
requires a recompile of netgraph users.
Also change the size of a field in the bluetooth code
that was waiting for the next change that needed recompiles so
it could piggyback its way in.

Submitted by:	jdp, maksim
MFC after:	2 days
2004-08-20 01:24:23 +00:00
andre
80ff6433dd Fix a stupid typo which prevented an ipfw KLD unload from successfully cleaning
up its remains.  Do not terminate 'if' lines with ';'.

Spotted by:	claudio@OpenBSD.ORG (sitting 3m from my desk)
Pointy hat to:	andre
2004-08-20 00:36:55 +00:00
davidxu
94265926ab build libthr on amd64. 2004-08-19 23:51:42 +00:00
davidxu
1d227ebfe2 Adjust code to support AMD64, on AMD64, thread needs to set fsbase by
itself before it can execute any other code, so new thread should be
created with all signals are masked until after fsbase is set.
2004-08-19 23:49:04 +00:00
davidxu
be1d6f4eb1 Add AMD64 support code. 2004-08-19 23:41:12 +00:00
andre
5947fa055f When unloading ipfw module use callout_drain() to make absolutely sure that
all callouts are stopped and finished.  Move it before IPFW_LOCK() to avoid
deadlocking when draining callouts.
2004-08-19 23:31:40 +00:00
simon
754abea798 - Remove note about device listings going away.
- Add a note about possibility for duplicate listing of devices.
- Auto generate device listings for the following drivers: ncr, sym,
  umodem, and uscanner

MFC after:	3 days
2004-08-19 22:03:20 +00:00
simon
18e6bc7e91 Add a HARDWARE section which lists supported devices based on the
Hardware Notes.

MFC after:	3 days
2004-08-19 21:37:32 +00:00
simon
e33c8ea9bb Add a HARDWARE section which lists supported devices.
MFC after:	3 days
2004-08-19 21:34:31 +00:00
simon
ac35ab6a2f Add a HARDWARE section which lists supported devices.
MFC after:	3 days
2004-08-19 21:24:45 +00:00
obrien
311d4dd9cc Unconditionally support the AMD64 GART HW. 2004-08-19 20:58:24 +00:00
simon
80499ed5b2 Move listing of DTC 3290 to aha(4).
MFC after:	3 days
2004-08-19 20:49:39 +00:00
andre
93c5d20c77 For IPv6 access pointer to tcpcb only after we have checked it is valid.
Found by:	Coverity's automated analysis (via Ted Unangst)
2004-08-19 20:16:17 +00:00
njl
7a83d1fca4 Add a newline. 2004-08-19 20:16:09 +00:00
kensmith
b9fe831ef7 Temporary bandaid to help sparc64 systems with ATA disks boot. Recent
changes to the ATA driver cause a kernel crash, no fault of the ATA
code.  Work is in progress to add the necessary feature to the sparc64
kernel and this commit will be backed out when it is complete.  This
bandaid is being put in mostly in the interests of getting the first
release snapshot done and out the door.

Tested on:	Ultra-10 exhibiting the insta-panic.
MFC:		Real Soon
2004-08-19 20:13:31 +00:00
phk
59d327838d Add bioq_takefirst().
If the bioq is empty, NULL is returned.  Otherwise the front element
is removed and returned.

This can simplify locking in many drivers from:

	lock()
	bp = bioq_first(bq);
	if (bp == NULL) {
		unlock()
		return
	}
	bioq_remove(bp, bq)
	unlock
to:
	lock()
	bp = bioq_takefirst(bq);
	unlock()
	if (bp == NULL)
		return;
2004-08-19 19:51:51 +00:00
andre
5681dff740 Fix spelling error in my last blurb.
Pointed out by:	ru
2004-08-19 19:45:28 +00:00
wilko
560757ba6f - Note that Adaptec 3940UW won't be recognised by the 164sx SRM
- Warn that 164SX is a picky customer with regards to DIMMs.
2004-08-19 19:27:33 +00:00
obrien
595902e154 86 new vendor ID's from USB.org, and 3 corrections of existing vendor ID's. 2004-08-19 19:21:14 +00:00
andre
a286477242 Put in a note about the ipfw to pfil_hooks conversion and the requirement
of having said in the kernel to be able to use ipfw.
2004-08-19 18:54:54 +00:00
njl
50a2c589ee Disable interrupts after using pmap_enter() to add the identity mapping.
Since pmap_enter() calls pmap_invalidate_page(), which needs interrupts
enabled in the SMP case, we defer the disable to right before saving the
register context.  This has been incorrect for about a year but caused no
real problems because the identity page never actually replaces a previously
mapped page and suspend/resume on SMP systems has been uncommon.

Tested by:	sos
MFC after:	3 days
2004-08-19 18:48:17 +00:00
andre
5f83f24499 Give a useful error message if someone tries to compile IPFIREWALL into the
kernel without specifying PFIL_HOOKS as well.
2004-08-19 18:38:23 +00:00
andre
a0e3d1c151 Add comment that IPFIREWALL now requires option PFIL_HOOKS. 2004-08-19 18:29:55 +00:00