Commit Graph

87306 Commits

Author SHA1 Message Date
macallan 02be3c78f3 add WSDISPLAY_TYPE_GENFB 2007-04-11 04:09:10 +00:00
matt 4e8374bdef Workaround a gcc 4.1 issue. don't use s.m = s2.m = s3.m = ...
assign them individually.
2007-04-11 02:22:36 +00:00
jmcneill ab47cb33cd Add SGI MACE ps2 keyboard/aux controller driver. ok rumble@
XXX can someone confirm that we can remove pckbc_mace?
2007-04-10 23:44:10 +00:00
dsl 74df11d186 Save a byte from the mbr code (by using lret not ljmp). 2007-04-10 16:54:34 +00:00
dsl e38a76cc13 Change the default 'oemname' from NetBSD20 to NetBSD40 2007-04-10 16:50:25 +00:00
ad c7f468e608 turnstile_wakeup: when restoring inherited priority, only lock curlwp
if its lock is sched_mutex. We can arrive here while on a sleep queue
(from eg cv_wait) and so curlwp will already be locked.
2007-04-10 13:11:08 +00:00
bouyer 1fde203078 Fix build on 32bit ports; should fix GENERIC_DIAGNOSTIC build problem reported
by Hisashi T Fujinaka on current-users.
2007-04-10 12:18:26 +00:00
bouyer 3b515a1a65 Fix previous: don't AcpiOsFree() twice if the device is valid. 2007-04-10 12:15:27 +00:00
macallan 43b2c2b989 include files.wsfb 2007-04-10 02:50:32 +00:00
macallan 2644a249ac include files.wsfb 2007-04-10 02:40:16 +00:00
macallan cd8fb15721 include files.wsfb 2007-04-10 02:29:42 +00:00
macallan d4ddadbf9d include files.wsfb 2007-04-10 02:19:03 +00:00
macallan 13daabb045 move genfb's PCI frontend to dev/pci 2007-04-10 02:16:47 +00:00
macallan 66d86be89a - move all memory mapping into the bus frontend
- get rid of macppc-isms like *_mmap() returning physical addresses
2007-04-10 00:14:42 +00:00
macallan 4ab018673b turn the other 'void region' message into aprint_debug() as well 2007-04-10 00:11:21 +00:00
macallan 2a048288e1 demote 'pci_io_find: void region' to aprint_debug() 2007-04-10 00:05:16 +00:00
gdt 3bcadc1a8e revert putpages part of last change. Thanks to pooka@ for pointing
out that the v_interlock in the previous code and v_uobj.vmobjlock are
really the same thing.
2007-04-09 21:38:18 +00:00
pooka f3fbb884a5 If mount(MNT_UPDATE) is called for a non-VROOT directory, don't vput()
the "mountpoint" vnode twice due to an error branch.

thanks go to Gert Doering for reporting the problem and testing the fix
and to Juergen Hannken-Illjes for much of the analysis work leading to
the discovery of the problem cause
2007-04-09 21:11:03 +00:00
degroote 0c3809d098 Fix a memleak in key_spdget.
Problem was reported by Karl Knutsson by pr/36119.
2007-04-09 21:07:03 +00:00
bouyer 0c0eb2bdf5 RX buffers are malloced memory of 9216 bytes. This can require from 1 to
4 DMA memory segments, depending on how the buffer is in memory.
When receiving a packet, we allocate a new one to remplace the one we've
used. It can need more segments than the one it remplace, leading to
corrution of the RX descriptors, and a panic in bus_dmamap_sync() (DIAGNOSTIC
kernels) or possibly memory corruption.

Fix:
- bnx_get_buf() allocates as many buffer as possible, checking the number
  of free RX descriptors. Because one receive buffer is not guaranteed to
  be remplaced on receive, call bnx_get_buf() from bnx_tick() too.
  This also improve error handling from bnx_get_buf().
- use MCLGET() instead of MEXTMALLOC() if we're running with the standard
  ethernet MTU. This gives us more receive buffers and waste less memory.
2007-04-09 19:34:50 +00:00
garbled 770da6e167 Fix the other instance of SR601_PA_MATCH_P in this file (the unmap case) too. 2007-04-09 17:43:40 +00:00
matt e3a731cab5 Enable builtin_ffs for vax 2007-04-09 17:39:37 +00:00
garbled 23ec4fc854 When testing if something from the iosrtable is valid, don't call
SR601_PA_MATCH_P(), because that macro assumes the io region you are
mapping lies within the 32-bit address space addressable by the CPU,
which might not allways be the case.
2007-04-09 17:39:31 +00:00
garbled 22e3ca58a3 Make the SR601_VALID_P check less draconic wrt valid io segregs. There
are perfectly valid iosegregs for which the old test would fail.
2007-04-09 17:35:14 +00:00
chris 61799e8a82 In pmap_activate restore interrupts to their previous state rather than
always enabling them.

