Commit graph

45642 commits

Author SHA1 Message Date
Bill Paul 0bf7b204e3 Fix mind-o: sanity check in ndis_disable_ndis() is not sane. 2004-03-11 09:50:00 +00:00
Bill Paul 1e35c8564a Fix the problem with the Cisco Aironet 340 PCMCIA card. Most newer drivers
for Windows are deserialized miniports. Such drivers maintain their own
queues and do their own locking. This particular driver is not deserialized
though, and we need special support to handle it correctly.

Typically, in the ndis_rxeof() handler, we pass all incoming packets
directly to (*ifp->if_input)(). This in turn may cause another thread
to run and preempt us, and the packet may actually be processed and
then released before we even exit the ndis_rxeof() routine. The
problem with this is that releasing a packet calls the ndis_return_packet()
function, which hands the packet and its buffers back to the driver.
Calling ndis_return_packet() before ndis_rxeof() returns will screw
up the driver's internal queues since, not being deserialized,
it does no locking.

To avoid this problem, if we detect a serialized driver (by checking
the attribute flags passed to NdisSetAttributesEx(), we use an alternate
ndis_rxeof() handler, ndis_rxeof_serial(), which puts the call to
(*ifp->if_input)() on the NDIS SWI work queue. This guarantees the
packet won't be processed until after ndis_rxeof_serial() returns.

Note that another approach is to always copy the packet data into
another mbuf and just let the driver retain ownership of the ndis_packet
structure (ndis_return_packet() never needs to be called in this
case). I'm not sure which method is faster.
2004-03-11 09:40:00 +00:00
Poul-Henning Kamp e26bafdc25 Be more insistent on destroying geoms at unload time. Still not perfect,
but it will do (better) for now.

KASSERT that to have providers a class must have an access method.

Tag the new_provider event with the geom as well.
2004-03-11 08:16:23 +00:00
Marcel Moolenaar cd5cb01152 Remove stale or broken call to kdb_trap() and protected by the non-
option KDB. Besides being wrong, it also interferes with ongoing
work.
2004-03-11 00:17:45 +00:00
Marcel Moolenaar 39209a2fad Identify the Deerfield processor. Deerfield is a low-voltage variant
based on the Madison core and targeting the low end of the spectrum.
Its clock frequency is 1Ghz, whereas Madison starts at 1.3Ghz. Since
the CPUID information is the same for Madison and Deerfield, we use
the clock frequency to identify the processor.
Supposedly the Deerfield only uses 62W, which seems to be less than
modern Xeon processors (about 70W) and about half what a Madison would
need.
2004-03-10 22:23:20 +00:00
Poul-Henning Kamp 39a78f8cf4 Don't call devsw() more than we need to, and in particular do not expose
ourselves to device removal by not checking for it the second time.

Use count_dev(dev) rather than vcount(vp)
2004-03-10 20:56:28 +00:00
Poul-Henning Kamp d385de74fa Make the extern for adv_mcode match the reality: it's u_int8_t, but
probably unendiansafely used as u_int16_t.
2004-03-10 20:52:47 +00:00
Poul-Henning Kamp 7a6b2b6429 Fix a long-standing deadlock issue with vnode backed md(4) devices:
On vnode backed md(4) devices over a certain, currently undetermined
size relative to the buffer cache our "lemming-syncer" can provoke
a buffer starvation which puts the md thread to sleep on wdrain.

This generally tends to grind the entire system to a stop because the
event that is supposed to wake up the thread will not happen until a fair
bit of the piled up I/O requests in the system finish, and since a lot
of those are on a md(4) vnode backed device which is currently waiting
on wdrain until a fair amount of the piled up ... you get the picture.

The cure is to issue all VOP_WRITES on the vnode backing the device
with IO_SYNC.

In addition to more closely emulating a real disk device with a
non-lying write-cache, this makes the writes exempt from rate-limited
(there to avoid starving the buffer cache) and consequently prevents
the deadlock.

Unfortunately performance takes a hit.

Add "async" option to give people who know what they are doing the
old behaviour.
2004-03-10 20:41:09 +00:00
Garance A Drosehn cbde2013a6 Undo the previous commit, which was just plain wrong, and then correctly
increase _FreeBSD_version to reflect the 64-bTT change on sparc64.

Noticed by:	kris
Pointy hat to:	gad
2004-03-10 19:47:57 +00:00
Garance A Drosehn dfcf10a8cd Increase __FreeBSD_version to reflect the transition from 32-bit to
64-bit time_t on the FreeBSD/sparc64 architecture.
2004-03-10 17:40:55 +00:00
Garance A Drosehn ec9b318eaf Change time_t from a 32-bit value to a 64-bit value, on FreeBSD/sparc64
only.  This is a  MAJOR  incompatible change for the sparc64 platform,
but will not effect FreeBSD on other architectures.

Reviewed by:	imp for UPDATING, freebsd-sparc for the change itself.
2004-03-10 17:39:05 +00:00
Bruce M Simpson a3fc6c7208 Eliminate multiple __FBSDID and sys/cdefs.h. 2004-03-10 17:03:27 +00:00
Max Laier 7b3832e8d6 Remove `$Name$' leftovers from the port version reporting.
Noticed by:	Craig Rodrigues
Approved by:	bms(mentor)
2004-03-10 15:08:21 +00:00
Poul-Henning Kamp 5c5c7982be Use the external clock input for our PLL.
This may not be a generally valid configuration, but neither is relying
on the PCI clock to be stable.

The only currently known and supported hardware is the VPN14x1 from
Soekris, and since it has external clock, we fail safe(r) by using
it.

Unfortunately there is no way to probe this reliably.
2004-03-10 10:10:46 +00:00
Poul-Henning Kamp b033c30b23 Remove the /* 1.2 */ comment which was orphaned by previous commit. 2004-03-10 09:23:27 +00:00
Poul-Henning Kamp 3d1d5bc3c3 Rearrange some of the GEOM debugging tools to be more structured.
Retire g_sanity() and corresponding debugflag (0x8)

  Retire g_{stall,release}_events().

  Under #ifdef DIAGNOSTIC:

    Make g_valid_obj() an official function and have it return an an
    non-zero integer which indicates the kind of object when found.

    Implement G_VALID_{CLASS,GEOM,CONSUMER,PROVIDER}() macros based
    on g_valid_obj().

    Sprinkle calls to these macros liberally over the infrastructure.

    Always check that we do not free a live object.
2004-03-10 08:49:08 +00:00
Poul-Henning Kamp 4f81134a23 Fix handling of tap/vmnet flag in relation to cloning and properly enforce
largest supported unit number for this device driver.

Reported by:	Kaho Toshikazu <kaho@easy.es.tuat.ac.jp>
2004-03-10 08:02:29 +00:00
Bill Paul a24cc63af9 Fix several issues related to the KeInitializeTimer() etc... API stuff
that I added recently:

- When a periodic timer fires, it's automatically re-armed. We must
  make sure to re-arm the timer _before_ invoking any caller-supplied
  defered procedure call: the DPC may choose to call KeCancelTimer(),
  and re-arming the timer after the DPC un-does the effect of the
  cancel.

- Fix similar issue with periodic timers in subr_ndis.c.

- When calling KeSetTimer() or KeSetTimerEx(), if the timer is
  already pending, untimeout() it first before timeout()ing
  it again.

- The old Atheros driver for the 5211 seems to use KeSetTimerEx()
  incorrectly, or at the very least in a very strange way that
  doesn't quite follow the Microsoft documentation. In one case,
  it calls KeSetTimerEx() with a duetime of 0 and a period of 5000.
  The Microsoft documentation says that negative duetime values
  are relative to the current time and positive values are absolute.
  But it doesn't say what's supposed to happen with positive values
  that less than the current time, i.e. absolute values that are
  in the past.

  Lacking any further information, I have decided that timers with
  positive duetimes that are in the past should fire right away (or
  in our case, after only 1 tick). This also takes care of the other
  strange usage in the Atheros driver, where the duetime is
  specified as 500000 and the period is 50. I think someone may
  have meant to use -500000 and misinterpreted the documentation.

- Also modified KeWaitForSingleObject() and KeWaitForMultipleObjects()
  to make the same duetime adjustment, since they have the same rules
  regarding timeout values.

- Cosmetic: change name of 'timeout' variable in KeWaitForSingleObject()
  and KeWaitForMultipleObjects() to 'duetime' to avoid senseless
  (though harmless) overlap with timeout() function name.

With these fixes, I can get the 5211 card to associate properly with
my adhoc net using driver AR5211.SYS version 2.4.1.6.
2004-03-10 07:43:11 +00:00
Robert Watson 0029e98f37 Move the AH algorithm list from a static local function variable to
a static const global variable in ah_core.c.  This makes it more clear
that this array does not require synchronization, as well as
synchronizing the layout to the ESP algorithm list.  This is the
version of my patch that Itojun committed to the KAME tree.

Obtained from:	me, via KAME
2004-03-10 04:56:54 +00:00
Alan Cox 5d328ed44b - Make the acquisition of Giant in vm_fault_unwire() conditional on the
pmap.  For the kernel pmap, Giant is not required.  In general, for
   other pmaps, Giant is required by i386's pmap_pte() implementation.
   Specifically, the use of PMAP2/PADDR2 is synchronized by Giant.
   Note: In principle, updates to the kernel pmap's wired count could be
   lost without Giant.  However, in practice, we never use the kernel
   pmap's wired count.  This will be resolved when pmap locking appears.
 - With the above change, cpu_thread_clean() and uma_large_free() need
   not acquire Giant.  (The first case is simply the revival of
   i386/i386/vm_machdep.c's revision 1.226 by peter.)
2004-03-10 04:44:43 +00:00
Robert Watson fe5a02c927 Lock down IP-layer encapsulation library:
- Add encapmtx to protect ip_encap.c global variables (encapsulation
   list).
 - Unifdef #ifdef 0 pieces of encap_init() which was (and now really
   is) basically a no-op.
 - Lock encapmtx when walking encaptab, modifying it, comparing
   entries, etc.
 - Remove spl's.

Note that currently there's no facilite to make sure outstanding
use of encapsulation methods on a table entry have drained bfore
we allow a table entry to be removed.  As such, it's currently the
caller's responsibility to make sure that draining takes place.

Reviewed by:	mlaier
2004-03-10 02:48:50 +00:00
Robert Watson 846840ba95 Scrub unused variable zeroin_addr. 2004-03-10 01:01:04 +00:00
John-Mark Gurney 0235bf0261 make sure we had the filedesc lock when calling fdinit when RFCFDG is set
on call to rfork.

Submitted by:	Brian Buchanan
Semi-Reviewed by: rwatson
2004-03-10 00:27:36 +00:00
Robert Watson e589108ddf Const-poison ethernet and FDDI broadcast address constants, as they
are accessed read-only.
2004-03-09 23:55:59 +00:00
John Birrell 0b3ffb77f1 Remove duplicate code.
Requested by: bde
2004-03-09 20:53:01 +00:00
Bill Paul e86c401f10 Trim unneeded includes from if_ndis_pccard.c and if_ndis_pci.c. Also removed
unused variables from if_ndis_pccard.c
2004-03-09 20:29:21 +00:00
Robert Watson 15db03a075 Introduce stf_mtx to protect global softc list in if_stf. Add
stf_destroy() to handle the common softc destruction path for the
two destruction sources: interface cloning destroy, and module
unload.

NOTE: sc_ro, the cached route for stf conversion, is not synchronized
against concurrent access in this change, that will follow in a future
change.

Reviewed by:	pjd
2004-03-09 20:29:19 +00:00
Robert Watson f5529ff4ce Introduce faith_mtx to protect the if_faith global softc list.
Push if_faith softc destruction logic into faith_destroy() so that
it can be called after softc list removal in both the clone destroy
and module unload paths.
2004-03-09 19:23:06 +00:00
Bill Paul 3e7791af10 If the resource listing obtained from BUS_GET_RESOURCE_LIST() in
ndis_probe_pci() doesn't contain an entry for an IRQ resource, try to
force one to be routed to us anyway by adding an extra call to
bus_alloc_resource(). If this fails, then we have to abort the attach.

Patch provided by jhb, tweaked by me.
2004-03-09 18:39:40 +00:00
Robert Watson f25ee08633 Introduce lo_mtx to protect the global loopback softc list. I'm not
really sure why we have a softc list for if_loop, given that it
can't be unloaded, but that's an issue to revisit in the future as
corrupting the softc list would still cause panics.

Reviewed by:	benno
2004-03-09 17:27:48 +00:00
Robert Watson d6e2616ac3 Introduce disc_mtx to protect the global softc list in if_disc.
Since there are two destroy paths for if_disc interfaces --
module unload and cloan interface destroy, create a new utility
function disc_destroy(), which is callded on a softc after it
has been removed from the global softc list; the cloaner and
module unload entry paths will both remove it before calling
disc_destroy().

Reviewed by:	pjd
2004-03-09 16:31:19 +00:00
Lukas Ertl 6c8740f899 Fix an integer overflow when dealing with very large volumes. This bug
prevented newfs to work on volumes that are larger than 1TB.

PR:             63577
Submitted by:   Masaki Takakashi <mtakahashi@se.gtd.cosmo.co.jp>
Approved by:    grog (mentor), bde
2004-03-09 12:45:43 +00:00
Pawel Jakub Dawidek 48fbd94b4e - Don't take sectorsize from first disk. Calculate it by finding
least common multiple of all disks sector sizes.
  This will allow to safely concatenate disks with different sector sizes.
- Mark unused function arguments.
- Other minor cleanups.
2004-03-09 11:18:53 +00:00
Pawel Jakub Dawidek 810914da53 Print a space character between string given as a macro argument and
bio description.
2004-03-09 11:00:24 +00:00
Lukas Ertl 664e22ad1e Since vinum doesn't fake disklabels anymore, remove get_volume_label().
Also, remove stale write_volume_label() declaration; the write_volume_label()
function was deleted 8 months ago.

Approved by:    grog (mentor)
2004-03-09 09:50:15 +00:00
Nate Lawson dba55fa26d Simplify some logic in converting a buffer to an integer. 2004-03-09 05:44:47 +00:00
Nate Lawson cc58e4ee5e Use an unsigned int instead of an int for the Get/Set Integer interface.
Pointed out by:	le
2004-03-09 05:41:28 +00:00
Marcel Moolenaar 618c18c7c3 Reset the text attributes when initializing the console. The EFI
loader typically doesn't do this so that we end up booting the
with whatever the EFI loader has set it to last.
2004-03-09 04:00:33 +00:00
Nate Lawson 29f5b9a8c1 Hook CPUs up to newbus. CPUs will ultimately be a bus driver so that
multiple CPU-specific drivers can attach.  This is a work in progress
so children aren't supported yet.

Help from:	jhb
2004-03-09 03:37:21 +00:00
John Birrell 9ee4b048ae Add #ifdef CPU_SOEKRIS in the missing places around the led_* code
that is specific to those boards.

This allows this file to compile again with CPU_ELAN enabled, but not
CPU_SOEKRIS, for a Compulab board.
2004-03-09 02:51:21 +00:00
John Birrell 15afc798fd AMD's ELAN documentation says that you write to the SYS_RST register
in the Memory Mapped Configuration Region (MMCR) to reset the CPU.
If CPU_ELAN is set, try this first to reset the CPU before the
traditional way.

Without this change, my Compulab board powers down on 'reset' instead
of rebooting.
2004-03-09 02:49:24 +00:00
Max Laier fc28f1ff5f Bump __FreeBSD_version for the pf install and write comments to UPDATING.
Approved by:	bms(mentor)
2004-03-08 22:26:46 +00:00
Max Laier 8d69c48be5 Link pf to the build and install:
This adds the former ports registered groups: proxy and authpf as well as
the proxy user. Make sure to run mergemaster -p in oder to complete make
installworld without errors.

This also provides the passive OS fingerprints from OpenBSD (pf.os) and an
example pf.conf.

For those who want to go without pf; it provides a NO_PF knob to make.conf.

__FreeBSD_version will be bumped soon to reflect this and to be able to
change ports accordingly.

Approved by:	bms(mentor)
2004-03-08 22:03:29 +00:00
Robert Watson ce89352952 Mark loadaverage callout as CALLOUT_MPSAFE.
Reviewed by:	jhb
2004-03-08 22:01:19 +00:00
Pawel Jakub Dawidek dd604e2647 Add two new sysctls:
- security.bsd.hardlink_check_uid, when set, means, that unprivileged
		users are not permitted to create hard links to files not
		owned by them,
	- security.bsd.hardlink_check_gid, when set, means, that unprivileged
		users are not permitted to create hard links to files owned
		by group they don't belong to.

OK'ed by:	rwatson
2004-03-08 20:37:25 +00:00
Benno Rice bde778e9f2 Add a netgraph node to handle ATM LLC encapsulation. This currently handles
ethernet (tested) and FDDI (not tested).  The main use for this is on ADSL (or
other ATM) connections where bridged ethernet is used, PPPoE being a prime
example.

There is no manual page as yet, I will write one shortly.

Reviewed by:	harti
2004-03-08 10:54:35 +00:00
Jeffrey Hsu a062038267 To comply with the spec, do not copy the TOS from the outer IP
header to the inner IP header of the PIM Register if this is a PIM
Null-Register message.

Submitted by:	Pavlin Radoslavov <pavlin@icir.org>
2004-03-08 07:47:27 +00:00
Jeffrey Hsu 4c9792f9d3 Include <sys/types.h> for autoconf/automake detection.
Submitted by:	Pavlin Radoslavov <pavlin@icir.org>
2004-03-08 07:45:32 +00:00
Alan Cox a7d8612155 Implement a work around for the deadlock avoidance case in
vm_object_deallocate() so that it doesn't spin forever either.

Submitted by:	bde
2004-03-08 03:54:36 +00:00
Peter Wemm ec4a10ee26 Add back Giant locks around kmem_free() call from user_ldt cleanup path
during exit.  Apparently it isn't safe after all.  See uma_large_free().

Pointed out by:  alc
2004-03-08 01:55:34 +00:00
Peter Wemm a69d88af52 Move a vref call outside of proc locks and Giant. By virtue of the fact
that we (p1) are currently running, we hold a reference on p_textvp which
means the vnode cannot go away.  p2 cannot run yet (and hence cannot exit)
so this should be safe to do at this point.  As a bonus, it removes a
block of under-Giant code that was there to support the vref.
2004-03-08 00:32:34 +00:00
Peter Wemm b8f8da5d90 Other parts of the tree do not protect calls to kmem_free() with Giant,
so remove it from here.  The most notable examples include vm_mmap().
This removes one more Giant event from exit(2).
2004-03-08 00:27:33 +00:00
Peter Wemm 17186e1c71 Stop depending on #include pollution from cpufunc.h 2004-03-08 00:25:03 +00:00
Peter Wemm 4f6c19e593 MFi386: re-sort non-gcc function prototypes, trim includes 2004-03-08 00:24:15 +00:00
Peter Wemm c0fddb5b17 MFi386: curpcb is no longer null anymore, so do not test for it. 2004-03-08 00:17:27 +00:00
Peter Wemm 165e0ac05b MFi386: set initial curpcb pcpu variable at startup time rather than
waiting for a context switch
2004-03-08 00:16:52 +00:00
Peter Wemm c60df69fb2 MFi386: wait for local apic to become free before using it 2004-03-08 00:15:29 +00:00
Ruslan Ermilov 1164db57e4 Implemented the "getifindex" control message.
PR:		kern/63864
Submitted by:	Gleb Smirnoff
2004-03-07 23:00:44 +00:00
Alan Cox fcffa790e9 Retire pmap_pinit2(). Alpha was the last platform that used it. However,
ever since alpha/alpha/pmap.c revision 1.81 introduced the list allpmaps,
there has been no reason for having this function on Alpha.  Briefly,
when pmap_growkernel() relied upon the list of all processes to find and
update the various pmaps to reflect a growth in the kernel's valid
address space, pmap_init2() served to avoid a race between pmap
initialization and pmap_growkernel().  Specifically, pmap_pinit2() was
responsible for initializing the kernel portions of the pmap and
pmap_pinit2() was called after the process structure contained a pointer
to the new pmap for use by pmap_growkernel().  Thus, an update to the
kernel's address space might be applied to the new pmap unnecessarily,
but an update would never be lost.
2004-03-07 21:06:48 +00:00
Poul-Henning Kamp b07ef6c2db Don't panic on providers already withered when we wither a geom. 2004-03-07 17:33:15 +00:00
Olivier Houchard 7ff7c6b9ad Use one bus_dma_tag_t for all pSRB instead of creating one for each.
Free what is allocated for pSRBs at unload time or if something bad happens,
thanks to scottl for spotting this out.
2004-03-07 17:23:39 +00:00
Alexander Kabaev fa3d2a12df Convert from timeout to callout API.
Submitted by: rwatson
2004-03-07 16:28:31 +00:00
Alexander Kabaev bc9d2845f4 Convert from timeout to callout API. 2004-03-07 16:23:03 +00:00
Yoshihiro Takahashi 4c15fdec71 Restore CDIOCREADAUDIO ioctl.
Pointed out by:	KIYOHARA Takashi <kiyohara@kk.iij4u.or.jp>
2004-03-07 14:16:42 +00:00
Alan Cox d82852fbb9 Integrate the code from pmap_pinit2() into pmap_pinit(), leaving
pmap_pinit2() empty.

Approved by:	marcel
2004-03-07 07:43:13 +00:00
Alan Cox 925d2fedf5 Remove unused declarations. (Some time ago, these variables became fields
of vm/vm.h's struct kva_md_info.)
2004-03-07 07:13:15 +00:00
Robert Watson a3c0761103 Mark uma_callout as CALLOUT_MPSAFE, as uma_timeout can run MPSAFE.
Reviewed by:	jeff
2004-03-07 07:00:46 +00:00
Yoshihiro Takahashi 05f0fb092f Remove '#include <machine/bus_pio.h>'. This is meaningless. 2004-03-07 05:39:38 +00:00
Yoshihiro Takahashi 5743ccb994 Remove unneeded devices. 2004-03-07 05:38:20 +00:00
MIHIRA Sanpei Yoshiro ff89e92686 Sync to 1.166 of usbdevs 2004-03-07 05:34:36 +00:00
MIHIRA Sanpei Yoshiro b34b7c59ee Add support 2 devices(USB-DVD-R drives)
- Logitec LDR-H443SU2
	- IO-DATA DVR-UEH8

PR:		kern/63793
Submitted by:	Ryuji MATSUMOTO <matumoto@pluto.ai.kyutech.ac.jp>
MFC after:	1 week
2004-03-07 05:33:09 +00:00
Robert Watson 591cf7ce2d Const-poison ip_stf_ttl to make it clear that the variable is not
modified at run-time.
2004-03-07 05:15:42 +00:00
Yoshihiro Takahashi b7ac92ac50 MFi386: revisions from 1.1127 to 1.1131. 2004-03-07 04:09:18 +00:00
Yoshihiro Takahashi 151d92a4e1 Add the agp, bfe, sk and ti devices. (the agp is disabled by default).
Remove obsolete compat_atdisk device.
2004-03-07 04:07:57 +00:00
Bill Paul d329ad6035 Add preliminary support for PCMCIA devices in addition to PCI/cardbus.
if_ndis.c has been split into if_ndis_pci.c and if_ndis_pccard.c.
The ndiscvt(8) utility should be able to parse device info for PCMCIA
devices now. The ndis_alloc_amem() has moved from kern_ndis.c to
if_ndis_pccard.c so that kern_ndis.c no longer depends on pccard.

NOTE: this stuff is not guaranteed to work 100% correctly yet. So
far I have been able to load/init my PCMCIA Cisco Aironet 340 card,
but it crashes in the interrupt handler. The existing support for
PCI/cardbus devices should still work as before.
2004-03-07 02:49:06 +00:00
Alan Cox 3eba15c12e Remove GIANT_REQUIRED from vunmapbuf(). 2004-03-07 00:37:18 +00:00
Alan Cox 5fadbfeac2 Giant is not required for vm_thread_new_altkstack(). 2004-03-07 00:06:32 +00:00
Ruslan Ermilov 776f50b966 Overdue reversion of revision 1.143.
OK'ed by:	imp
2004-03-06 21:23:56 +00:00
Mathew Kanner 0d8ed52ea5 Augment /dev/sndstat with the module names, if applicable.
Approved by:	  tanimura (mentor)
2004-03-06 15:52:42 +00:00
Scott Long 651c6c7b3d Remove the phantom 'nv' driver again. 2004-03-06 06:54:54 +00:00
Alexander Kabaev ff85a3f0e1 Always call vn_finished_write after vn_start_write was called. All
occurences of 'goto done' after vn_start_write invocation were cleaning
up incompletely.
2004-03-06 04:09:54 +00:00
Peter Wemm c37fc96b15 When faced with a "GenuineIntel", we know what they call it now. Replace
snide comment with a different one.
2004-03-06 00:51:30 +00:00
Peter Wemm 5750ee293d Add a missing part of jhb's previous commit. It looks like he had a
patch chunk rejected that he missed.  This would manifest as a lock
assertion panic at boot (Giant not locked in kern_fork.c).

Obtained from:  jhb
2004-03-06 00:44:59 +00:00
John Baldwin 6074439965 kthread_exit() no longer requires Giant, so don't force callers to acquire
Giant just to call kthread_exit().

Requested by:	many
2004-03-05 22:42:17 +00:00
John Baldwin 12dd6da62c Lock Giant around the body of the adlink_loran() function used by the
adlink device kthreads.
2004-03-05 22:41:22 +00:00
John Baldwin 4ae89b957c - Push down Giant in exit() and wait().
- Push Giant down a bit in coredump() and call coredump() with the proc
  lock already held rather than unlocking it only to turn around and
  relock it.

Requested by:	peter
2004-03-05 22:39:53 +00:00
John Baldwin 8144e3b884 Lock Giant around the single threading code in exec() to satisfy an
assertion in the single threading code.
2004-03-05 22:38:26 +00:00
John Baldwin 5ce2f67858 - Grab a share lock of the proctree lock while looking for a pid due to the
process group and session dereferences.  Also, check that p_pgrp and
  p_sesssion are NULL before dereferencing them.
- Push down Giant in fork1().

Requested by:	peter
2004-03-05 22:37:32 +00:00
Don Lewis 169299398a Undo the merger of mlock()/vslock and munlock()/vsunlock() and the
introduction of kern_mlock() and kern_munlock() in
        src/sys/kern/kern_sysctl.c      1.150
        src/sys/vm/vm_extern.h          1.69
        src/sys/vm/vm_glue.c            1.190
        src/sys/vm/vm_mmap.c            1.179
because different resource limits are appropriate for transient and
"permanent" page wiring requests.

Retain the kern_mlock() and kern_munlock() API in the revived
vslock() and vsunlock() functions.

Combine the best parts of each of the original sets of implementations
with further code cleanup.  Make the mclock() and vslock()
implementations as similar as possible.

Retain the RLIMIT_MEMLOCK check in mlock().  Move the most strigent
test, which can return EAGAIN, last so that requests that have no
hope of ever being satisfied will not be retried unnecessarily.

Disable the test that can return EAGAIN in the vslock() implementation
because it will cause the sysctl code to wedge.

Tested by:	Cy Schubert <Cy.Schubert AT komquats.com>
2004-03-05 22:03:11 +00:00
Robert Watson 8cbec0c8dd The roundrobin callout from sched_4bsd is MPSAFE, so set up the
callout as MPSAFE to avoid grabbing Giant.

Reviewed by:	jhb
2004-03-05 19:27:04 +00:00
Nate Lawson 08b994c07e Document a sysctl.
Submitted by:	Craig Rodrigues <rodrigc@crodrigues.org>
2004-03-05 18:08:23 +00:00
Nate Lawson 9db195a8d1 A user can set tz_requested via the hw.acpi.thermal.tzX.active sysctl.
The previous logic meant that if a user sets it to a minimal cooling value
acpi_thermal will not use higher cooling levels.  Reverse the logic so that
the user requesting a level (say, 2) also gets 0 - 1 also.

PR:		kern/61592
Submitted by:	Andrew Thompson <andy@fud.org.nz>
2004-03-05 18:06:31 +00:00
Robert Watson 16df17d062 Put "failed to set signal flags properly for ast()" check under
DIAGNOSTIC instead of INVARIANTS.  INVARIANTS is intended for tests
that don't substantially change code flow or behavior (passive), but
this test required locking both the proc lock and scheduler lock
in order to execute.  It also appears to be a very advisory diagnostic
as opposed to an invariant violation.

Following discussion with:	bde
2004-03-05 17:35:28 +00:00
Bruce Evans 39f0cfa27b Fixed insertion sort errors in prototype list. 2004-03-05 15:30:40 +00:00
Bruce Evans 83f1e7f9f4 Removed garbage:
- completely unused things
- all of rev.1.102 (C++ support).  <sys/cdefs.h> is included by the
  prerequisite <sys/types.h>.  __BEGIN_DECLS/__END_DECLS has no effect
  (except possibly if undefined behaviour is invoked using a hack like
  defining away __inline) since this header doesn't really support any
  extern functions.
2004-03-05 15:22:05 +00:00
Bruce Evans 39dca09ccc MFi386: (all: keep a comment in sync with code, and don't depend on
namespace pollution).
2004-03-05 14:31:21 +00:00
Bruce Evans e8829b6115 Include <machine/psl.h> for the definition of PSL_I instead of depending
on namespace pollution in <machine/cpufunc.h>.
2004-03-05 14:23:13 +00:00
Lukas Ertl 1bcf24ee9d Fix syntax errors and wrong function prototypes in several MD header
files when using non-GNUC compilers.

PR:             kern/58515
Submitted by:   Stefan Farfeleder <stefan@fafoe.narf.at>
Approved by:    grog (mentor), obrien
2004-03-05 09:19:59 +00:00
Mark Murray cc1c3e282a Bump __FreeBSD_version for the NULL == ((void *)0)
Requested by:	kkenn
2004-03-05 08:34:59 +00:00
Mark Murray 16fc3635f7 Make NULL a (void*)0 whereever possible, and fix the warnings(-Werror)
that this provokes. "Wherever possible" means "In the kernel OR NOT
C++" (implying C).

There are places where (void *) pointers are not valid, such as for
function pointers, but in the special case of (void *)0, agreement
settles on it being OK.

Most of the fixes were NULL where an integer zero was needed; many
of the fixes were NULL where ascii <nul> ('\0') was needed, and a
few were just "other".

Tested on: i386 sparc64
2004-03-05 08:10:19 +00:00
David E. O'Brien 5af2e7de06 Document that ENABLE_ALART controls the alarm on Intel intpm driver.
Submitted by:	peter
2004-03-05 08:04:10 +00:00
David E. O'Brien 7b7e363916 VESA* is a mistake - it cannot exist due to requiring a 32 bit kernel for
BIOS calls and/or VM86.

Submitted by:	peter
2004-03-05 07:56:23 +00:00
David E. O'Brien 42044ceee2 Sync with i386/NOTES. 2004-03-05 07:48:47 +00:00
David E. O'Brien 8488391379 Add comment for 'mptable'.
Submitted by:	peter
2004-03-05 07:44:17 +00:00
David E. O'Brien df4d19f52c Note that imp is working on un-shimming this driver, afterwards it should
work on AMD64.
2004-03-05 06:23:08 +00:00
David E. O'Brien 0db5c4ce49 The PECOFF support is 32-bit only.
Reviewed by:	peter
2004-03-05 05:08:22 +00:00
Alan Cox 3b383f0922 In the last revision, I introduced a physical contiguity check that is both
unnecessary and wrong.  While it is necessary to verify that the page is
still free after dropping and reacquiring the free page queue lock, the
physical contiguity of the page can not change, making this check
unnecessary.  This check was wrong in that it could cause an out-of-bounds
array access.

Tested by:	rwatson
2004-03-05 04:46:32 +00:00
David E. O'Brien db396a8e55 PECOFF_* isn't useful for AMD64. 2004-03-05 04:38:58 +00:00
Bill Paul 51d22ccf42 - Some older Atheros drivers want KeInitializeTimer(), so implement it,
along with KeInitializeTimerEx(), KeSetTimer(), KeSetTimerEx(),
  KeCancelTimer(), KeReadStateTimer() and KeInitializeDpc(). I don't
  know for certain that these will make the Atheros driver happy since
  I don't have the card/driver combo needed to test it, but these are
  fairly independent so they shouldn't break anything else.

- Debugger() is present even in kernels without options DDB, so no
  conditional compilation is necessary (pointed out by bde).

- Remove the extra km_acquirecnt member that I added to struct kmutant
  and embed it within an unused portion of the structure instead, so that
  we don't make the structure larger than it's defined to be in Windows.
  I don't know what crack I was smoking when I decided it was ok to do
  this, but it's worn off now.
2004-03-04 23:04:02 +00:00
Poul-Henning Kamp 7896170112 Implement a crude but functional usbd_ratecheck() to limit the number
of "usb0: %d scheduling overruns" messages I have to contend with.
2004-03-04 20:49:03 +00:00
Søren Schmidt c5df0d743e Only setup sii_reset on sii311[24]. 2004-03-04 16:39:59 +00:00
Thomas Quinot 71fe368a83 Use auto-sense data provided by the lowlevel ATA code. 2004-03-04 15:37:39 +00:00
Hajimu UMEMOTO e1c8270fe7 move in6_addmulti()/in6_delmulti() into mld6.c
Obtained from:	KAME
2004-03-04 15:07:42 +00:00
Bruce M Simpson 5f5a4d72d6 Nursemaid: Fix tinderbox builds by removing the shadowing of the global
preprocessor macro DEBUG. DEBUG() -> CTAU_DEBUG().
2004-03-04 14:16:12 +00:00
Poul-Henning Kamp 1e0e79c993 Just because the timecounter reads the same value on two samples
after each other doesn't mean that nothing happened.
2004-03-04 14:14:23 +00:00
Hajimu UMEMOTO d483b7825e missing splx().
Obtained from:	KAME
MFC after:	3 days
2004-03-04 12:08:25 +00:00
Bruce Evans 623089f4ee Fixed the XXX'ed namespace pollution in rev.1.54 by using
<machine/limits.h> and __CHAR_BIT instead of <sys/limits.h> and CHAR_BIT.
some reason I didn't use the BSD spelling NBBY.
2004-03-04 11:35:30 +00:00
Bruce Evans 47e600b575 Don't manually optimize for 20 year old compilers by casting to u_int
to get a free check for negative ints.  Rev.1.35 got my request to
remove the cast mostly backwards.
2004-03-04 11:20:02 +00:00
Bruce Evans 92babce456 Fixed some style bugs (mainly misformatting, and pointers to `struct thread'
named p).
2004-03-04 11:11:59 +00:00
Bruce Evans 9e7514ca3a Fixed insertion sort errors in includes and prototypes. This was more
than a style bug for the includes -- queue.h is a prerequisite for
_lock.h and _mutex.h but was included after them.

