Commit Graph

40048 Commits

Author SHA1 Message Date
eeh 2ce37274f1 Fix LP64BE bug. 2000-08-15 16:26:42 +00:00
fvdl ce4bcf47f3 Do not call MALLOC with M_WAITOK while holding the "lock". Thanks to
Ethan Solomita for the reminder.

Mark the parent vnode lock as recursive while flushing pagedeps. XXX.
Should fix kern/10564.
2000-08-15 14:25:08 +00:00
thorpej c7b8439ec4 - Make lazy I-sync a little safer -- always mark the pmap as needing
I-sync in pmap_remove_mapping() if the old mapping had PG_EXEC, and
  kick curcpu (IMB) or other CPUs (via an IPI) only if the pmap was
  the kernel pmap or active on other CPUs (curcpu is handled in userret()).
- Use lazy I-sync everywhere, (hopefully) eliminating the last of the
  I-sync issues for multiprocessor support.
- Eliminate some memory barriers added in a couple of previous revisions,
  after some discussion on port-alpha/tech-smp.

Still some lazy I-sync optimization possibilites:
- pmap_changebit() does not need to I-sync when only write-protecting
  a page.
- pmap_asn_alloc() may be able to cancel a pending lazy I-sync when a
  new ASN is allocated.  Need to double check against Green Book or
  Brown Book.
2000-08-15 05:21:20 +00:00
wdk 33016f23e0 * Tidy up interrupt handlers by implementing an intr_establish()
handler to hook up device interrupts and softc callbacks.

   Suggested by:  Jason Thorpe and Toru Nishimura

*  Fixup the indenting in a few places to conform to NetBSD style
2000-08-15 04:56:45 +00:00
wdk 374fb8efbc Decrement the block count to compensate for 64 bytes prefetched to fill
the DMA FIFO on non block aligned writes.   Not doing this causes large
writes (>4k) that are not aligned to incorrectly write 64bytes
of data every 4k interval.   This only occurs on raw devices - typically
newfs fails to create a clean filesystem.
2000-08-14 21:04:44 +00:00
thorpej f10ccf00b1 Remove an unnecessary MB in __cpu_simple_unlock(), per sections
5.3.3 and 5.3.4 of the Green Book, and a discussion w/ cgd@netbsd.org.
2000-08-14 20:28:28 +00:00
thorpej f80d70f19a Just add the mmap argument to vga_common_attach(), don't bother
with vga_extended_attach().
2000-08-14 20:14:50 +00:00
nonaka d07d2e70be Fix link problem. 2000-08-14 17:51:41 +00:00
thorpej b80f38bf8b Issue a memory barrier before clearing a lock, as per section 5.5.3
of the Green Book and a discussion on tech-smp and port-alpha.
2000-08-14 17:18:50 +00:00
thorpej 6b97132ee9 Account for changes to how the SROM is read made some time
ago to the PCI and CardBus front-ends.  Sigh, DE425, the
bastard child, no one pays enough attention...
2000-08-14 14:26:03 +00:00
onoe 7f6e2386a6 Make sure to reset length of data (len) and offset of mbuf (mlen) when
CRC is splitted into two mbufs in receiving.  This fixes panic or hangup
in arc4_encrypt() when WEP is enabled on awi.
2000-08-14 11:28:03 +00:00
ragge d9bb2fc1fa Clear result registers before using them.
Be more informative if unimplemented addressing modes.
2000-08-14 11:16:52 +00:00
kleink 378b9a84c3 At splsoftclock(), don't block softnet but softclock. 2000-08-14 10:09:06 +00:00
kleink 4fddd7dacc * Make spllower()ing functions not return the previous priority level,
as specified in spl(9).
* In due course, ipmlement splx() via spllower().
2000-08-14 09:55:41 +00:00
kleink 1790b00d25 Replace the body of lcsplx() with an open-coded version of spllower()
and return the previous priority level, which is actually expected by
cpu_switch() in order to it be stashed into the PCB.
2000-08-14 08:58:39 +00:00
mjacob ec701021fd Add a maintenance note. Fix QFREE and QAVAIL macros to match change in usage. 2000-08-14 07:12:15 +00:00
mjacob ed05406b77 Add a maintenance note 2000-08-14 07:11:14 +00:00
mjacob b1c18a6bc7 Add a maintenance note. Move the single bit tags of islocked and
onintstack to be real integers. Add ISP_ILOCK/ISP_IUNLOCK macros.

