Commit Graph

94071 Commits

Author SHA1 Message Date
peter
1f62fb4402 Fix some minor whitespace botches 2003-09-04 00:26:40 +00:00
peter
cc367e4b54 Make getcontext(2) work on i386. It needs a small wrapper in libc
otherwise the return from the syscall stub for getcontext will pop off
the return value for the caller to the getcontext stub and it will appear
as though the setcontext() syscall returned instead of the getcontext().
The same bug exists on amd64, a fix is coming there too.

The bug can be demonstrated with this test code fragment:
main()
{
        ucontext_t top;

        if (getcontext(&top) == 0) {
                write(2, "PING!\n", 6);
                /* Cause a return value of 1 from getcontext this time */
                top.uc_mcontext.mc_eax = 1;
                setcontext(&top);
                err(1, "setcontext() returned");
        }
        write(2, "PONG!\n", 6);
        _exit(0);
}
2003-09-04 00:20:40 +00:00
deischen
919bc52171 Don't assume sizeof(long) = sizeof(int) on x86; use int
instead of long types for low-level locks.

Add prototypes for some internal libc functions that are
wrapped by the library as cancellation points.

Add memory barriers to alpha atomic swap functions (submitted
by davidxu).

Requested by:	bde
2003-09-03 17:56:26 +00:00
jhb
43632098e7 Bring back PCIR_HEADERTYPE as an alias for PCIR_HDRTYPE under BURN_BRIDGES
for backwards compat.  The old name will be gone in 6.0, but will be
around in 5.x.  This will help unbreak 3rd party code, e.g. the nvidia
DRM module.
2003-09-03 17:48:22 +00:00
deischen
6a3d4cfc63 Remove the -pthread option (in FreeBSD versions 500016 and greater) as
threatened over 2 years ago.

Why?  -pthread was a hack to prevent linking to both libc and libc_r
and became unecessary when libc_r became free of libc.  Now that we
have multiple thread libraries from which to choose, it is more confusing
because you can't link to more than one threads library at a time.
Things like autoconf and libtool sometimes detect -pthread and
also -lc_r, and in conjunction with ports usage of ${PTHREAD_LIBS},
really wacky things ensue when PTHREAD_LIBS is set to another
threads library.  This might not be so bad if the build broke
when this happens, but it doesn't and you don't know it until
funny things happen when you run the application (or use an
affected library).

Reviewed by:    obrien
2003-09-03 15:44:34 +00:00
jhb
d5c4ef5547 Replace another instance of PCIR_MAPS with PCIR_BAR(x).
Reminded by:	dfr
2003-09-03 15:24:31 +00:00
ken
c9c6c3f8e3 Unbreak buildworld. sys/taskqueue.h is a kernel-only include.
Pointy Hat to:	ken
2003-09-03 12:31:03 +00:00
phk
158d08d6fb Use the quality to disable timecounters for which we deem Hz too low. 2003-09-03 08:14:16 +00:00
phk
c12ed80ed9 Give the ELAN timecounter better quality than i8254 2003-09-03 08:13:12 +00:00
phk
fc9a441e3e Add BOOT_PXELDR_ALWAYS_SERIAL option which forces serial console. 2003-09-03 08:12:20 +00:00
obrien
4f4a80884a Recognize the OHCI USB device on Opteron-based nForce3 motherboards
(such as the Asus SK8N).
2003-09-03 07:40:17 +00:00
phk
d3c24621a1 Examine and record the Silicon Revision Register on NS parts.
We can't update the device description in attach (why not ?), so
we device_print() what we find.

Conditionalize the short cable fix on this being older than rev 16A.

Call device_printf() when we apply short cable fix.

Include interrupt hold-off setting for rev 16+ under "#ifdef notyet"

The device_printf()'s will go under bootverbose once the various
issues have settled a bit.
2003-09-03 07:40:04 +00:00
obrien
70be9f6715 Recognize the sound chip on the Opteron-based nForce3 motherboards
(such as the Asus SK8N).
2003-09-03 07:38:21 +00:00
ru
1e549f16bc As ld(1) was taught to look into /lib, there's no longer a reason
for having compatibility .so symlinks.

Submitted by:	obrien
Reviewed by:	gordon
2003-09-03 06:31:50 +00:00
ken
a5ca16c671 Fix typo in the last commit.
Pointed out by:	njl
MFC after:	3 days
2003-09-03 05:35:37 +00:00
ken
03d0445c16 Move dynamic sysctl(8) variable creation for the cd(4) and da(4) drivers
out of cdregister() and daregister(), which are run from interrupt context.