Removed bogus prototype for fget_locked().  The prototype was originally
needed to support K&R but was bogotified by converting the function header
to new-style.
2004-03-04 10:56:29 +00:00
Pawel Jakub Dawidek 32d7144dbc Correct year in copyrights. 2004-03-04 10:22:42 +00:00
Bruce Evans 61ecb14af6 Record exactly where this file was copied from. It wasn't repo-copied so
this is not very obvious.

Fixed some style bugs (mainly missing parentheses around return values).
2004-03-04 10:18:17 +00:00
Bruce Evans c8564ad433 Fixed some style bugs (mainly English usage errors in comments). 2004-03-04 09:56:29 +00:00
Bruce Evans 01e3f3ae4f Fixed some style bugs (mainly misplaced comments, and totally disordered
declarations in acct_process()).
2004-03-04 09:47:09 +00:00
Bruce Evans dcbcd518e0 Minor style fixes. In vm_daemon(), don't fetch the rss limit long before
it is needed.
2004-03-04 09:36:46 +00:00
MIHIRA Sanpei Yoshiro d7bd2883ec Sync to 1.165 of usbdevs 2004-03-04 07:22:30 +00:00
MIHIRA Sanpei Yoshiro a439ea6c55 Add support SimpleTech UCF-100 USB CompactFlash reader(OnSpec Electronic, Inc.)
PR:		kern/63619
Submitted by:	Greg Rivers <gcr@sa.fedex.com>
MFC after:	1 week
2004-03-04 07:20:48 +00:00
Nate Lawson 4ed391b8d7 Fix an off-by-one error and rework our EC space handler. Writing to address
0xFF would fail previously as AE_BAD_PARAMETER.  It's unknown if this caused
any actual problems.
2004-03-04 05:58:50 +00:00
Nate Lawson d64168a5a2 Part 2 of Project Evil: Pretend to be Windows 2000 for buggy ASL that
always expects to be running on some MS OS.  A survey of ASL shows that
this is the 2nd most common expected OS value.  (1st is Win98 and we don't
emulate its buggy ACPI support.)  Our ACPI support is similar to Win2k,
also.  Put this behavior under ACPICA_PEDANTIC so we can get back to our
previous behavior for OSV testing.
2004-03-04 05:57:41 +00:00
Nate Lawson c181b89bc1 Don't disable Cx support and throttling on machines with a P_BLK_LEN != 6
even though the spec mandates this.  Some have a value of 5 to indicate
throttling + C2 and some have 7 to indicate an extra C3 state.  Support
throttling if the value is >= 4, C2 for >= 5, and C3 for >= 6.
2004-03-04 05:17:52 +00:00
Nate Lawson 4e376d58dc Add a "quirks" value to disable quirks handling for a given boot.
Also, disable quirks if booting with a custom DSDT.  Add a quirk
to disable loading ACPI so known bad systems can be completely
blacklisted.
2004-03-04 04:42:59 +00:00
Alan Cox 45ad3d59ed Remove some long unused definitions. 2004-03-04 04:26:14 +00:00
Robert Watson 0b759971a2 Remove unneeded label 'done2' from socket(). We now grab Giant
only around socreate(), and don't need it for file descriptor
accesses.

