- make DMA descriptors volatile to avoid possible unintended reordering
which might cause some race conditions
- process interrupts until all NFE_IRQ_WANTED bits are handled
and also put misc fixes:
- return 1 and call nfe_start() in nfe_intr() only if any own interrupts
are actually handled
- use bus_dmamap_load_mbuf(9) for RX mbufs rather than bus_dmamap_load(9)
with mtod(9) and MCLBYTES
- check sc->txq.queued to see if TX descriptors are queued or handled
in nfe_start() and nfe_txeof()
- use proper BUS_DMASYNC_{PRE,POST} ops
- prepare and use NFE_[RT]X_NEXTDESC() macro
- rename NFE_TX_TCP_CSUM to NFE_TX_TCP_UDP_CSUM since it also enables
hardware udp4csum-tx for UDP4 packets
- some minor optimization
- misc KNF
Tested and confirmed by matthew green by
"to send >25MB/sec to nfe0 for over one hour,"
and also tested by me (with light TRX load on 100baseTX though)
for a month.
* Move fuse_opt* funcs from refuse.c into refuse_opt.c.
Implement fuse_opt_parse() and fuse_opt_match(). And make the other
functions just dummy, always returning 0 (I added debugging printfs
to see what the application is trying to do).
For now there are two things that do not work in fuse_opt:
* options accepting arguments, i.e -otimeout=%u or -ofile=%s.
* options without arguments are not enabled, just parsed.
At least now curlftpfs works, even with verbose mode! :-)
Ok'ed by pooka.
possible to recover the system by just killing processes in case
a file server manages to recurse into itself either by fault of
file server implementation or by pilot error. The downside is that
the code is extremely hard to follow and practically screams out
for newlock2 (in addition to screaming "bug here"). The whole
PCATCH nonsense and induced megacomplexity can hopefully be avoided
in the future by tweaking other parts of the implementation.
(/dev/nvram) and implement all the associated ioctls fully. Tested with
a hacked up copy of eeprom(8). Right now it can only be used to see the
nvram GEV contents, not actually edit them. Will do that later some day.
use by both MAKEDEV and MAKEDEV.local. This allows MAKEDEV.local
to accept the same command line arguments as MAKEDEV.
The installed MAKEDEV.subr is generated from MAKEDEV.subr.tmpl.
Replace the licence on MAKEDEV.local with a NetBSD licence, since I
rewrote the entire file.
Reviewed by christos and agc
is implemented as a very dummy version (i.e. totally unimplemented),
so some effort is still needed there.
After this change it is possible to compile and run ntfs-3g. It
works read/write for ntfs images and shows no faults at least with
superficial testing. I did not test it against a block device,
only an image.
Thanks to Tracy and Jason for help with the test image.
the largest size which makes sense (254). See rev. 1.114-116 for
possible problems, but that was with len=255 which is an impossible
size for a string descriptor.
Someone with a "kue" please test this.
of the common USB spec
-Fix length of string descriptor: Descriptors have only a byte field
for length, so 2*127+2 is already too much. Some devices obviously
don't reply to string read requests with impossible length which
happened if "sizeof(usb_string_descriptor_t) was used.
fuse does it: read directory completely into refuse buffers if starting
from read offset 0 and for later calls trickle results from the buffers
to the kernel without consulting the fuse file system.
"bDescriptorSubtype" field and change usb_find_desc()/usb_find_desc_if()
to use it. (The latter functions should not be used by generic code;
I've left the names for now for compatibility.)
Rename USBD_SUBTYPE_ANY to make clear that it is not generic.
-use <fs/unicode.h> for utf16->utf8 conversion instead of a private
implementation
-streamline the COMPAT_30 utf16->ascii conversion a bit: remove
length check (USB_MAX_STRING_LEN is too large to be useful) and
replace array index arithmetics