It's not clear if this actually caused any problems, but it seems safer
to restore to the previous state in case pmap_activate is ever called
with interrupts disabled.
2007-04-09 16:05:41 +00:00
gdt c2f4bcfa32 regen
(changes in RCS Ids only)
2007-04-09 15:00:42 +00:00
gdt bf25020786 vop_link: reorder commented arguments to match actual calling order
(dvp, vp).

ok wrstuden@
2007-04-09 14:58:28 +00:00
bouyer a17f6ef0b7 Protect bnx_tick() with splnet.
Bring in fixes and improvements from OpenBSD:
revision 1.25
- Simplify the arguments to bnx_tx_encap.
- Don't copy the bd_chain head pointers into temporary objects, they are
available globally.

From scottl@FreeBSD

revision 1.26
Overhaul the transmit path:
- Eliminate the bnx_dmamap_arg structure.
- Refactor the loop that fills the buffer descriptor so that it can be done
with a single set of logic in a single loop instead of two sets of logic.
- Eliminate the need to cache and pass descriptor indexes between the start
loop and the encap function.
- Change the start loop to always check the ifnet sendq for more work.

From scottl@FreeBSD

revision 1.27
make the exit label naming scheme match the current function names, removes
a FreeBSD-ism from the original driver.

revision 1.28 -> 1.30
- Ensure that at least 16 TX descriptors are kept unused in the ring.
- Use more complete error handling for TX load problems.

From scottl@FreeBSD

revision 1.31
replace a few more instances of hand rolled code with the LIST_FOREACH macro.

revision 1.33
In bnx_start, check the used_tx_bd count rather than the descriptors
mbuf pointer to see if the transmit ring is full.  The mbuf pointer
is set only in the last descriptor of a multi-descriptor packet.
By relying on the mbuf pointers of the earlier descriptors, the
driver would sometimes overwrite a descriptor belonging to a
packet that wasn't completed yet.  Also, tx_chain_prod wasn't
updated inside the loop, causing the wrong descriptor to be checked
after the first iteration.  The upshot of all this was the loss of
some transmitted packets at medium to high packet rates.

In bnx_tx_encap, remove a couple of old statements that shuffled
around the tx_mbuf_map pointers.  These now correspond 1-to-1 with
the transmit descriptors, and they are not supposed to be changed.

Correct a couple of inaccurate comments.

From jdp@FreeBSD

revision 1.43
Allow the bnx(4) driver to make use of all of the available hardware
multicast hash slots. The bnx(4) hardware supports 8 slots instead of
4 like the bge(4) hardware.

From Mike Karels via FreeBSD

Tested by Brad, biorn@ and Johan M:son Lindman
2007-04-09 14:23:03 +00:00
pooka bc8224a1b3 fix comment: struct fid is in fstypes.h now 2007-04-09 12:21:24 +00:00
bouyer 5673f3baf8 Properly skip inactive devices; avoids a panic in pci_make_tag() later.
Thanks to cube@ for the idea.
An ACPI kernel can now boot on a poweredge 2950.
2007-04-08 21:35:21 +00:00
gdt 5fa91a46b1 Remove cruft. Update to current reality. 2007-04-08 13:50:51 +00:00
hannken fc6776f366 Remove now obsolete vn_start_write() and vn_finished_write() and
corresponding flags.

Revert softdep_trackbufs() to its state before vn_start_write() was added.

Remove from struct mount now unneeded flags IMNT_SUSPEND* and
members mnt_writeopcountupper, mnt_writeopcountlower and mnt_leaf.

Welcome to 4.99.17
2007-04-08 11:20:42 +00:00
scw 5764a76889 Remove support for NetBSD/{,evb}sh5. 2007-04-08 09:35:21 +00:00
dyoung c81bbe837f Include opt_ata.h for ATADEBUG definition instead of #defining it
unconditionally.