Submitted by:	sam
2004-03-04 01:57:48 +00:00
Bill Paul a787e5ecf8 Add sanity checks to the ndis_packet and ndis_buffer pool handling
routines to guard against problems caused by (possibly) buggy drivers.

The RealTek 8180 wireless driver calls NdisFreeBuffer() to release
some of its buffers _after_ it's already called NdisFreeBufferPool()
to destroy the pool to which the buffers belong. In our implementation,
this error causes NdisFreeBuffer() to touch stale heap memory.

If you are running a release kernel, and hence have INVARIANTS et al
turned off, it turns out nothing happens. But if you're using a
development kernel config with INVARIANTS on, the malloc()/free()
sanity checks will scribble over the pool memory with 0xdeadc0de
once it's released so that any attempts to touch it will cause a
trap, and indeed this is what happens. It happens that I run 5.2-RELEASE
on my laptop, so when I tested the rtl8180.sys driver, it worked fine
for me, but people trying to run it with development systems checked
out or cvsupped from -current would get a page fault on driver load.

I can't find any reason why the NDISulator would cause the RealTek
driver to do the NdisFreeBufferPool() prematurely, and the same driver
obviously works with Windows -- or at least, it doesn't cause a crash:
the Microsoft documentation for NdisFreeBufferPool() says that failing
to return all buffers to the pool before calling  NdisFreeBufferPool()
causes a memory leak.