The sysctl code does blocking mallocs (M_WAITOK), which causes problems
if malloc(9) actually needs to sleep.

The eventual fix for this issue will involve moving the CAM probe process
inside a kernel thread.  For now, though, I have fixed the issue by moving
dynamic sysctl variable creation for these two drivers to a task queue
running in a kernel thread.

The existing task queues (taskqueue_swi and taskqueue_swi_giant) run in
software interrupt handlers, which wouldn't fix the problem at hand.  So I
have created a new task queue, taskqueue_thread, that runs inside a kernel
thread.  (It also runs outside of Giant -- clients must explicitly acquire
and release Giant in their taskqueue functions.)

scsi_cd.c:	Remove sysctl variable creation code from cdregister(), and
		move it to a new function, cdsysctlinit().  Queue
		cdsysctlinit() to the taskqueue_thread taskqueue once we
		have fully registered the cd(4) driver instance.

scsi_da.c:	Remove sysctl variable creation code from daregister(), and
		move it to move it to a new function, dasysctlinit().
		Queue dasysctlinit() to the taskqueue_thread taskqueue once
		we have fully registered the da(4) instance.

taskqueue.h:	Declare the new taskqueue_thread taskqueue, update some
		comments.

subr_taskqueue.c:
		Create the new kernel thread taskqueue.  This taskqueue
		runs outside of Giant, so any functions queued to it would
		need to explicitly acquire/release Giant if they need it.

cd.4:		Update the cd(4) man page to talk about the minimum command
		size sysctl/loader tunable.  Also note that the changer
		variables are available as loader tunables as well.

da.4:		Update the da(4) man page to cover the retry_count,
		default_timeout and minimum_cmd_size sysctl variables/loader
		tunables.  Remove references to /dev/r???, they aren't used
		any longer.

cd.9:		Update the cd(9) man page to describe the CD_Q_10_BYTE_ONLY
		quirk.

taskqueue.9:	Update the taskqueue(9) man page to describe the new thread
		task queue, and the taskqueue_swi_giant queue.

MFC after:	3 days
2003-09-03 04:46:28 +00:00
jeff
96db6adb01 - Several of the callers to getdirtybuf() were erroneously changed to pass
in a list head instead of a pointer to the first element at the time of
   the first call.  These lists are subject to change, and getdirtybuf()
   would refetch from the wrong list in some cases.

Spottedy by:	tegge
Pointy hat to:	me
2003-09-03 04:08:15 +00:00
bms
158dc50a89 Forced commit to correct lack of log message in previous commit.
Fix a checksum regression introduced by IP_ONESBCAST. Only datagrams sent
on PF_INET/SOCK_DGRAM/IPPROTO_UDP sockets with IP_ONESBCAST enabled are
affected by the regression, which causes in_pseudo() to incorrectly
calculate the udp checksum. This error was masked by network interfaces
supporting checksum offloading.

PR:		kern/56343
Reviewed by:	tjr
Approved by:	jake (mentor)
2003-09-03 02:21:33 +00:00
bms
17cac09c5e PR: kern/56343
Reviewed by:	tjr
Approved by:	jake (mentor)
2003-09-03 02:19:29 +00:00
davidxu
025d0d678a This is a force commit for revision 1.90 to explain further:
Removes a surplus kse_wakeup_multi call when there is no thread can run.
Also reduce time window that an IDLE kse wakes and sleeps again because
it can not get scheduler lock after wakeup, the change is small and not
perfect, futher refining it is possible but may not worth to do, it
is unknown whether we can gain performance benifit by refining it.

Prodded by: scottl
2003-09-03 01:26:36 +00:00
obrien
92a13add46 MFi386: add device ataraid, this is now seperate and not pulled in by atadisk. 2003-09-03 01:24:47 +00:00
mbr
8f6d39958f Add notice about deleting .cvsignore 2003-09-03 00:46:21 +00:00
mbr
c7c3e30843 Apparently these slipped through the import procedure.
Kill them again.
2003-09-03 00:44:27 +00:00
davidxu
f61d4432c4 Move kse_wakeup_multi call to just before KSE_SCHED_UNLOCK.
Tested on: SMP
2003-09-03 00:21:10 +00:00
obrien
4d1e58a187 Support the nForce3 chip found on Opteron motherboards:
atapci0: <nVidia nForce3 UDMA133 controller>

Approved by:	sos
2003-09-02 21:02:46 +00:00
sam
8c368dfa99 move domain list mutex initialization to earlier in the boot sequence so
statically configured modules like netgraph can call net_init_domain

