Commit Graph

107958 Commits

Author SHA1 Message Date
Bill Paul
2bb980892d Arrgh. Recently I tried using ugen(4) in an application that uses
select(2), and discovered to my horror that ugen(4)'s bulk in/out support
is horribly lobotomized. Bulk transfers are done using the synchronous
API instead of the asynchronous one. This causes the following broken
behavior to occur:

- You open the bulk in/out ugen device and get a descriptor
- You create some other descriptor (socket, other device, etc...)
- You select on both the descriptors waiting until either one has
  data ready to read
- Because of ugen's brokenness, you block in usb_bulk_transfer() inside
  ugen_do_read() instead of blocking in select()
- The non-USB descriptor becomes ready for reading, but you remain blocked
  on select()
- The USB descriptor becomes ready for reading
- Only now are you woken up so that you can ready data from either
  descriptor.

The result is select() can only wake up when there's USB data pending. If
any other descriptor becomes ready, you lose: until the USB descriptor
becomes ready, you stay asleep.

The correct approach is to use async bulk transfers, so I changed
the read code to use the async bulk transfer API. I left the write
side alone for now since it's less of an issue.

Note that the uscanner driver has the same brokenness in it.
2004-09-28 18:39:04 +00:00
John-Mark Gurney
2157b8d690 document the limit on jumbo frame size..
MFC after:	5 days
2004-09-28 18:24:19 +00:00
John-Mark Gurney
22a11c9657 fix jumbo frames as much as they can be fixed for re. We now cap the MTU
to 7422 since it appears that the 8169S can't transmit anything larger..
The 8169S can receive full jumbo frames, but we don't have an mru to let
the upper layers know this...

add fixup so that this driver should work on alignment constrained platforms
(!i386 && !amd64)

MFC after:	5 days
2004-09-28 18:22:24 +00:00
Ken Smith
fc449eb47a Add an assertion that the pcb_nsaved field of the pcb be less than
MAXWIN to the register window manipulation functions - rwindow_load()
calls rwindow_save() so this one addition should take care of both.
This should help find places that pcb_nsaved doesn't get initialized
properly.

Suggested by:	jake
2004-09-28 16:36:58 +00:00
Olivier Houchard
34be051190 Don't try to relocate the dynamic loader in reloc_non_plt(). It has already
been done before.
2004-09-28 14:43:12 +00:00
Olivier Houchard
0e030636cb Use add instead of saving the sp in a register. 2004-09-28 14:41:15 +00:00
Olivier Houchard
77ee40aac5 Calling fuword from fuword32 with bl and without returning after is really a bad
idea.
Any way I get a customized CVS template with "Pointy hat to:	cognet"
pre-filled ?
2004-09-28 14:39:26 +00:00
Olivier Houchard
022fb84224 Always invalidate the whole data cache in pmap_enter() for now.
It should not be needed.
2004-09-28 14:38:14 +00:00
Olivier Houchard
e462e1ba03 Remove dead code. 2004-09-28 14:37:39 +00:00
Doug Barton
d6ec7d8c05 Amend the named chroot update instructions by adding a stop and start
of syslogd. The rc.d/syslogd script has the logic already to create
a socket in the chroot dir, it just needs to be restarted.

Reminded by:	matusita
2004-09-28 13:44:41 +00:00
Poul-Henning Kamp
4f116178ba Remove support for accessing device nodes in UFS/FFS.
Device nodes can still be created and exported with NFS.
2004-09-28 13:30:58 +00:00
Poul-Henning Kamp
19fa21aa50 Protect the start/end counts on consumers and providers with the up/down
mutexes.

Make it possible to also protect the disk statistics (at a minor cost in
performance) by setting bit 2 of kern.geom.collectstats.
2004-09-28 11:56:37 +00:00
Doug Barton
8f1bb3891d Create a named chroot directory structure in /var/named, and use it
by default when named is enabled. Also, improve our default directory
layout by creating /var/named/etc/namedb/{master|slave} directories,
and use the former for the generated localhost* files.

Rather than using pax to copy device entries, mount devfs in the
chroot directory.

There may be some corner cases where things need to be adjusted,
but overall this structure has been well tested on a production
network, and should serve the needs of the vast majority of users.