Make this compile when ATADEBUG is not #defined.
2007-04-08 06:59:43 +00:00
dyoung d424839018 Include opt_ata.h for ATADEBUG definition instead of #defining it
unconditionally.
2007-04-08 06:58:47 +00:00
matt cf078da5bb Use the ffs builtin in gcc4.1 2007-04-08 03:11:31 +00:00
gdt 8f39b4fdf8 Further cleanups on coda vnode handling.
Re-enable mmap.  The problem is how uvm_fault handles page faults from
coda vnodes via container files, and executing a program caused the
same problem so disabling mmap only helped cp(1).

coda_open:
  rename variables to match vnode_if.src
  better comments about lock/reference state of vnodes
  keep lock on container file until after VOP_OPEN, which requires locked vp
  remove #if 0'd code to PNBUF_PUT

coda_link:
  rename variables to match vnode_if.src
  error out early if vp == dvp
  check return value on vn_lock, and add comment questoining the lock
  clarify lock handling, but unchanged logic
  remove #if 0'd code to PNBUF_PUT

coda_rmdir:
  error out early if vp == dvp
  remove #if 0'd code to PNBUF_PUT

coda_grab_vnode:
  add comments, and in particular question undocumented VFS_VGET semantics

coda_getpages:
  question calling VOP_OPEN, which requires a locked vnode, with the
  vnode we got (vop_getpages does not guarantee a locked vnode)

coda_putpages:
  remove inexplicable simple_unlock(&vp->v_interlock);
  add printf so we notice if this is ever called

  add comment explaining that the implementation will lead to trouble,
  because vnode_if.src says putpages is called with v_uobj.vmobjlock
  held and is supposed to unlock it

With these changes and an uncommitted change to uvm_fault not to panic
if uvm objects are not equal, coda seems stable again.
2007-04-08 00:21:59 +00:00
hannken e956461048 Remove calls to now obsolete vn_start_write() and vn_finished_write(). 2007-04-07 15:06:53 +00:00
hannken 11601689e7 Remove calls to now obsolete vn_start_write() and vn_finished_write(). 2007-04-07 14:21:52 +00:00
skrll 5790e46e8b Correct a comment. 2007-04-07 09:02:50 +00:00
skrll 406c4f0d55 de-__P()
s/lwp/l/ for argument name in pmap_deactivate.
2007-04-07 09:02:07 +00:00
skrll 693a79edd7 Add ldcw as a store instruction. From OpenBSD. 2007-04-07 08:38:28 +00:00
skrll 6e5bbbab10 de-__P() 2007-04-07 08:37:49 +00:00
skrll d8db1d193c de-__P() and whitespace. 2007-04-07 08:36:49 +00:00
skrll fe255bdc71 Whitespace. 2007-04-07 08:35:52 +00:00
skrll 101cbda361 Typo. From OpenBSD. 2007-04-07 08:35:13 +00:00
skrll 3581d4c55c Improve EXIT and add a BSS macro. From OpenBSD.
Implement WARN_REFERENCES.
2007-04-07 08:34:17 +00:00
macallan 4cf8aa1d7f add genfb, a generic framebuffer console driver that's configured via
device properties - all it needs is width and height in pixels, stride in
bytes, depth in bits and the framebuffer address.
Features:
- unaccelerated fb console with colours and virtual consoles
- split into console handling and bus frontend
- so far there is only a PCI bus frontend which allows to mmap BARs belonging
  to the graphics controller, others should be easy to add.

TODO:
- find an opaque way to change the palette ( probably pass a function
  pointer as property ) since this would need to call some firmware interface
  which is pretty much always MD
- find a clean way to mmap the framebuffer, just returning the physical
  address works on macppc but not on other architectures. Problem is, that
  we cannot rely on the address being a bus address - on macppc it is,
  but for instance on sparc64 it's not.
2007-04-07 03:41:26 +00:00
gdt 8830bbca9f Disable mmap for coda. When copying a file from coda to normal ffs, I
got a panic in uvm_fault from ffs_write.  I believe this is because cp
used mmap, the container file page was not in core, and uvm_fault
objected to the container file vnode and the coda vnode not matching.
I have long been plagued by crashes on cp from coda, and this was the
first time I got and understood a backtrace.

Clean up old comments that are no longer accurate.

Document refcounting better.

Note some questionable behaviors with XXX.

Clean up PNBUF_PUT and SAVESTART.  Only do this where vnodeops(9) says
we should, and do it on error also.

In symlink, vput parent and free namebuf even in error cases.
2007-04-06 22:28:12 +00:00
rumble e0d3b63ac3 If we fail to attach, use the size determined by pci_mapreg_map() rather
than a constant, since this will be incorrect on some chips (MPI350) and
lead to a panic.
2007-04-06 18:16:29 +00:00