I've written to my contacts at RealTek asking them to check if this
is indeed a bug in their driver. In the meantime, these new sanity checks
will catch this problem and issue a warning rather than causing a trap.
The trick is to keep a count of outstanding buffers for each buffer pool,
and if the driver tries to call NdisFreeBufferPool() while there are still
buffers outstanding, we mark the pool for deletion and then defer
destroying it until after the last buffer has been reclaimed.
2004-03-04 00:17:14 +00:00
Dag-Erling Smørgrav 86b5e56351 Use different dummy wait channels to avoid panic in msleep().
Reviewed by:	jhb
2004-03-03 23:03:18 +00:00
Pawel Jakub Dawidek a88ae49f98 - Remove d_valid field, we can use d_consumer field to check if disk
is valid.
- Use SYSCTL_DECL() instead of using own, ugly extern.
2004-03-03 22:29:24 +00:00
Nate Lawson c310653ea1 Change to acpi_{Get,Set}Integer to provide both methods. Convert all
callers to the new API.

Submitted by:	Mark Santcroos <marks@ripe.net>
2004-03-03 18:34:42 +00:00
Bill Paul db2585fd12 Add proper support for DbgPrint(): only print messages if bootverbose
is set, since some drivers with debug info can be very chatty.

Also implement DbgBreakPoint(), which is the Windows equivalent of
Debugger(). Unfortunately, this forces subr_ntoskrnl.c to include
opt_ddb.h.
2004-03-03 17:57:05 +00:00
Hajimu UMEMOTO 59aecc9631 - stlye and comments
- variable name change (scopeid -> zoneid)
- u_short -> u_int16_t, u_char -> u_int8_t