UPDATING has instructions on how to do the conversion for those
with existing configurations.
2004-09-28 09:46:00 +00:00
Poul-Henning Kamp
c0f46dd1e4 Remove support for using NFS device nodes. 2004-09-28 08:50:01 +00:00
Pawel Jakub Dawidek
8dd5480d29 - Set maximum request size to MAXPHYS (128kB), instead of DFLPHYS (64kB).
- Set minimum request size to sectorsize, instead of 512 bytes.

Approved by:	phk (some time ago)
2004-09-28 08:34:27 +00:00
Pawel Jakub Dawidek
604fce4f60 Just use MAXPHYS as maximum I/O request size, instead of using my own
#define for this purpose.
No functional change.
2004-09-28 07:33:37 +00:00
Mark Murray
932fc0bcb3 Be consistant; make the memrange bit be part of the mem module like
i386.
2004-09-28 07:29:54 +00:00
Mark Murray
393202b77c Add the memrange bits to the loadable module.
MT5 after:	3 days
2004-09-28 07:26:00 +00:00
Warner Losh
89e3b380f9 Turns out that revision 1.52 was a bad idea. It broke the long
standing ability to list a non-existant device in /etc/ttys to keep it
from dying.  This is a documented feature of init(8):
     The init utility can also be used to keep arbitrary daemons running,
     automatically restarting them if they die.  In this case, the first field
     in the ttys(5) file must not reference the path to a configured device
     node and will be passed to the daemon as the final argument on its com-
     mand line.  This is similar to the facility offered in the AT&T System V
     UNIX /etc/inittab.

So rather than fix the man page to 'break' this feature, back out the change.

At the time this change was made, people felt that the spamage from
getty was annoying on headless consoles.  Andrew Gallatin noted:
> Most of my machines are headless without video cards and use a serial
> console.  With devfs this means that /dev/ttyv[1-N] do not exist and
> getty bitches like this:
>
> Sep 26 11:00:11 monet getty[543]: open /dev/ttyv1: No such file or directory

and we went off and applied this hack rather than fixing getty to
sleep forever when it gets an unknown device, as was Andrew's other
suggestion.  Since it breaks things, I'm off to do that instead.
2004-09-28 04:22:55 +00:00
Paul Saab
c6eadeaa66 Add ICH6 support. 2004-09-28 01:32:58 +00:00
Pawel Jakub Dawidek
e5e7825cc3 Decrease kern.geom.raid3.timeout to 4, so it is smaller than
vfs.root.mountdelay by default.
2004-09-27 22:12:14 +00:00
Pawel Jakub Dawidek
6c25233782 Deny invalid I/O requests which comes from userland here, because later
we'll get a panic.
MT5 candidate.

Reviewed by:	phk
2004-09-27 22:10:01 +00:00
Poul-Henning Kamp
87d451b95e Desupport device nodes on EXT2 filesystems. 2004-09-27 20:38:46 +00:00
Pawel Jakub Dawidek
d2fb9c62e2 Avoid race while synchronizing components. It is very hard to bump into,
but it is possible:
1. Read data from good component for synchronization.
2. Write data to the same area.
3. Write synchronization data, which are now stale.

Found by:	tegge (for gmirror)
2004-09-27 20:32:35 +00:00
Poul-Henning Kamp
52c55a26b1 Remove NFS4 vop method vector for devices: we are desupporing device nodes
on anything but DEVFS and in this case it was not even used (see below).

Put the NFS4 vop method for fifo's behind "#if 0" because it is unused.
Add a XXX comment to say that I think the unusedness is a bug.
2004-09-27 20:02:50 +00:00
Andrew Gallatin
e237071f1a Add sc_iostart to softc and unbreak the build.
This was forgotten in my previous commit to add i/o port to uninorth.c

Pointy-hat to: me
2004-09-27 19:51:58 +00:00
Poul-Henning Kamp
9f2b7bc4a8 style consistency. 2004-09-27 19:44:39 +00:00
Pawel Jakub Dawidek
829c0864cb Minor, but very important condition fix. The current one can never be true. 2004-09-27 19:32:26 +00:00
Poul-Henning Kamp
961da2716b Give cluster_write() an explicit vnode argument.
In the future a struct buf will not automatically point out a vnode for us.
2004-09-27 19:14:10 +00:00
Dag-Erling Smørgrav
bd7667733f Attempting to unset an undefined variable or function should not be
considered an error according to the Open Group Base Specification.

