Peter Wemm [Fri, 14 Jan 2000 05:03:23 +0000 (05:03 +0000)]
Don't do device_set_desc() until after checking for PnP probes. Otherwise
things like sound cards can get called "Parallel port". A note to the
unwary; the isa-pnp devices in the system are probed like PCI - each
device ID is passed to *all* isa probe routines to find the best match.
If the driver is not prepared to deal with this, it must abort in this
scenario or it will try and claim all PnP devices.
Justin T. Gibbs [Fri, 14 Jan 2000 03:33:38 +0000 (03:33 +0000)]
adv_pci.c:
Update list of supported products.
Adjust probe message to include the ASC3030.
advansys.c:
Fix a long standing bug in the error recovery strategy. In order
to keep recovery simple, we freeze the SIMQ, stopping the XPT from
submitting new requests. Unfortunately, we also will freeze the
SIMQ if bus_dmamap_load blocks or we run out of controller resources.
On cards with limited resources it was possible to freeze the
SIM a second time and never unfreeze it. Now we more carefully
track our exception state so we never freeze the SIMQ more than
once.
Don't rely on pointers fitting in a 32bit field stored in the
per-transaction data structures on the card. Use an index to
an array of transaction mapping structures instead. This should
allow this driver to work on the Alpha.
Deal with the ASC3030 which is almost idistinguishable from the
ASC3050. Unfortunately the ASC3030 does not work at Ultra speeds,
so if we can't find an eeprom, we must assume that ultra is disabled.
The SIIG cards using the 3030 do not have eeproms. As a side effect,
we now honor the ultra disable bit in the eeprom if it is present.
Don't bother attempting to write corrected eeprom data back to the
eeprom. We can function just fine if the data is corrupted and
I'd rather not risk messing up the user's eeprom.
Modify the interrupt handler to catch latched external bus rests.
Dynamically determine the maximum number of S/G elements we can
map at a single time. The nature of the firmware interface for
these cards makes this value dependent on the number of "queues"
the card can support.
advlib.c:
advlib.h:
advmcode.c:
advmcode.h:
Synchronize with the latest firmware image released in the
Linux Advansys driver.
Bill Paul [Fri, 14 Jan 2000 03:14:49 +0000 (03:14 +0000)]
Add device driver support for USB ethernet adapters based on the CATC
USB-EL1202A chipset. Between this and the other two drivers, we should
have support for pretty much every USB ethernet adapter on the market.
The only other USB chip that I know of is the SMC USB97C196, and right
now I don't know of any adapters that use it (including the ones made
by SMC :/ ).
Note that the CATC chip supports a nifty feature: read and write combining.
This allows multiple ethernet packets to be transfered in a single USB
bulk in/out transaction. However I'm again having trouble with large
bulk in transfers like I did with the ADMtek chip, which leads me to
believe that our USB stack needs some work before we can really make
use of this feature. When/if things improve, I intend to revisit the
aue and cue drivers. For now, I've lost enough sanity points.
Jason Evans [Fri, 14 Jan 2000 02:53:29 +0000 (02:53 +0000)]
Add aio_waitcomplete(). Make aio work correctly for socket descriptors.
Make gratuitous style(9) fixes (me, not the submitter) to make the aio
code more readable.
PR: kern/12053
Submitted by: Chris Sedore <cmsedore@maxwell.syr.edu>
Bill Paul [Fri, 14 Jan 2000 01:36:16 +0000 (01:36 +0000)]
Pull my head out of my ass and actually make the tx netisr stuff work right.
Do not not not call m_freem() in the txeof routines. Let the netisr routine
do it. This also makes the tx netisr queuing much simpler (I can just use
another ifqueue instead of the mess I had before.)
Thanks to Bosko Milekic for making me actually think about what I was
doing for a minute.
Nicolas Souchu [Fri, 14 Jan 2000 00:18:06 +0000 (00:18 +0000)]
Port of ppbus standalone framework to the newbus system.
Note1: the correct interrupt level is invoked correctly for each driver.
For this purpose, drivers request the bus before being able to
call BUS_SETUP_INTR and BUS_TEARDOWN_INTR call is forced by the ppbus
core when drivers release it. Thus, when BUS_SETUP_INTR is called
at ppbus driver level, ppbus checks that the caller owns the
bus and stores the interrupt handler cookie (in order to unregister
it later).
Printing is impossible while plip link is up is still TRUE.
vpo (ZIP driver) and lpt are make in such a way that
using the ZIP and printing concurrently is permitted is also TRUE.
Note2: specific chipset detection is not done by default. PPC_PROBE_CHIPSET
is now needed to force chipset detection. If set, the flags 0x40
still avoid detection at boot.
Port of the pcf(4) driver to the newbus system (was previously directly
connected to the rootbus and attached by a bogus pcf_isa_probe function).
Matthew Dillon [Thu, 13 Jan 2000 20:18:25 +0000 (20:18 +0000)]
The alpha build cuases the 'nfsuid bloated' warning to occur. Well,
there is nothing we can do about it. In fact, after further review
there simply are not very many instances of the two structures NFS
checks for 'bloat' so I've decided to simply rip the checks out entirely.
Submitted by: Andrew Gallatin <gallatin@cs.duke.edu>
Kirk McKusick [Thu, 13 Jan 2000 20:03:22 +0000 (20:03 +0000)]
Confirming Peter's fix (locking 101: release the lock before you go
to sleep). Locking 101, part 2: do not look at buffer contents after
you have been asleep. There is no telling what wonderous changes may
have occurred.
Peter Wemm [Thu, 13 Jan 2000 18:48:12 +0000 (18:48 +0000)]
Free the global softupdates lock prior to tsleep() in getdirtybuf().
This seems to be responsible for a bunch of panics where the process
sleeps and something else finds softupdates "locked" when it shouldn't
be. This commit is unreviewed, but has been a big help here.
Previously my boxes would panic pretty much on the first fsync() that
wrote something to disk.
Yoshinobu Inoue [Thu, 13 Jan 2000 15:27:50 +0000 (15:27 +0000)]
fix wrong name which is hidden by wrong ifdef.
Sorry for build failure. There was a mistake when I moved the patch
from my build check machine to commit machine.
Yoshinobu Inoue [Thu, 13 Jan 2000 14:52:53 +0000 (14:52 +0000)]
Change struct sockaddr_storage member name, because following change
is very likely to become consensus as recent ietf/ipng mailing list
discussion. Also recent KAME repository and other KAME patched BSDs
also applied it.
s/__ss_family/ss_family/
s/__ss_len/ss_len/
Makeworld is confirmed, and no application should be affected by this change
yet.
Kirk McKusick [Thu, 13 Jan 2000 07:20:01 +0000 (07:20 +0000)]
Because cylinder group blocks are now written in background,
it is no longer sufficient to get a lock on a buffer to know
that its write has been completed. We have to first get the
lock on the buffer, then check to see if it is doing a
background write. If it is doing background write, we have
to wait for the background write to finish, then check to see
if that fullfilled our dependency, and if not to start another
write. Luckily the explanation is longer than the fix.
Kirk McKusick [Thu, 13 Jan 2000 07:17:39 +0000 (07:17 +0000)]
A panic occurs during an fsync when a dirty block associated with
a vnode has not been written (which would clear certain of its
dependencies). The problems arises because fsync with MNT_NOWAIT
no longer pushes all the dirty blocks associated with a vnode. It
skips those that require rollbacks, since they will just get instantly
dirty again. Such skipped blocks are marked so that they will not be
skipped a second time (otherwise circular dependencies would never
clear). So, we fsync twice to ensure that everything will be written
at least once.
Warner Losh [Thu, 13 Jan 2000 06:32:33 +0000 (06:32 +0000)]
Stop the recurring feeling of deja vu
Stop the recurring feeling of deja vu
Stop the recurring feeling of deja vu
Stop the recurring feeling of deja vu
and debounce the eject messages. We now mark the socket empty in the
interrupt handler, rather than after we've disabled the socket which
happens "much later".
Warner Losh [Thu, 13 Jan 2000 00:29:06 +0000 (00:29 +0000)]
o Remove entry that has 'any' for the interrupt and 'auto' for config.
We don't have that yet.
o Uncomment FLASH cards so when the ata flash patches go into the tree
they will work.
Bill Paul [Wed, 12 Jan 2000 22:24:05 +0000 (22:24 +0000)]
Reintroduce the dc_coal() workaround routine for coalescing outbound
packets into a single buffer, and set the DC_TX_COALESCE flag for the
Davicom DM9102 chip. I thought I had escaped this problem, but... This
chip appears to silently corrupt or discard transmitted frames when
using scatter/gather DMA (i.e. DMAing each packet fragment in place
with a separate descriptor). The only way to insure reliable transmission
is to coalesce transmitted packets into a single cluster buffer. (There
may also be an alignment constraint here, but mbuf cluster buffers are
naturally aligned on 2K boundaries, which seems to be good enough.)
The DM9102 driver for Linux written by Davicom also uses this workaround.
Unfortunately, the Davicom datasheet has no errata section describing
this or any other apparently known defect.
Brian Somers [Wed, 12 Jan 2000 21:53:46 +0000 (21:53 +0000)]
As we parse the interface list, ignore sockaddr_dl's that
don't have an interface index that's the same as the if_msghdr
interface index.
This prevents the occasional perror("SIOCGIFFLAGS") from appearing
at boot time.
While I'm there:
Make a couple of error messages more useful.
Add a missing include.
Add some braces to silence gccs dumb complaints.
Add some consts
Ansify decls
Add copyright to pmap_check.h (well, you could say it's been rewritten)
Bill Paul [Wed, 12 Jan 2000 17:46:40 +0000 (17:46 +0000)]
Apply the same netisr mechanism to transmissions as well. In order to
drive the transmitter, we have to check the interface's send queue in the
TX end of frame handler (i.e. the usb bulk out callback) and push out new
transmissions if the queue has packets in it and the transmitter is
ready. But the txeof handler is also called from a USB callback running
at splusb() too.
Sheldon Hearn [Wed, 12 Jan 2000 14:41:00 +0000 (14:41 +0000)]
Add selected manual pages transcribed from the HTML documentation.
Those pages which have not been transcribed are referenced as
gracefully as possible.
There is no perfect section for the ntp_* files, which document
configuration options for the NTP suite, so I'm putting them in
the same section as the pages for the utilities themselves.
Marcel Moolenaar [Wed, 12 Jan 2000 14:33:00 +0000 (14:33 +0000)]
Add gross hack to work around bogus dependency information created
by gnu/usr.bin/cc/cc_tools/Makefile. This bug is painfully visible
when making buildworld with -DNOCLEAN. This work around is beyond
dirty...
Peter Wemm [Wed, 12 Jan 2000 14:20:12 +0000 (14:20 +0000)]
Fix a bungle with the CAM static wiring tables. Write CAMCONF_UNSPEC
instead of -2. This (I believe) caused static wirings to not match.
This should fix Bill Pechter's problem but we'll see.
Problem discovered by: Bill Pechter <pechter@shell.monmouth.com>
Jason Evans [Wed, 12 Jan 2000 09:28:58 +0000 (09:28 +0000)]
Track libc's three-tier symbol naming. libc_r must currently implement
the _libc_*() entry points and add *() weak aliases. This will all
change for the better when libc_r becomes libpthread.