Obtained from:	KAME
2004-03-03 14:33:16 +00:00
Roman Kurakin 1d9c6a4865 Add ctau (Cronyx/Tau-ISA) device driver entry.
Approved by:	imp (mentor)
2004-03-03 12:43:59 +00:00
David E. O'Brien 54262acde3 Add rules for font.h atkbdmap.h ukbdmap.h so more of LINT can be built. 2004-03-03 09:37:44 +00:00
David E. O'Brien ed76d84fb1 Add missing working options from i386 file. 2004-03-03 09:35:47 +00:00
David E. O'Brien 4338438bf3 Lower i386's INLINE_LIMIT to AMD64's level. 2004-03-03 09:35:06 +00:00
David E. O'Brien 5af0827e0f mga_state & r128_state need an inline-limit larger than amd64's default
in order to compile.  AMD64's default could be reduced below 8k, if
dev/aic7xxx/aic79xx.c got this same treatment.
2004-03-03 09:33:03 +00:00
David E. O'Brien 5b9bfb42f9 Sync with i386/NOTES rev. 1.1131. 2004-03-03 09:26:40 +00:00
David E. O'Brien 3dae0ce68f Peter prefers it this way, bde might also[*]. I just want to have a chance
of working on amd64 for vmware use.
[*] bde will probably not like either version...
2004-03-03 08:33:34 +00:00
David E. O'Brien d92dc3946d Prefer uintptr_t to intptr_t. 2004-03-03 08:27:33 +00:00
David E. O'Brien dd921920ee Use a long as the opaque type so that it matches the size of a pointer
on both 32-bit and 64-bit platforms.
2004-03-03 08:24:31 +00:00
Scott Long c80a90c51f Change __FUNCTION__ to __func__
Submitted by:	Stefan Farfeleder
2004-03-03 07:43:34 +00:00
Scott Long e38ea2819f Finish the removal of the 'nv' device reference. 2004-03-03 07:16:42 +00:00
David E. O'Brien 1a092ee3b8 Opps, nv(4) isn't committed yet. Comment out. 2004-03-03 07:09:40 +00:00
David E. O'Brien e81bb67370 AMD64 versions. 2004-03-03 07:00:48 +00:00
David E. O'Brien 13545b10a4 Adjust lnc(4) for 64-bit platforms should it get newbus'ified. 2004-03-03 06:54:26 +00:00
David E. O'Brien a9653b1cc3 Adjust ed(4) for 64-bit platforms should it get newbus'ified. 2004-03-03 06:48:42 +00:00
David E. O'Brien 77b72a2216 Use a long as the opaque type so that it matches the size of a pointer
on both 32-bit and 64-bit platforms.
2004-03-03 06:20:36 +00:00
David E. O'Brien 37580b343a Add memory barrier routines for AMD64. 2004-03-03 06:19:03 +00:00
David E. O'Brien 5ec0232d34 Cast thru intptr_t on the way to void* for success on 64-bit platforms. 2004-03-03 06:18:29 +00:00
Nate Lawson 2a5644e928 Finish fixing style problems in my previous commit.
Pointed out by: 	bde
2004-03-03 05:51:48 +00:00
Nate Lawson 6d0267157c This commit was generated by cvs2svn to compensate for changes in r126520,
which included commits to RCS files with non-trunk default branches.
2004-03-03 05:47:09 +00:00
Bruce Evans 18b6a3bf87 In the descrption of network interfaces:
- use consistent formatting (no tabs)
- improved wording for cx and oltr.
2004-03-03 05:26:03 +00:00
Nate Lawson 3184cf5a6b Add support for quirks for acpi tables. Key off OEM vendor and revision.
Sort acpi debug values.  Change "disable" to "disabled" to match rest of
the kernel.  Remove debugging from acpi_toshiba since it was only used for
probe/attach.
2004-03-03 03:02:17 +00:00
Max Laier b81dae751b Add some missing DUMMYNET_UNLOCK() in config_pipe().
Noticed by:	Simon Coggins
Approved by:	bms(mentor)
2004-03-03 01:33:22 +00:00
Max Laier 43eb694abc Move PFIL_HOOKS and ipfw past the scope checks to allow easy redirection to
linklocal.

