Commit Graph

158093 Commits

Author SHA1 Message Date
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
pooka 81cd3e0214 fix another case of checking for return value from wrong variable
(that's what you get when you copypaste code, a cid with a pin
to burst your bubble, that's what you get for all your troubles, I'll
never copypaste again)

CID 4461
2007-04-09 20:59:08 +00:00
pooka fb8082e163 Check for success from correct variable after allocnode()
CID 4460
2007-04-09 20:52:32 +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
ad e8b43103b0 Try to be more concise, and add a bit more text. 2007-04-09 13:37:57 +00:00
pooka bc8224a1b3 fix comment: struct fid is in fstypes.h now 2007-04-09 12:21:24 +00:00
apb e38f02c756 Mention the .../iso directory and explain the difference between
it and the .../${MACHINE}/installation/cdrom directory.  Discussed in
tech-install.
2007-04-09 08:19:54 +00:00
matt 0606d1948b when pic, symbol [ + offset ] + reg is indexed so it's mode dependent.
Make sure we indicate that.  (fixes the as bug)
2007-04-09 03:44:14 +00:00
ad 44815c2f0d Tidy up a bit. 2007-04-08 21:41:21 +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
xtraeme b23843afa1 Add "wd", "sd" and "raid:no_mbr" disks in DISK_NAMES (and xbd:no_mbr,
but it's ignored as there's no support for Xen yet).

From Edgar Fu in PR port-amd64/36116.
2007-04-08 16:47:38 +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
matt 2d3546bb65 Fix a optimize_size problem in the correct (and smaller) manner. 2007-04-08 10:32:42 +00:00
scw 7a03642b56 Note deletion of sh5/evbsh5 port. 2007-04-08 10:04:39 +00:00
scw 596a371d09 Remove a test for defined(__SH5__). 2007-04-08 10:02:35 +00:00
scw bb341c7e41 NetBSD/evbsh5 no longer exists. 2007-04-08 09:58:14 +00:00
scw 93d2ec38c8 "port sh5" is no more, and its hacks have been undone. 2007-04-08 09:57:17 +00:00
scw 23c93d0392 Remove support for NetBSD/{,evb}sh5. 2007-04-08 09:56:02 +00:00
scw cf78539af7 Undo a workaround for an old SH5 toolchain bug.
No functional change.
2007-04-08 09:43:51 +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 9c484b0924 update powerpc/vax status for yamt-idlelwp 2007-04-08 03:53:40 +00:00
matt cf078da5bb Use the ffs builtin in gcc4.1 2007-04-08 03:11:31 +00:00
matt 768e321a24 Switch back to mnegl hi, mnegl lo, sbwc and prevent split_quadword_operands
from using POST_INC in the case of negation.  Fix reversal of operands in
-Os use of ashq.
2007-04-08 03:07:23 +00:00
erh 35f231fc7a Instead of just a vague reference to ifconfig, mention how one actually
configures the operational mode of the card.
2007-04-08 02:29:39 +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
matt 2c37c6c8f1 Fix a problem with -Os. 2007-04-07 22:50:27 +00:00
plunky 93d3f2eebc be nice, and linger to let the L2CAP connection close down gracefully 2007-04-07 21:08:46 +00:00
christos 535dee52f6 Fix deep directory move rock-ridge extension. Code was there, but it had
bit-rotted.
2007-04-07 17:14:58 +00:00