Assuming that the intr_mask[] was updated by changing the maskptrs (the
existing update_intr_masks() function will not work) this code was
written so the PCIC controller insertion/removal events will not
interrupt the card IRQ handler events.
Some possible scenarios:
+ Card is removed during IRQ handler:
- PCIC card handler is allowed to interrupt
- card removal event is called, removing the driver and data structures
* card interrupt handler continues w/out driver, data structures, and hardware
OR (the code just committed)
* card IRQ handler has no hardware to read/write to, but has code and
data to run on (XXX- Assume it completes and doesn't spin forever)
- PCIC card handler unloads the card driver
The current situation at least leaves the card interrupt handlers the
drivers and data structures to work with although the hardware can't be
guaranteed.
Reviewed by: bde
- Turn off BTB (Branch Target Buffer) because the BTB makes system
unstable on some machines. The BTB feature can be enabled if
"options BTB_EN" is added in kernel a configuration file.
- Change comment.
- Reorder `orb XX,%al's.
- Reset NMI F/F (mask NMI) before setting registers, and set it after
setting them. Normally, this change has no effect.
multicast group memberships. This is not actually operative
at the moment (a lot of other code still needs to be changed), but
this seemed like a useful reference point to check in so that
others (i.e. Bill Fenner) have fair warning of where we are going.
> <sys/param.h> doesn't include <sys/time.h>
>
> I removed the NAPM check since it's wasteful to check twice. apmprobe()
> checks the unit number, and that's the right check.
Submitted by: bde
swapgeneric.c hasn't had anything to do with swapping for some time.
It just makes the -a boot option actually work, and breaks the static
configuration of rootdev and dumpdev. It should be reorganized to
only support -a.
etc..), plus add a better display suspend function.
- Changed the Copyright's to reflect the new 'jp.FreeBSD.org' email
address.
Submitted by: nate & HOSOKAWA, Tatsumi <hosokawa@jp.FreeBSD.org>
NCR driver dies when "xmcd" accesses the CD-ROM drive
Restrict cacheing of INQUIRY results to LUN 0.
Thanks to Dave Huang <khym@bga.com> for reporting the problem
and suggesting a fix, though I chose a slightly different one.
- the operands for bt, bts, arpl and `enter' were reversed.
- btr was reported as bts (with the correct operand order).
- cmpxchg was misplaced. It was misplaced differently in the
comments. It is misplaced differently again in the i486 manual.
I put it where the i586 manual and gas say it is.
- fucompp was misplaced.
- the rr table for(s) some versions of fstp, fcom and fcomp was non-null.
This caused some invalid opcodes to be reported as "" instead of as
"<bad instruction>".
- the word and long versions of the fi* instructions were reversed.
- aaa and daa were reversed.
Fixed bugs involving unusual operand sizes:
- 32-bit registers weren't always forced for bswap or for moves to and
from special registers.
- the operand sizes weren't reported for [l]call or [l]jmp.
- displacements weren't truncated mod 2^16 when the operand size was
16-bit.
- too-large displacements and offsets were fetched, and too-large
offsets were reported, when the operand size was 16-bit.
- sign extended immediate bytes were extended too far when the operand
size was 16-bit.
Fixed bugs involving usual operand sizes:
- 8-bit source registers weren't forced for mov[sz]b[wl].
- 16-bit source registers weren't forced for mov[sz]w[wl].
- immediate bytes were sometimes reported as sign extended even for
byte operations. Same for immediate words in word operations.
- the immediate byte was not reported as sign extended for `push'.
Finished Pentium support:
- cpuid, cmpxchg8b and rsm were missing.
Finished i287 support:
- fneni, fndisi and fsetpm were missing. These are harmless nops on
later FPUs.
Improvements:
- report invalid opcodes 0xd6 and 0xf1 using .byte. They are special
in not causing invalid operand exceptions when executed.
- report the immediate byte for unusual aam and aad instuctions.
Immediate bytes other than 0x0a always worked and are documented to
work on Pentiums.
wdparams from short into u_short. If wdp_cylinders is short, it
overflows and cause serious sign extension bug when large IDE HDD is
used. These members are only used for initialization of u_long
variables in both 3.0-current and RELENG_2_2 branch.
I believe this should be in 2.2.
Reviewed by: Bruce Evans <bde@zeta.org.au>
address+0x1000) into 0xdc000 (BIOS ROM base address).
(2) Add sample line for Logitec LHA-20x SCSI card.
(3) Change I/O port address of ed8 (C-NET(98) card) from 0x00d0 into
0x03d0 (vendor default).
Submitted by: Michio "Karl" Jibo <karl@marcer.nagaokaut.ac.jp>