Commit Graph

111187 Commits

Author SHA1 Message Date
Alan Cox
d936694f09 Consider three objects, O, BO, and BBO, where BO is O's backing object
and BBO is BO's backing object.  Now, suppose that O and BO are being
collapsed.  Furthermore, suppose that BO has been marked dead
(OBJ_DEAD) by vm_object_backing_scan() and that either
vm_object_backing_scan() has been forced to sleep due to encountering
a busy page or vm_object_collapse() has been forced to sleep due to
memory allocation in the swap pager.  If vm_object_deallocate() is
then called on BBO and BO is BBO's only shadow object,
vm_object_deallocate() will collapse BO and BBO.  In doing so, it adds
a necessary temporary reference to BO.  If this collapse also sleeps
and the prior collapse resumes first, the temporary reference will
cause vm_object_collapse to panic with the message "backing_object %p
was somehow re-referenced during collapse!"

Resolve this race by changing vm_object_deallocate() such that it
doesn't collapse BO and BBO if BO is marked dead.  Once O and BO are
collapsed, vm_object_collapse() will attempt to collapse O and BBO.
So, vm_object_deallocate() on BBO need do nothing.

Reported by: Peter Holm on 20050107
URL: http://www.holm.cc/stress/log/cons102.html

In collaboration with: tegge@
Candidate for RELENG_4 and RELENG_5
MFC after: 2 weeks
2005-01-15 21:12:47 +00:00
Scott Long
0ab6412830 Convert if_em to the new bus_dmamap_load_sg() interface. The old callback
was really just a waste of cycles, so this streamlines it considerably.
2005-01-15 20:52:15 +00:00
Scott Long
824f4edf4f Document bus_dmamap_load_mbuf_sg() 2005-01-15 20:50:52 +00:00
Scott Long
2f69affe36 Add bus_dmamap_load_mbuf_sg() to alpha. 2005-01-15 20:11:25 +00:00
Scott Long
a9e9b7e47b Fix an assignment that I missed in the last commit. 2005-01-15 20:03:59 +00:00
Scott Long
9751303e1c Add bus_dmamap_load_mbuf_sg() to powerpc. 2005-01-15 19:55:25 +00:00
Olivier Houchard
de76196323 Add support for KTR_BUSDMA. 2005-01-15 19:42:28 +00:00
Olivier Houchard
34c8913825 Add the prototype for bus_dmamap_load_mbuf_sg().
Spotted out by:	scottl
2005-01-15 19:31:08 +00:00
Scott Long
33072f4de7 Add bus_dmamap_load_mbuf_sg() to ia64 2005-01-15 19:26:17 +00:00
Olivier Houchard
5134102b9d MFi386: add bus_dmamap_load_mbuf_sg(). 2005-01-15 19:07:23 +00:00
Olivier Houchard
6728fc65cc Add the 7 seg display. 2005-01-15 18:55:40 +00:00
Olivier Houchard
4801ad2f3c Add support for the IQ31244 7 seg display.
Obtained from:	NetBSD
2005-01-15 18:55:22 +00:00
Olivier Houchard
7c1658d122 Start the license statement with /*- 2005-01-15 18:38:10 +00:00
Pawel Jakub Dawidek
39cfb23935 Fix ACLs handling for the root file system.
Without this fix, when ACLs are set via tunefs(8) on the root file system,
they are removed on boot when 'mount -a' is called, because mount(8)
called for the root file system always add MNT_UPDATE flag and MNT_UPDATE
flag isn't perfect.
Now, one cannot remove ACLs stored in superblock (configured with tunefs(8))
via 'mount -a' nor 'mount -u -o noacls <file system>', but it is still
possible to mount file system which doesn't have ACLs in superblock via
'mount -o acls <file system>' or /etc/fstab's 'acls' option.

Reported by:	Lech Lorens/pl.comp.os.bsd
Discussed with:	phk, rwatson
Reviewed by:	rwatson
MFC after:	2 weeks
2005-01-15 17:09:53 +00:00
Olivier Houchard
70861d0ddd Use device_set_desc(). 2005-01-15 16:57:00 +00:00
Olivier Houchard
d29e12242c Add the i80321 watchdog. 2005-01-15 16:56:22 +00:00
Olivier Houchard
c1729ff0d5 Add a driver for the i80321 watchdog.
Obtained from:		NetBSD
2005-01-15 16:54:35 +00:00
Joseph Koshy
bff0341efe Move the LOCKING section to before the EXAMPLES section.
Make example locking calls in the EXAMPLES section.

Reviewed by:	keramida
2005-01-15 16:01:19 +00:00
Ruslan Ermilov
1b7525eb4b If USER of HOSTNAME is set to an empty value, use the fallback value.
Submitted by:	marck
2005-01-15 13:25:41 +00:00
Pawel Jakub Dawidek
a064f065ee Fix arguments syntax.
Manual pages fixes by:	ru
MFC after:		3 days
2005-01-15 13:02:50 +00:00
Ruslan Ermilov
a0c83d5951 Fixed troff warnings. 2005-01-15 12:49:11 +00:00
Ruslan Ermilov
c2c7551561 Removed empty line. 2005-01-15 12:45:24 +00:00
Ruslan Ermilov
6a5796e734 Eliminate macro calls inside literal displays. 2005-01-15 12:28:01 +00:00
Ruslan Ermilov
62890a391d Fixed display type. 2005-01-15 12:26:29 +00:00
Ruslan Ermilov
1a471b5bef Fixed markup. 2005-01-15 12:25:47 +00:00
Ruslan Ermilov
a638ba5756 Use lists where appropriate. 2005-01-15 12:24:49 +00:00
Ruslan Ermilov
ae045148ba A shorter version of the format string. 2005-01-15 12:24:26 +00:00
Ruslan Ermilov
66106cda48 Fixed macro abuse. 2005-01-15 12:23:59 +00:00
Ruslan Ermilov
05527a9a28 Fixed display types. 2005-01-15 12:23:35 +00:00
Ruslan Ermilov
f4bff75eb3 Fixed markup bug. 2005-01-15 12:21:03 +00:00
Ruslan Ermilov
3382f529ff Markup: convert a display to a list. 2005-01-15 11:40:33 +00:00
Ruslan Ermilov
e8fbc77632 Markup style. 2005-01-15 11:22:13 +00:00
Ruslan Ermilov
5b1eeb71f2 Markup nits. 2005-01-15 11:21:24 +00:00
Ruslan Ermilov
6bf2021116 Markup nit. 2005-01-15 11:20:51 +00:00
Ruslan Ermilov
c201414f0a Overhaul the markup. 2005-01-15 11:12:40 +00:00
Ruslan Ermilov
e6ee149692 Markup fixes. 2005-01-15 10:05:02 +00:00
Scott Long
cfe08ee602 Add the bus_dmamap_load_mbuf_sg() function to sparc64. 2005-01-15 09:20:47 +00:00
David Schultz
851e420fba Add a file missed in the previous commit:
Eliminate gdtoa.mk and move its contents to ${MACHINE_ARCH}/Makefile.inc.
  The purpose of having a separate file involved an abandoned scheme that
  would have kept contrib/gdtoa out of the include path for the rest of libc.
2005-01-15 05:26:32 +00:00
David Schultz
bd15659f64 Eliminate gdtoa.mk and move its contents to ${MACHINE_ARCH}/Makefile.inc.
The purpose of having a separate file involved an abandoned scheme that
would have kept contrib/gdtoa out of the include path for the rest of libc.
2005-01-15 05:23:58 +00:00
David Schultz
cd3cc47033 amd64 assembly versions of sqrt(), lrint(), and llrint() using SSE2. 2005-01-15 03:32:28 +00:00
David Schultz
b6e65225a6 Most libm routines depend on the rounding mode and/or set exception
flags, so they are not pure.  Remove the __pure2 annotation from them.
I believe that the following routines and their float and long double
counterparts are the only ones here that can be __pure2:

	copysign is* fabs finite fmax fmin fpclassify ilogb nan signbit

When gcc supports FENV_ACCESS, perhaps there will be a new annotation
that allows the other functions to be considered pure when FENV_ACCESS
is off.

Discussed with:	bde
2005-01-15 02:55:10 +00:00
Scott Long
37f6bb092b Add a cast to fix a warning. 2005-01-15 02:43:31 +00:00
Brooks Davis
5ddd062275 Note the deprecation of the abbreviation of a number of ipfw options. 2005-01-15 01:53:49 +00:00
Brooks Davis
0175018610 Deprecate unmaintainable uses of strncmp to implement abbreviations.
This commit replaces those with two new functions that simplify the code
and produce warnings that the syntax is deprecated.  A small number of
sensible abbreviations may be explicitly added based on user feedback.

There were previously three types of strncmp use in ipfw:
 - Most commonly, strncmp(av, "string", sizeof(av)) was used to allow av
   to match string or any shortened form of it.  I have replaced this
   with a new function _substrcmp(av, "string") which returns 0 if av
   is a substring of "string", but emits a warning if av is not exactly
   "string".

 - The next type was two instances of strncmp(av, "by", 2) which allowed
   the abbreviation of bytes to "by", "byt", etc.  Unfortunately, it
   also supported "bykHUygh&*g&*7*ui".  I added a second new function
   _substrcmp2(av, "by", "bytes") which acts like the strncmp did, but
   complains if the user doesn't spell out the word "bytes".

 - There is also one correct use of strncmp to match "table(" which might
   have another token after it without a space.

Since I changed all the lines anyway, I also fixed the treatment of
strncmp's return as a boolean in many cases.  I also modified a few
strcmp cases as well to be fully consistent.
2005-01-15 01:46:41 +00:00
David Schultz
71936f351e Braino. Revert rev 1.50.
Pointy hat to:	das
2005-01-15 00:37:31 +00:00
David Schultz
8e26469445 Remove numerous references to VAX floating-point and the setting of
errno, replacing them with a discussion of IEEE exceptions where
appropriate.  Cross-reference fenv(3) whenever exceptions are
mentioned.
2005-01-14 23:28:28 +00:00
Bill Paul
52378c7ead Fix a problem reported by Pierre Beyssac. Sometinmes when ndis_get_info()
calls MiniportQueryInformation(), it will return NDIS_STATUS_PENDING.
When this happens, ndis_get_info() will sleep waiting for a completion
event. If two threads call ndis_get_info() and both end up having to
sleep, they will both end up waiting on the same wait channel, which
can cause a panic in sleepq_add() if INVARIANTS are turned on.

Fix this by having ndis_get_info() use a common mutex rather than
using the process mutex with PROC_LOCK(). Also do the same for
ndis_set_info(). Note that Pierre's original patch also made ndis_thsuspend()
use the new mutex, but ndis_thsuspend() shouldn't need this since
it will make each thread that calls it sleep on a unique wait channel.

Also, it occured to me that we probably don't want to enter
MiniportQueryInformation() or MiniportSetInformation() from more
than one thread at any given time, so now we acquire a Windows
spinlock before calling either of them. The Microsoft documentation
says that MiniportQueryInformation() and MiniportSetInformation()
are called at DISPATCH_LEVEL, and previously we would call
KeRaiseIrql() to set the IRQL to DISPATCH_LEVEL before entering
either routine, but this only guarantees mutual exclusion on
uniprocessor machines. To make it SMP safe, we need to use a real
spinlock. For now, I'm abusing the spinlock embedded in the
NDIS_MINIPORT_BLOCK structure for this purpose. (This may need to be
applied to some of the other routines in kern_ndis.c at a later date.)

Export ntoskrnl_init_lock() (KeInitializeSpinlock()) from subr_ntoskrnl.c
since we need to use in in kern_ndis.c, and since it's technically part
of the Windows kernel DDK API along with the other spinlock routines. Use
it in subr_ndis.c too rather than frobbing the spinlock directly.
2005-01-14 22:39:44 +00:00
David Schultz
ce4e53c460 Set math_errhandling to MATH_ERREXCEPT. Now that we have fenv.h, we
basically support this, subject to gcc's lack of FENV_ACCESS support.
In any case, the previous setting of math_errhandling to 0 is not
allowed by POSIX.
2005-01-14 22:03:27 +00:00
David Schultz
c165c4b9aa Remove some #if 0'd code. 2005-01-14 21:51:46 +00:00
Ruslan Ermilov
629a7369d7 Markup fixes. 2005-01-14 21:07:56 +00:00