Noticed by:	D.Rock@t-online.de (D. Rock)
2003-09-02 20:59:23 +00:00
marcel
2432ffe7fb Add function OF_decode_addr(). This function obtains the physical
address of the device identified by its phandle_t by traversing OFW's
device tree. The space and address returned by this function can
subsequently be passed to sparc64_fake_bustag() to construct a valid
tag and handle for use by the newbus I/O functions.

Use of this function is expected to be limited to pre-newbus access to
devices, such as consoles and keyboards.

Partially obtained from: tmm
Reviewed by: jake, jmg, tmm
SBus testing made possible by: jake
Tested with: LINT
2003-09-02 20:32:12 +00:00
marcel
3a5e34ed9e Preparatory commit to allow prototypes in ofw_machdep.h to contain
both newbus types and OFW types. This involves either including
<machine/bus.h> or <dev/ofw/openfirm.h>.

Reviewed by: jake, jmg, tmm
2003-09-02 20:24:42 +00:00
mbr
6528e7760a Sync with 6.0.9 import. Add my email. 2003-09-02 20:09:55 +00:00
marcel
59e5b9eae1 Move the inclusion of <machine/ofw_machdep.h> after the inclusion of
<dev/ofw/openfirm.h> to allow the former to contain prototypes that
use types defined in the latter.

Reviewed by: mjacob@
2003-09-02 19:52:31 +00:00
kan
6d12300f90 Rethink the way thr_libc.So is generated. Relying on GCC to extract
only needed symbols from libc_pic is not working on sparc64.

Requested by: jake
2003-09-02 19:37:11 +00:00
mbr
a69ecba559 Sync with fresh generated file, keep our changed settings. This seems
to be a lot cleaner.
2003-09-02 17:38:30 +00:00
jhb
dc11e45b68 Use PCIR_BAR(x) instead of PCIR_MAPS.
Glanced over by:	imp, gibbs
Tested by:		i386 LINT
2003-09-02 17:30:40 +00:00
jhb
480ed8b593 - Deprecate PCIR_MAPS under BURN_BRIDGES (meaning it will be gone in 6.0)
and replace it with the more intuitive name PCIR_BARS.
- Add a PCIR_BAR(x) macro that returns the config space register offset of
  the 32-bit BAR x.

MFC after:	3 days
2003-09-02 17:11:27 +00:00
dds
d639820bc8 Fix/add errno return values to match the NFS client implementation and
better represent failures of special files accessed over NFS.

Approved by:	schweikh (mentor)
Reviewed by:	bde (as a description)
MFC after:	6 weeks
2003-09-02 16:50:17 +00:00
dds
c5e451a8b7 Fix errno return values to better represent failure reasons for
read and open.

Approved by:	schweikh (mentor)
Agreed:		bde
MFC after:	6 weeks
2003-09-02 16:46:31 +00:00
mbr
d089540cea Remove redundant PACKAGE and VERSION defines. 2003-09-02 16:10:46 +00:00
mbr
938c2ba39e Update version string. 2003-09-02 15:57:37 +00:00
mbr
4d1cdd21bb Set HAVE_STRUCT_IFREQ_IFR_ADDR, HAVE_STRUCT_FHSTATUS_FHS_FH to 1. 2003-09-02 15:56:05 +00:00
sos
32d785167f cosmetics 2003-09-02 15:53:01 +00:00
mbr
fa2df21e05 Resolve conflicts. 2003-09-02 15:42:57 +00:00
mbr
7d0df748b4 Virgin import of AMD (am-utils) 20030828 (6.0.9) 2003-09-02 15:27:38 +00:00
mbr
ccc3812476 This commit was generated by cvs2svn to compensate for changes in r119679,
which included commits to RCS files with non-trunk default branches.
2003-09-02 15:27:38 +00:00
sos
4dd2d26a98 Adjust the max transfer size used. 2003-09-02 13:26:02 +00:00
mbr
2bba90a51f Import ISC DHCP 3.0.1 RC12 client.
- s/include/includes
- remove already merged files
2003-09-02 11:15:03 +00:00
mbr
66b631bbce Resolve conflicts. 2003-09-02 11:13:21 +00:00
mbr
bc435cf924 Resolve conflicts.
* rev. 1.22
2003-09-02 11:10:29 +00:00
mbr
30c9dcd76d Resolve conflicts:
* rev. 1.33/1.25
2003-09-02 11:09:45 +00:00
mbr
0f311740fc This commit was generated by cvs2svn to compensate for changes in r119669,
which included commits to RCS files with non-trunk default branches.
2003-09-02 11:01:27 +00:00
mbr
01d6785b06 Import ISC DHCP 3.0.1 RC12 client. 2003-09-02 11:01:27 +00:00