Obtained from:	OpenBSD
Reviewed by:	ume
Approved by:	bms(mentor)
2004-03-02 20:29:55 +00:00
Poul-Henning Kamp 9ed40643ea Make swapbacked md(4) devices respect the -x and -y emulation arguments. 2004-03-02 20:13:23 +00:00
David E. O'Brien 0a5df651a6 Whitespace fixes. 2004-03-02 19:15:13 +00:00
Peter Wemm ed1b77af8c Add new Matrix Orbital LCD panel id's so that they are recognized and
attached via uftdi->ucom.
2004-03-02 19:03:26 +00:00
Peter Wemm ec88698685 Regen 2004-03-02 19:01:56 +00:00
Peter Wemm 2c711f0694 Add some device id's for Matrix Orbital's newer LCD panels. These use
another ftdi usb->serial bridge with different ID's.
2004-03-02 19:01:30 +00:00
Roman Kurakin 749ffe1842 1. Add modules makefile for Cronyx Tau/ISA driver (ctau).
Approved by: imp (mentor)
2004-03-02 16:51:34 +00:00
Roman Kurakin 3551b5825e 1. Connect Cronyx Tau/ISA driver (ctau) to kernel.
Approved by: imp (mentor)
2004-03-02 16:48:19 +00:00
Roman Kurakin 232c8325ba 1. Fix compilation and panic while system boot problem after makedev was
changed to unde2dev.