Fix the isp_lock/isp_unlock inlines to stop being so embarrassingly
in error. Why, or why, can't I have mutex_enter/mutex_exit, pretty please?
2000-08-14 07:10:09 +00:00
mjacob 22ef6ec857 Add a maintenance note. Change all splbio's to use the ISP_LOCK/ISP_UNLOCK
or ISP_ILOCK/ISP_IUNLOCK macros.
2000-08-14 07:08:12 +00:00
mjacob 8801250c70 Add a maintenance note. Add a cast to u_int16_t which will keep
Solaris lint && the SUNPro SC5.0 complier happy.
2000-08-14 07:06:50 +00:00
mjacob d7ee06672f Add a maintenance note.
Clarify some startup SCSI mode settings. Insist that the FC f/w options
*must* have ICBOPT_PDBCHANGE_AE set (wasted a half day on this crock).

Make a specific comment in isp_start that the tags being selected for FC
cards, in lieu of any set by the outer layers, are there for safety's sake.
This removes the change from a previous commit.

For the ISP_TOGGLE_TMODE function, do a complete reset, not just an
isp_init (info from Solaris port). Make some cleanup changes for
code clarity.
2000-08-14 07:05:28 +00:00
mjacob d8aef491c1 Add a maintenance note. Add a bus specific isp_sbus_intr function- this is
so we, ahem, note we're on an interrupt stack so we don't try and sleep
on any mailbox commands we might want to run.
2000-08-14 07:00:08 +00:00
mjacob 18e2c3aaad Add a maintenance note. Minor change in some logic in the DMA mapping. 2000-08-14 06:58:45 +00:00
thorpej 86ef3ea256 Clean this up a little bit, and issue a Specific EOI after
dispatching an EISA interrupt.
2000-08-14 05:38:23 +00:00
wdk 1e59559e3e intrcnt[] counters should be handled by the port specific interrupt handlers.
This change facilitates the migration from intrcnt[] to the new evcnt(9)
framework without breaking all of the mips based ports.
2000-08-14 04:36:34 +00:00
thorpej b022657405 Add support for EISA configuration space on the Jensen (it's
mapped differently than on other EISA sysetms).
2000-08-14 02:14:24 +00:00
jhawk 324576262d Fix typo in comment for WI_RID_AUTH_TYPE 2000-08-14 00:44:22 +00:00
itojun 54aeb79d4c supress warning (LOG_ERR -> LOG_DEBUG) which occurs in the following situation:
- manually configure an address from prefix P (like P::1)
- autoconfigure additional address from the same prefix P (like P::ifid).
- rtrequest fails due to P/plen already exists

more fundamental solution should appear later, when kame side stablizes it.
from thopej.
2000-08-13 23:45:22 +00:00
christos cabafb6c60 cast to u_long before casting to u_int to appease lint. 2000-08-13 22:45:01 +00:00
thorpej 5d5752af8b More MP cleanup:
- pmap_zero_page() and pmap_copy_page(): if MULTIPROCESSOR, issue
  a memory barrier after we zero/copy the page, to ensure that
  other CPUs see the correct data.
- XXX Should we use MB, or is WMB good enough?

Also, bzero -> memset, bcopy -> memcpy.
2000-08-13 22:43:42 +00:00
jdolecek cd1db4529e describe more precisely when the keyboard freeze happens 2000-08-13 22:30:19 +00:00
thorpej cdc6dac7f1 More MP cleanup:
- Make sure to do an MB after a PTE is set to a new value, so that
  other processors see it.
