Commit Graph

94006 Commits

Author SHA1 Message Date
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
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
mbr
7d0df748b4 Virgin import of AMD (am-utils) 20030828 (6.0.9) 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
maxim
c789fb5e20 Check an arguments count before proceed in sysctl_handler().
PR:		bin/56298
Submitted by:	Kang Liu <liukang@bjpu.edu.cn>
MFC after:	2 weeks

# We need a regression test suit for ipfw(2)/ipfw(8) badly.
2003-09-02 10:36:40 +00:00
mbr
089f3c60d4 Sync with ISC repo. Use SIGTERM instead of SIGKILL, make oldpid a long and
cast it into a pid_t.
2003-09-02 09:09:53 +00:00
scottl
512a5c372c Prepare for locking mlx(4) by cleaning up the use of busdma. No real
functional changes should result from this.
2003-09-02 08:30:31 +00:00
phk
aa66e2a22f Teach rescue about NOATM, NO_VINUM and NOINET6 2003-09-02 06:43:58 +00:00
phk
b472eed434 Don't open with exclusive bit, swapon(8) wants to trash our swapdev.
Add XXX comment with a rating of this concept.
2003-09-02 05:53:44 +00:00
imp
ce94662cf8 CardBus instead of Cardbus. Add I/O Data WN-AG/CB and Prixim Skyline
4030 cards.

Special Thanks: shigeru yamamoto-san for the kind donation of I/O Data and
	other wireless cards
2003-09-01 23:09:09 +00:00
phk
38290a3baa Simplify the ioctl handling in GEOM.
This replaces the current ioctl processing with a direct call path
from geom_dev() where the ioctl arrives (from SPECFS) to any directly
connected GEOM class.

The inverse of the above is no longer supported.  This is the
situation were you have one or more intervening GEOM classes, for
instance a BSDlabel on top of a MBR or PC98.  If you want to issue
MBR or PC98 specific ioctls, you will need to issue them on a MBR
or PC98 providers.

This paves the way for inviting CD's, FD's and other special cases
inside GEOM.
2003-09-01 20:45:32 +00:00
scottl
4e64a48fd8 Commands submitted through the management interface won't have scatter/
gather lists.  Stop ignoring them and instead call the callback directly.
This unbreaks the management interface.
2003-09-01 20:44:18 +00:00
eivind
dbb76f12a3 Change clean_map from a global to an auto variable 2003-09-01 16:46:47 +00:00
dfr
fb96d0aa20 Don't try to enable io or memory access for non-standard resource
addresses. This stops resource allocations for e.g. amdpm failing - this
has its own special ways of enabling access.
2003-09-01 15:01:49 +00:00
dfr
cb09824b9c Add support for AMD766 and AMD768 chipsets.
PR: 41812
2003-09-01 14:58:34 +00:00
eivind
cb6061aa80 Update the kern.osreldate documentation to document the present format
used, and refer to <osreldate.h> to get userland date.

Submitted by:	ru
2003-09-01 14:26:33 +00:00
maxim
fd3bfcf5e3 Retire 'c' partition for a CD device.
Submitted by:		Craig Rodrigues <rodrigc@crodrigues.org>
Not objected by:	-current
2003-09-01 12:50:02 +00:00
phk
9958b55dce Try to close the race between disk_destroy() and a subsequent disk_create(). 2003-09-01 12:03:13 +00:00
sos
bd60079a79 Rearrange the probe code yet again. 2003-09-01 11:13:21 +00:00