Approved by: imp (mentor)
2004-03-02 16:44:07 +00:00
Roman Kurakin 752aeaf074 1. Renames NCT constant to NCTAU. This will help while MFC to 4 branch.
2. Fix compilation and panic while system boot problem after makedev
was changed to unde2dev.

Approved by: imp (mentor)
2004-03-02 16:39:40 +00:00
Søren Schmidt f0aafe7d84 If being verbose in the autosense code, print the original error. 2004-03-02 16:16:54 +00:00
Hajimu UMEMOTO 48850f2977 scope awareness of ff01:: is not merged, yet. So, clear
embeded form of scopeid for ff01:: for now.

Pointed out by:	mlaier
2004-03-02 16:01:27 +00:00
John Baldwin efac7951fe Always assert that the passed in lock is the same as the saved lock in the
sleep queue now that the one abnormal case has been fixed.
2004-03-02 15:02:08 +00:00
John Baldwin 959c0c4122 Correct handling of PDROP in msleep() to just skip the mtx_lock() rather
than clear the lock pointer so that sleepq_add() still gets the correct
lock pointer and doesn't bogusly trip an assertion.
2004-03-02 14:58:33 +00:00
Max Laier 4672d81921 Two minor follow-ups on the MT_TAG removal:
ifp is now passed explicitly to ether_demux; no need to look it up again.
Make mtag a global var in ip_input.

