thing and release locks before the userspace wait for operations
which release the lock before exit from the method in any case.
However, releasing the lock after inserting the request on the
operation queue gives us proper ordering possibilities in userspace
(at least if that bit were implemented, but I don't think there
any file system in userspace that depends on kernel locking and
probably there never should be one).
inspired by a conversation with Nacho Navarro
This is based on the newfs(8) command for ffs, but
most ext2fs specific part is written from scratch.
Tested on alpha, cobalt, i386 and sgimips with some disks and vnd(4),
and at least cobalt's firmware can load boot files from an ext2fs
E2FS_REV0 partition created by this native newfs_ext2fs(8) command.
Closes PR bin/16175.
Rx ICV errors using evcnt(9).
In promiscuous mode, and when scanning (hmm), ask the NIC for bad
packets (e.g., those that do not pass CRC32). Pass bad packets to
radiotap listeners. Pass packets to radiotap listeners before
stripping FCS. Re-order operations in atw_rxintr() to accomplish
all of this without passing bad packets up to net80211.
Set radiotap channel once in atw_tune() instead of in atw_rxintr().
Fix an endianness bug: it_len is little-endian, but bpf_mtap2()'s
argument needs to be in host order.
tap only RSSI when there is a Philips RF front-end. Tap both Barker
lock quality and RSSI when there is any other RF front-end.
Provide radiotap listeners a more complete picture of channel
activity:
in promiscuous mode, tap frames who do not pass the CRC32 check.
Flag packets that were received with a short preamble. Ask
the NIC to pass us 802.11 Control frames. Pass frames to
radiotap listeners before stripping the FCS. Re-order operations
in rtw_intr_rx() in order to accomplish all of this, taking
care not to pass a broken packet to net80211!
Do not provide a flags field when tapping xmitted frames.
Assert sane Rx packet lengths. Really should check and drop instead
of KASSERTing. I will revisit this, soon.
Update copyright.
with the file server happen through puffs_msg_enqueue() and
puffs_msg_wait() instead of having a billion different routines.
Build the existing system upon these two. Most importantly though,
decouple insertation into the op queue from the actual wait. This
is useful for a number of reasons coming soon to a cvs repo near you.
Let the Cardbus bridge driver set our Latency Timer, but round down
to the nearest multiple of 0x10, since the RTL8180 datasheet may
be trying to tell us that is necessary.
Activate Parity & System Error reporting.
Use a more meaningful variable name, reg -> csr.
Let the TI1420 PCI-Cardbus bridge do burst reads from the primary
(PCI) bus. This ought to improve Tx performance on Cardbus NICs.
This optimization may apply to other TI bridges, but I only have
a datasheet for the TI1420. :-/
Activate PCI Parity Error and System Error reporting on PCI-Cardbus
bridges.
To avoid data destruction, set the Master Abort mode to 1. Stops
the bridge from silently discarding writes from the secondary bus
to the primary bus (Cardbus writes to PCI). Also, stops the bridge
from fulfilling a read by a bus master on the secondary bus that
failed on the primary bus with 0xffffffff (Cardbus reads from PCI).
Now the bus will indicate an error condition (SERR) instead of
silently destroying/corrupting data.
Forward system error indications from the secondary to the primary
bus. Detect parity errors on the secondary.
Set a Cardbus card's Latency Timer to something reasonable, according
to the Cardbus card's Minimum Grant and the bandwidth available on
the PCI bus. Restore the Latency Timer when re-enabling a card
(e.g., after power reactivation).
also synchronizes with puffs_mount() and does not return (exit) in the
parent process until the file system has been mounted. This makes
it possible to reliably run e.g. mount_foo jippi /kai ; cd /kai/ee
that they conform to what the corresponding manual pages say. This makes all
the tests I recently introduced for these utilities pass.
pooka thinks this was time well spent ;-)