- Use lazy I-sync in two pmap_page_protect() and in pmap_changebit(),
  so that it is MP-safe.  XXX Two more places where IMB is used in
  the raw, but they're not in the common path.

There'll be some more lazy I-sync cleanups soon.
2000-08-13 22:30:18 +00:00
augustss de0b1dd11d Go to splhigh() before calling power hooks and maintain this level
while suspended.  When waking up the power hooks are again called at
splhigh() and then the level is lowered.
This prevents interrupts from reaching a device before the power hook
has reinitialized it.
2000-08-13 22:26:27 +00:00
jdolecek 47b371580e make this usable as INSTALL-like kernel suitable for boot floppy
enable supported stuff, add also SCSI devices (only sd* and cd* uncommented)
2000-08-13 21:55:33 +00:00
soren 6f1de2d858 s/dev/obio/ 2000-08-13 19:25:13 +00:00
thorpej f49fa3615c Add some XXXSMP to places were imb is still used in the raw. 2000-08-13 18:41:15 +00:00
thorpej cd04e9fb14 Add MULTIPROCESSOR versions of PMAP_SYNC_ISTREAM_{KERNEL,USER}(). 2000-08-13 18:22:21 +00:00
thorpej 325f9ccafc Add alpha_multicast_ipi(). 2000-08-13 18:20:55 +00:00
augustss ed274219d5 Fix race condition when unlinking xfers. Thanks to IWAMOTO Toshihiro
<iwamoto@sat.t.u-tokyo.ac.jp> for analyzing the problem and suggesting a fix.
Fixes PR 10662.
2000-08-13 18:20:14 +00:00
scw b77bc217e1 Pull a bunch of common code from vme_pcc.c and vme_two.c into
the new mvmebus.[ch] files, and put down some initial code to
deal with VMEbus slave mode.
2000-08-13 17:00:51 +00:00
augustss 4f325f2674 Implement what in Intel-speech is known as "bandwidth reclamation".
It means that we continously poll USB devices that have a pending transfer
instead of polling just once every ms.  This speeds up some transfers
at the expense of using more PCI bandwidth.
2000-08-13 16:18:09 +00:00
bjh21 9d7a3f8ed7 Shuffle debugging code around to make debugging copy{in,out,}str easier. 2000-08-13 12:32:48 +00:00
bjh21 4014c03b26 Replace copyinstr, copyoutstr and copystr with slightly more sensible
assembler versions.
2000-08-13 12:31:26 +00:00
jdolecek 40dc315f3b #if 0 bogus mca_intr_establish() added possibly mistakely
by cgd in rev. 1.2
2000-08-13 10:38:38 +00:00
itojun 85dda25e94 move "options PULLDOWN_TEST" into sys/sys/mbuf.h (in #ifdef _KERNEL),
as it is no wthe default setting for everyone.

the reason we still use the name "PULLDOWN_TEST" while it is now default:
kame code sharing.
2000-08-13 01:31:15 +00:00
mjacob 927f61818e Add "SYMBIOS" processor type to the SDEV_NOLUN category. These are usually
the GEM chips on a Sun D1000- and they cause Qlogic SBus firmware to blow
chunks if you access past lun 0.
2000-08-13 00:03:01 +00:00
augustss ce60088d05 Define ltsleep() in the case of _EXTENT_TESTING so regressions testing
works again.
2000-08-12 23:56:50 +00:00
augustss 8cfcd021bd Take away some, add some. 2000-08-12 23:26:10 +00:00
wdk 3f55a7b9aa Initial commit of port to MIPS Computer Systems RC3xxx systems.
Currently supports the RC3230
2000-08-12 22:57:55 +00:00
thorpej a91e7a7c6d Don't bother with a trampoline to start the pagedaemon and
reaper threads.
2000-08-12 22:41:53 +00:00