complete_rqe: Remove a race condition in RAID-4 and RAID-5 where a
request could be deallocated before the top half had finished
issuing it. The problem seems only to happen with IDE drives
and vn devices, but theoretically it could happen with any
drive. This is the most important part of a possible series
of fixes designed to remove race conditions without locking
out interrupts for longer than absolutely necessary.
Warner Losh [Thu, 6 Apr 2000 02:48:48 +0000 (02:48 +0000)]
Awi driver, ported from NetBSD from Atsushi Once-san.
From the README:
Any IEEE 802.11 cards use AMD Am79C930 and Harris (Intersil) Chipset
with PCnetMobile firmware by AMD.
BayStack 650 1Mbps Frequency Hopping PCCARD adapter
BayStack 660 2Mbps Direct Sequence PCCARD adapter
Icom SL-200 2Mbps Direct Sequence PCCARD adapter
Melco WLI-PCM 2Mbps Direct Sequence PCCARD adapter
NEL SSMagic 2Mbps Direct Sequence PCCARD adapter
Netwave AirSurfer Plus
1Mbps Frequency Hopping PCCARD adapter
Netwave AirSurfer Pro
2Mbps Direct Sequence PCCARD adapter
Known Problems:
WEP is not supported.
Does not create IBSS itself.
Cannot configure the following on FreeBSD:
selection of infrastructure/adhoc mode
ESSID
...
MFPAO: support wildcard entry for generic serial and fixed
disk as fallthrough entry.
Submitted by: MIHIRA Sanpei Yoshiro <sanpei@sanpei.org>, iwasaki
Reviewed by: imp, -mobile ML and nomads ML in Japan
Obtained from: http://www.freebsd.org/~iwasaki/pccard/pccardd-generic.diff
http://home.jp.freebsd.org/~sanpei/4-current/usr.sbin-pccard-pccardd.diff
Cameron Grant [Wed, 5 Apr 2000 05:54:02 +0000 (05:54 +0000)]
make poll() dtrt, previously when playing it would trigger if there was less
than 1 byte ready to play instead of room for at least 1 byte to be written.
similarly for recording.
Brian Somers [Wed, 5 Apr 2000 01:59:36 +0000 (01:59 +0000)]
Always give mktime a timeval with tm_isdst set to -1, otherwise
things get a bit out-of-phase when we step backwards 1 hour from
between 0:00 and 1:00 on the first of the month following the
transition into Summer time. This is probably actually a bug
in mktime().
PR: 10963
If mktime() fails and 68 < year < 138, assume that the reason is
because of Summer time and adjust up or down according to our
adjusting context by one hour. This assumes that all DSTs are
multiples of 1 hour.
Mike Smith [Tue, 4 Apr 2000 21:00:39 +0000 (21:00 +0000)]
Fix _zget() so that it checks the return from kmem_alloc(), to avoid
zttempting to bzero NULL when the kernel map fills up. _zget() will
now return NULL as it seems it was originally intended to do.
Warner Losh [Tue, 4 Apr 2000 17:14:18 +0000 (17:14 +0000)]
Add information about the dangarous apollo MPV3 chipset. Several
people have suggested the workaround to me (use only PIO mode) and
I've not seend a message saying ths was fixed. I'll removed the bold
warning stars after the issue is corrected.
Roger Hardiman [Tue, 4 Apr 2000 16:54:13 +0000 (16:54 +0000)]
Upgrade the bktr driver from 2.07 to 2.10.
- The driver now uses bus_space() and runs on NetBSD 1.4.2
Submitted by Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at>
- Remove startup quirks for video and vbi capture for PAL users.
PAL TV users can now run FXTV and Alevt in any order.
- Add support for cable channels >100
Submitted by Scott Presnell <srp@zgi.com>
- New MSP3410/3415 setup code added. This is experimental.
Please set the sysctl hw.bt848.slow_msp_audio to 1 for this.
Submitted by Frank Nobis<fn@radio-do.de>
Bruce Evans [Tue, 4 Apr 2000 14:12:35 +0000 (14:12 +0000)]
Fixed prototype for setflags(). setflags() returns int, not u_long,
and "extern" in function prototypes is a style bug. The type mismatch
broke chflags(1) on i386's with 64-bit longs and may have broken it on
alphas.
- implement logfile archivation to a separate, user
configurable directory
- implement alternate and more flexible way to specify
logfile rotation time in addition to the ISO 8601
restricted format
- cleanup the source which was a mix of several styles
of persons who maintained it so far, ran through
knfom script got from bde.
Run newsyslog source through knfom script obtained from Bruce Evans.
Joerg Wunsch suggested to do this to make the functional changes in
the next commit to newsyslog (which were run through the same script)
better visible.
Nick Hibma [Mon, 3 Apr 2000 22:19:44 +0000 (22:19 +0000)]
Numerous fixes brought in by Lennart Augustsson from NetBSD:
- Request the maximum number of LUNs on a device if it is
a Bulk-Only device.
- Handle NO_TEST_UNIT_READY case for SCSI
- Add NO_START_STOP quirk for LS-120
- Fix a KASSERT which was the wrong way around.
- Kickstart the LS-120 with the infamous LS-120 specific command of
which no one knows what it doesn, apart from the fact that it appeared
in the Linux code someday.
Enable etc/defaults/pccard.conf which is default configuration file
for pccardd.
Please install /etc/defaults/pccard.conf and update /etc/defaults/rc.conf
as well.
Note that old pccard.conf.sample still remains for while but
no longer to be maintained.
Reviewed by: imp, -mobile ML and nomads ML in Japan.
Nick Hibma [Mon, 3 Apr 2000 11:11:12 +0000 (11:11 +0000)]
Add a hack to cam that makes the cam_xpt available to the rest of the
kernel. Justin agress that there is no other reasonable alternative to
do automatic rescans on connect.
The problem is that when a new device attaches to a SIM (SCSI host
controller) we need to send a XPT_SCAN_BUS command to the SIM using
xpt_action. This requires however that there is a peripheral available
to take the command (otherwise xpt_done and later bomb). The RESCAN
ioctl uses the same periph.
This enables a USB mass storage drive to do an automatic rescan on
connection of the drive.
The automatic dropping of a CAM entry on disconnection was already
working (asynchronous event).
The next thing to do is find someone to commit a change to vpo to do the
same thing. Just port umass_cam_rescan and friends across to that
driver.
Fix unsafe tempfile creation. This file is already off the vendor
branch. Although this problem has been reported to the GNU folks,
it's unlikely that any solution they may come up with will involve
the use of mktemp(1).
PR: 16942
Submitted by: Colin Phipps <crp22@cam.ac.uk>
Nick Hibma [Sun, 2 Apr 2000 21:59:27 +0000 (21:59 +0000)]
Remove a static variable, a uniquifier for a SCSI command. It might have
produced inadvertently failed transfers in the case were multiple
Bulk-Only devices are connected and a command is prepared at the same
time.
Clone bio versions of certain bits of infrastructure:
devstat_end_transaction_bio()
bioq_* versions of bufq_* incl bioqdisksort()
the corresponding "buf" versions will disappear when no longer used.
Move b_offset, b_data and b_bcount to struct bio.
Add BIO_FORMAT as a hack for fd.c etc.
We are now largely ready to start converting drivers to use struct
bio instead of struct buf.
Nick Hibma [Sun, 2 Apr 2000 16:59:16 +0000 (16:59 +0000)]
I got the CAM numbers (path id's, buses, unit numbers) and newbus
unit numbers all wrong. This did not show up because most of them where
zero anyway.
Use a separate buffer for command transforms instead of fiddling with
the existing cdb_bytes.
Take CAM_CDB_POINTER into account. Nobody is using it, but someone might
in the future.
Be more picky about what to accept in the UFI command set.
First attempt at implementing the ATAPI command protocol transforms.
This should at least make Imation Superdisk and other e-Shuttle based
devices show as attached. Maybe they even work to some extent.
Move htons() ip_len to after the in_delayed_cksum() call.
This should stop cksum error messages on IPsec communication
which was reported on freebsd-current.
Add support for the LinkSys USB10T network adapter that
contains the ADMtek Pegasus AN986 USB chipset. The
adapter supports both 10BaseT and 100BaseT (including
full-duplex). The product code for these adapters is
0x2206.
Avoid rawname() stupidly prepending an `r' before the device name even
in cases where the supplied name was already pointing to a character
special device. This fixes the breakage that occured when trying to
dump a filesystem by name (e. g. /usr), with an fstab already
mentioning the raw device name (like /dev/rda0g) where dump attempted
to use /dev/rrda0g then.
Also removed the now obsolete remark that fstab were carrying block
special names.
This new driver version uses the DMA mapping interface
introduced in FreeBSD-4.0. The driver is now full up-to-date
with regards to the current kernel interfaces.
Another significant change in this driver version applies
to the checking of the data direction. The driver is now
able to check against the expected data direction in any
circumstance and will not hang either if direction is wrong
at the start of the IO, or if for some weird reason,
the device changes to the wrong direction during the IO.
This driver version is still usable under FreeBSD 3.2/3.3,
since it only requires CAM, other kernel interface dependencies
being #if'ed in the sources according to kernel version.
But, in order to use the driver under those early kernel
versions, user has to move the driver sources by hand and make
appropriate tiny changes to let the kernel know about the driver.
Other changes:
- Remove the debugging stuff for WSR bit.
- Get rid of some warnings about volatile being discarded.