Noticed by:	rwatson
Approved by:	bms(mentor)
2004-03-02 14:37:23 +00:00
Søren Schmidt 37baea5bd5 Report the original command on failures that causes auto sense.
Keep the ATA_R_QUIET flag if set during autosense.
2004-03-02 14:05:12 +00:00
Søren Schmidt c4c0e4fc3b Fix getting progress data for some device in yet another way.
Take advantage of the new autosense logic.
2004-03-02 14:03:43 +00:00
Alan Cox ca3b447732 Modify contigmalloc1() so that the free page queues lock is not held when
vm_page_free() is called.  The problem with holding this lock is that it is
a spin lock and vm_page_free() may attempt the acquisition of a different
default-type lock.
2004-03-02 08:25:58 +00:00
Peter Grehan 4daf20b2f1 Increase kernel VA from 256Mb to 512Mb by shifting the segment used
for user copyinout down to 12, and keeping segments 13/14 for
kernel VA.

It would be nice to have more available, but segments lower than
this are reserved for either memory or 1:1 mapped device i/o,
and seg 15 is OpenFirmware ROM. Also, the effort to keep OpenFirmware
available for callbacks limits the use of VA-mapped segments.
Fortunately UMA_MD_SMALL_ALLOC takes away a lot of VM pressure.

Obtained from:  NetBSD
2004-03-02 06:49:21 +00:00
Peter Grehan 919cb3362f Kernel changes for libthr (and probably libpthread).
include/ucontext.h
 - remove trapframe and switch over to 'generic' description of machine
   state. Include version field to help with future modifications.
   Include floating point and altivec state, and hopefully align
   correctly

powerpc/copyinout.c
 - fill out casuptr() sync primitive, required by kern_umtx.c

powerpc/machdep.c
 - shifted proc0/thread0/pcpu setup to before cninit, since
   syscons -> make_dev -> devlock requires a valid curthread
 - implemented get_mcontext/set_mcontext
 - recast sendsig/sigreturn to use get/set_mcontext and new
   ucontext struct. floating point now saved
 - TODO: save/restore altivec state

powerpc/vm_machdep.c
 - implemented cpu_thread_setup/cpu_set_upcall/cpu_set_upcall_kse
 - eliminated trailing whitespace

Submitted by:  Suleiman Souhlal <refugee@segfaulted.com>, ucontext by grehan
2004-03-02 06:13:09 +00:00
Julian Elischer 8fc8ef2efe When we get a packet error, move on, don't go into an infinite loop
looking at it.

fixes at least one cause of "hanging" due to this driver.
2004-03-02 05:43:42 +00:00
Julian Elischer f2b1c1580a Whitespace changes to match rest of file.. 2004-03-02 01:46:34 +00:00
John Baldwin 707559e402 Check for TDF_SINTR before calling sleepq_abort() as there is a narrow
race in between sleepq_add() and sleepq_catch_signals() in that setting
td_wchan and TDF_SINTR is not atomic to sched_lock but only to the sleepq
lock.  This band-aid will stop assertion failures, but there is perhaps a
larger problem with the sleepq_add/sleepq_catch_signals race that I am not
sure how to solve.  For the signals case the race is harmless because we
always call cursig() after setting TDF_SINTR.  However, KSE doesn't do
anything in sleepq_catch_signals() to check that this race was lost, so I
am unsure if this race is harmful for this specific abort.
2004-03-01 23:07:58 +00:00
Robert Watson 6200a93f82 Rename NET_PICKUP_GIANT() to NET_LOCK_GIANT(), and NET_DROP_GIANT()
to NET_UNLOCK_GIANT().  While they are used in similar ways, the
semantics are quite different -- NET_LOCK_GIANT() and NET_UNLOCK_GIANT()
directly wrap mutex lock and unlock operations, whereas drop/pickup
special case the handling of Giant recursion.  Add a comment saying
as much.

Add NET_ASSERT_GIANT(), which conditionally asserts Giant based
on the value of debug_mpsafenet.
2004-03-01 22:37:01 +00:00
Poul-Henning Kamp 305d4ab105 Move the "fast" but unused eventhandlers to pasture. They're in the
CVS repo should we ever need them.

Objected to by:
2004-03-01 22:36:58 +00:00
Scott Long a770030306 Change another pointer name that was missed in the previous commit.
Spotted by:	njl
2004-03-01 21:45:49 +00:00
Scott Long d488190531 Check and free the actual pointer the was used in a malloc instead of
checking and freeing a different pointer that may or may not have been
assigned the same value.  This should fix panics under load that were
recently reported.
2004-03-01 21:27:14 +00:00
Ken Smith ea753400f0 The previous commit fixed -current on alpha for machines with
serial console connections but not graphical consoles.  This fixes the
graphical console machines.  It leaves the initial promcons console
driver in place until a bit later in the boot sequence, delaying the
switch to the device drivers more appropriate for the machine's real
console setup.  Note we still need the delayed make_dev() for promcons,
it does not have a proper bus interface so unlike other console drivers
it will not be found later during normal device discovery.

Tested by:			sepotvin <at> videotron <dot> ca
Root cause explained by:	grehan (-current)
Approved by:			rwatson (mentor)
2004-03-01 19:19:15 +00:00
Hajimu UMEMOTO 04d3a45241 fix -O0 compilation without INET6.
Pointed out by:	ru
2004-03-01 19:10:31 +00:00
Dag-Erling Smørgrav 949112b2e5 While I'm here, add linprocfs (but not pseudofs, since it is no use on
its own)
2004-03-01 18:42:16 +00:00
Dag-Erling Smørgrav ff4e0229f4 Add acpi_video_load (default NO) in the ACPI section 2004-03-01 18:13:00 +00:00
Pawel Jakub Dawidek db33b1c4d0 Removed unused fields. 2004-03-01 17:33:11 +00:00
Pawel Jakub Dawidek 03816084de We don't need d_length field. 2004-03-01 17:32:48 +00:00
Ruslan Ermilov 407ea29095 Netgraph node type for IEEE 802.1Q VLAN tagging. 2004-03-01 17:22:16 +00:00
Hajimu UMEMOTO cfcea11979 - reject incoming packets to an interface-local multicast address from
the wire.
- added a generic scope check, and removed checks for loopback src/dst
  addresses.

Obtained from:	KAME
2004-03-01 15:34:29 +00:00
Søren Schmidt e7c9858a8f Remember to mtx_destroy mutexes. 2004-03-01 13:17:07 +00:00
Nate Lawson 355ff5fe33 Hook acpi_video up to the build. 2004-03-01 08:15:26 +00:00
Nate Lawson c58375c3a5 Add the ACPI standard video extensions driver. I've done some style cleanup
but a bit more reamins to be done.  For now, it is usable.

Submitted by:	Taku YAMAMOTO <taku@cent.saitama-u.ac.jp>
2004-03-01 08:12:56 +00:00