PR:		standards/45738
Submitted by:	Matthias Andree <matthias.andree@web.de>
MFC after:	3 days
2004-09-27 18:43:18 +00:00
Ken Smith
e400e0825a Some minor print/panic message cleanups. 2004-09-27 16:06:38 +00:00
Pawel Jakub Dawidek
cf41526bdc Decrease kern.geom.mirror.timeout to 4, so it is smaller than
vfs.root.mountdelay by default.
2004-09-27 13:47:37 +00:00
Ken Smith
705ea0213d Initialize the count of saved register windows to 0 in the pcb created
for the new thread.  The rest of the fields in the pcb wind up being
written to before they're read as a normal part of the pcb usage but
this field may be read upon return to userland, having it be uninitialized
garbage is bad.

Submitted by:	Andrew Belashov (bel at orel dot ru)
Reviewed by:	jake
MFC after:	3 days
2004-09-27 12:34:47 +00:00
Poul-Henning Kamp
eb7b5f46a3 Stop on write error. 2004-09-27 08:24:05 +00:00
Doug Barton
2a61444749 1. Add much finer granularity to the NO_BIND knobs with the addition of:
NO_BIND_DNSSEC, NO_BIND_ETC, NO_BIND_NAMED, and NO_BIND_UTILS.

2. Make creation of directories in /usr/include that are only needed
in the WITH_BIND_LIBS case conditional.

Reviewed by:	ru, des
2004-09-27 08:23:43 +00:00
Doug Barton
8b7a7341b3 Remove the directories that are now only installed when the user
defines WITH_BIND_LIBS.
2004-09-27 08:18:43 +00:00
Doug Barton
795f8333f2 Hook the BIND.* files up to the build. 2004-09-27 08:17:51 +00:00
Doug Barton
536fbda965 Seperate out the optional parts of the include tree that are
only built and installed when the user defines WITH_BIND_LIBS.
2004-09-27 08:16:29 +00:00
Doug Barton
9ab99fee24 Add a file spec to create a chroot directory structure for
a BIND name server.

This file is not being used yet, but will be soon.
2004-09-27 08:15:34 +00:00
Doug Barton
11a3397fec This file is about to get some optional bits, so line up the parts of
the FILES variable one line at a time.

This should be a whitespace change only.

Reviewed by:	ru
2004-09-27 07:00:44 +00:00
Poul-Henning Kamp
a5993c332a Used cached cdevsw pointer. 2004-09-27 06:34:30 +00:00
Poul-Henning Kamp
743cd76a73 Add cdevsw->d_purge() support.
This device method shall wake up any threads sleeping in the device driver
and make the depart the drivers code for good.
2004-09-27 06:18:25 +00:00
Julian Elischer
c7f4c39534 Don't use an uninitialised variable when reading from a ktr alq file. 2004-09-27 05:56:57 +00:00
Alan Cox
c97680825c Add cross references to vm_map_entry_resize_free.9.
Submitted by: Mark W. Krentel
2004-09-27 05:44:28 +00:00
Alan Cox
af3db1449f Document the O(log n) algorithm for finding free space.
Submitted by: Mark W. Krentel
2004-09-27 04:22:41 +00:00
Alan Cox
0a7c173775 Document the flags field.
Submitted by: Mark W. Krentel
2004-09-27 03:59:36 +00:00
Doug Barton
fd01cb6244 Previously I thought I was seeing a failure to install the .5 man pages
with this configuration, but Ruslan tells me that I was probably mistaken,
and on retest the .5 pages are being installed just fine.

Therefore reverse the MAN[58] change in favor of the more modern syntax.

Submitted by:	ru
2004-09-27 03:55:03 +00:00
Dag-Erling Smørgrav
456f759554 Document the upgrade procedure. 2004-09-27 00:25:56 +00:00
Pawel Jakub Dawidek
0217ba9893 Forgot to commit addition of ds_resync field. 2004-09-26 20:42:35 +00:00
Pawel Jakub Dawidek
e8adbe4499 Avoid race while synchronizing components. It is very hard to bump into,
but it is possible:
1. Read data from good component for synchronization.
2. Write data to the same area.
3. Write synchronization data, which are now stale.

Found by:	tegge
2004-09-26 20:41:07 +00:00