scarce
-make the boot timeout patchable
-optionally, call checkpasswd() before the boot menu can be accessed
(The latter 2 follow PR port-i386/8196 by Stephan Thesing.)
feature to avoid rereads (which was added to work around bugs in
old SRM versions that wouldn't rewind DATs, but would return no
error on rewind callbacks)
* Initialize the volzero signature in ustarfs_open(), rather than as a
side effect of the first read.
* Centralize error retry.
ETHERTYPE_IPV6 packets are encapsulated by RFC1042 encap.
Tested with Japanese card, with WaveLan bridge (wiconfig -p 1).
NOTE: I dunno if encapsulating IPv6 packets by RFC1042 is the correct way,
as RFC1042 only defines behavior for ETHERTYPE_{IP,ARP,REVARP} packets.
Since WaveLan bridge encapsulates IPv6 packets with RFC1042, we have no
choice.
Gather joined multicast addresses via SIOCADDMULTI, and configure multicast
filter properly. This is also required for IPv6 support
(which heavily depends on multicast).
Fix IFF_RUNNING management
- to prevent IFF_RUNNING from raised on "wiconfig", before "ifconfig up"
- to prevent the driver from occupying extra interrupts on "ifconfig up",
then "down", then "up".
Drop multicast/broadcast packet looped back from myself.
This is to cope with SMC91C92 (Megahertz XJ10BT), which
loops back multicast packet to itself on promiscuous mode.
(should be ensured by chipset configuration)
Reviewed by: thorpej
- Take note of magazine changes, and enqueue "Element Status Changed" events
that user processes can read or select on.
- Normalize some structure names.
- Report back more status about changer elements:
* Volume tags (e.g. barcode labels on the backs of your tapes)
* External device names (for drive units in a changer)
* Last element a unit of media was moved from
* Sense information for SCSI changer elements in EXCEPT condition
* Vendor-specific data if the user requests it.
- Add support for setting volume tags.
changes: cache_lookup() now returns -1 if not successful; for
the '.' case, 'error' haven't been cleared to 0,
so that ntfs_lookup() itself returned -1 , resulting to
nasty "leaf should be empty" panic early after
the device driver instead of happening automagically in the HC driver.
This affects both the HC-USBD interface as well as the USBD-device
interface.
This change will allow DMA buffers to be reused e.g. in isochronous
traffic.
Add isochronous support to the UHCI driver (not for OHCI yet).
power status on the console (if apmd is absent).
Some systems generate APM_POWER_CHANGE events too frequently (more then
once per minute), and printing the status makes single user operations
rather difficult.
+ Add a quirk table.
+ Assume all else is a modern drive that can do variable block
lengths (this is the main reason for this work - the old driver
only ever seemed to write 512 byte blocks!).
+ Keep track of values for mtget's mt_fileno, mt_blkno.
+ Handle a few extra MTIOCTOP commands.
Ideas gleaned from our MI scsi tape driver and the FreeBSD CAM tape
driver. Tested on a TKZ09 (DEC badged Exabyte 8500), a TLZ06 (DEC
DAT) and TK50.
Many thanks to Pierre Bergdolt for helping with testing.
approximation of reality if the MD code doesn't. This variable is the
equivalent of "tickfix" for the non-NTP path.
This allows an alpha kernel (where hz=1024) with "options NTP" to
synch up quite nicely (as opposed to having an frequency error of
~560ppm, which is outside the capture range of the PLL).
If the entry is found in name cache, cache_lookup() does all the
necessary locking now, simplifying the interface and making the
code easier to follow and maintain.
The code now also removes the entry from cache when it's either invalid
(vget() fails) or the vnode has been recycled while waiting for the lock.
In that case, unlock/relock of the directory vnode has been eliminated too.
Both changes could lead to sligh performace improvement in same cases.
Furthermore, obscure bug has been found and eliminated for ISDOTDOT in the
lockparent && ISLASTCN case: if the vget() succeded and the re-lock
of the directory vnode not, we returned the error with the '..' vnode still
locked.
For simplicity, cache_lookup() now returns 0 if the positive entry was found
in cache, -1 if not found and ENOENT or error returned by the locking
functions in any other case.
Many thanks to Bill Studenmund and especially Charles Hannum
for invaluable advices and code to get this right.
Tested by: jdolecek
Rewieved by: wrstuden, mycroft
routines - avoids potential DoS attack and closes an easy way to force
the kernel to panic
* for read(), DTRT WRT offset bigger than file size
ntfs_strategy(): adapt to ntfs_readattr() change
ntfs_readdir(): use ntfs_u28() to translate the file name characters
to 8bit encoding, avoid excessive intendation, reformat the
debug messages slightly
- do not perform IPv6 initialization for faith* interface, as they become
mistakingly IFF_UP. we are wondering if we should nuke in6_ifattach_p2p().
(sync with recent kame)
uio parameter; if it's not null, the data are copied directly
into/from the user buffer via uiomove()
new macro NTFS_U28() and function ntfs_u28() to convert between Unicode
and 8bit encoding; all it does currently is getting lower 8bit
of the Unicode char and subtituting '_' for it if the result would be 0;
use the macro within NTFS_TOUPPER() macro and in ntfs_uastrcmp()
g/c the (ntfsmount *) parametr to ntfs_u*astr[i]cmp() functions, it's no
longer needed
avoid excessive intendation
filesystem. In particular,
- Fix mknod deadlock, described in PR 8172.
- Enable lfs_mountroot.
- Make lfs_writevnodes treat filesystems mounted on lfs device nodes properly,
by flushing that device rather than trying to add blocks to the device inode.
This, in combination with lfs boot blocks, will allow operation of an all-lfs
system.
put it in Store-and-Forward mode right from the get-go. This eliminates
the DMA underrun errors that prevented the receive filter setup from working
and caused smashed packets to go out onto the wire.
My NetGear FA310-TX board now works.
There are still "filter setup failed to complete" messages, however they
don't appear to indicate that the filter setup actually failed, since
unicast and multicast packet reception work fine. I will address this
problem shortly.
Reading the log for the FreeBSD `pn' driver suggests that these chips are,
in fact, pretty crappy, riddled with hardware bugs (for which more workarounds
are coming).
todo:
-IPv6
-clean up jumbo buffer allocation - NetBSD provides an opaque argument
to the free function, thus doesn't need the hack done here
-deal correctly with the mapping of the shared memory
rewrite of the driver for the DECchip 21x4x Ethernet chips, and a variety
of clones.
Currently, the driver supports the Winbond 89C840F (this works pretty
well), and the Lite-On PNIC (e.g. NetGear PCI boards), however Lite-On
support may be broken [I may simply have a busted test board].
Eventually, support for the Macronix and ASIX chips will filter into
this driver, and then, slowly, support for the genuine DEC chips,
and maybe even the DE-425 EISA model.
again when switching link0 on.
XXX This stuff needs to be thought about, especially with the doomming IPv6
support, which uses yet another default mtu.
chip-dependant code this required the following changes:
- Instead of attaching the device in a generic way with some chip-dependant
routines, use a chip-dependant attach routine with some common code
factored out. The code is marginally bigger, but this allows the CMD64x
flag hack to go away.
- For chips that report per-channel 'irq triggered', test this before calling
wdcintr() for the native-pci irq case (compat intr can't be shared),
as wdcintr() has no good way to know if a irq was for it or not, and
ends up with irq loss. XXX for chips that don't have this feature irq sharing
will not work properly !
- add my copyrigth notice (could have been done some time ago I think :)
There are still some issues to be solved with the Promise controller and
ATAPI devices.
Many thanks to Paul Newhouse for shipping me 2 Ultra/33 boards for doing this
work.
now uses the DMACSR_READ bit and no longer keeps _nd_dmadir in softc
unified transfer cleanup code, now in routine next_dma_finish_xfer()
fixed bounds checking on registers after transfer.
removed checking for bus errors since the bit is always set on some nexts
(specifically, on mourning, a 25mhz 68040 mono slab)
fixed a couple of dma bugs involving chaining dma buffers.
since a few things don't yet work properly:
- Sense data isn't reported properly (err, at all).
- It doesn't work with anything other than the Iomega USB Zip drive.
- Hot-unplug doesn't work yet.
...but this is enough to make my shiny new USB Zip drive go.
detect a little earlier if we've dup-put'd. Otherwise, underflow occurs,
and subsequent allocations simply hang or fail (it thinks the hardlimit
has been reached).
DMACSR_READ is now a CSR status bit which can be used to know if current transfer is
from cpu to device.
the old DMACSR_READ bit is renamed DMACSR_SETREAD. This is a control bit that tells
the dma transfer to be from cpu to device.
and consider it to be like an RCC (receive copy complete). The RCC
code path has always checked for bad received packets.
- Trim the CRC length off the recived packet length; the EPIC/100 always
includes the CRC in the packet.
- Improve fatal error reporting.
require the front-end to initialize rc_deffgcolor and rc_defbgcolor (both
new members), and override these only if RASTERCONSOLE_{FG,BG}COL are
set in the kernel configuration file.
the member is used to pass struct socket to ip{,6}_output for ipsec decisions.
(i agree it is kind of ugly. we need to modify struct mbuf if we are
to do better - which seems to me a bit too much)
New Reno fast recovery code was being executed even when New Reno was
disabled, resulting in an unfortunate interaction with the traditional
fast recovery code, the end resulting being that the very condition
that would trigger the traditional fast recovery mechanism caused fast
recovery to be disabled!
Problem reported by Ted Lemon, and some analytical help from Charles Hannum.