adding Irix (and, to a lesser extent, Solaris) userland emulation to QEMU
Go to file
Isaku Yamahata 9bcfc7daab ioapic: when switches to level trigger mode, interrupts raised repeatedly.
- the trigger mode is edge at first
- During initializatoin, the interrupt is raised as edge which is masked.
  The corresponding bit of irr is set.
- Then the mode is switched to level and it's unmasked.
- the bit of irr is set, so the interrupt is raised repeatedly by
  ioapic_service().
- OS considers that the irq line is broken and falls back to polling mode.

This patch fixes the issues.
After raising edige, clear the bit of irr.

> Bringing up interface eth0:
> Determining IP information for eth0...irq 18: nobody cared (try booting with the "irqpoll" option)
> Pid: 4126, comm: ip Not tainted 2.6.38-rc7 #1
> Call Trace:
>  <IRQ>  [<ffffffff8105b009>] ? __report_bad_irq+0x38/0x87
>  [<ffffffff8105b177>] ? note_interrupt+0x11f/0x188
>  [<ffffffff8105bacf>] ? handle_fasteoi_irq+0xa7/0xd1
>  [<ffffffff810046ff>] ? handle_irq+0x83/0x8c
>  [<ffffffff81003eb9>] ? do_IRQ+0x48/0xaf
>  [<ffffffff81300513>] ? ret_from_intr+0x0/0xe
>  [<ffffffff81031ab8>] ? __do_softirq+0x4f/0x114
>  [<ffffffff81002d6c>] ? call_softirq+0x1c/0x28
>  [<ffffffff81004647>] ? do_softirq+0x33/0x68
>  [<ffffffff810316fb>] ? irq_exit+0x36/0x38
>  [<ffffffff81015f2c>] ? smp_apic_timer_interrupt+0x88/0x96
>  [<ffffffff81002853>] ? apic_timer_interrupt+0x13/0x20
>  <EOI>  [<ffffffff810177ed>] ? __ioapic_set_affinity+0x68/0x7c
>  [<ffffffff813000f0>] ? _raw_spin_unlock_irqrestore+0x8/0xa
>  [<ffffffff8105a84f>] ? __setup_irq+0x224/0x2cb
>  [<ffffffff8120e3c5>] ? e1000_intr+0x0/0x103
>  [<ffffffff8105a9c7>] ? request_threaded_irq+0xd1/0x114
>  [<ffffffff8120e396>] ? e1000_request_irq+0x34/0x63
>  [<ffffffff8121237d>] ? e1000_open+0x81/0x11f
>  [<ffffffff8129097c>] ? call_netdevice_notifiers+0x45/0x4a
>  [<ffffffff81290d8d>] ? __dev_open+0x97/0xc4
>  [<ffffffff8128e9c5>] ? __dev_change_flags+0xb9/0x13d
>  [<ffffffff81290cc1>] ? dev_change_flags+0x1c/0x51
>  [<ffffffff812d0542>] ? devinet_ioctl+0x26e/0x594
>  [<ffffffff812d174c>] ? inet_ioctl+0x92/0xaa
>  [<ffffffff81281d75>] ? T.1003+0x13/0x32
>  [<ffffffff81282152>] ? sock_ioctl+0x1f2/0x1ff
>  [<ffffffff810ae2d3>] ? do_vfs_ioctl+0x498/0x4e7
>  [<ffffffff81281203>] ? sock_alloc_file+0xb3/0x115
>  [<ffffffff8109f79f>] ? fd_install+0x31/0x5d
>  [<ffffffff810ae364>] ? sys_ioctl+0x42/0x65
>  [<ffffffff81001f3b>] ? system_call_fastpath+0x16/0x1b
> handlers:
> [<ffffffff8120e3c5>] (e1000_intr+0x0/0x103)
> Disabling IRQ #18

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
2011-04-03 21:52:57 +02:00
QMP
audio Fix trivial "endianness bugs" 2011-04-03 21:42:57 +02:00
block Fix trivial "endianness bugs" 2011-04-03 21:42:57 +02:00
bsd-user
darwin-user
default-configs vmmouse: Fix typo preventing x86-64 build 2011-03-22 07:44:14 +01:00
docs ccid: add docs 2011-04-01 19:07:49 -05:00
fpu softfloat: Add float*_min() and float*_max() functions 2011-04-03 17:19:38 +02:00
fsdev
gdb-xml
hw ioapic: when switches to level trigger mode, interrupts raised repeatedly. 2011-04-03 21:52:57 +02:00
libcacard libcacard: add vscclient 2011-04-01 19:07:49 -05:00
linux-user linux-user: Fix unlock_user() call in return from poll() 2011-03-22 07:46:21 +01:00
net change all other clock references to use nanosecond resolution accessors 2011-03-21 09:23:23 +01:00
pc-bios pc-bios/spapr-rtas.bin: remove executable flag 2011-04-01 20:04:24 +02:00
roms Add SLOF-based partition firmware for pSeries machine, allowing more boot options 2011-04-01 18:34:57 +02:00
scripts simpletrace: Thread-safe tracing 2011-03-07 15:34:17 +00:00
slirp add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
sysconfigs/target
target-alpha inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-arm target-arm/helper.c: For float-int conversion helpers pass ints as ints 2011-04-03 17:19:38 +02:00
target-cris inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-i386 Revert "x86: Save/restore PAT MSR" 2011-03-22 19:05:06 -05:00
target-lm32 lm32: use lookup table for opcodes 2011-03-31 08:54:05 +02:00
target-m68k inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-microblaze Fix trivial "endianness bugs" 2011-04-03 21:42:57 +02:00
target-mips Fix trivial "endianness bugs" 2011-04-03 21:42:57 +02:00
target-ppc Implement PAPR VPA functions for pSeries shared processor partitions 2011-04-01 18:34:57 +02:00
target-s390x kvm: Align kvm_arch_handle_exit to kvm_cpu_exec changes 2011-03-16 17:11:06 -03:00
target-sh4 inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
target-sparc inline cpu_halted into sole caller 2011-03-13 14:44:21 +00:00
tcg tcg/arm: Support host code being compiled for Thumb 2011-03-24 03:27:22 +01:00
tests lm32: opcode testsuite 2011-03-07 13:42:37 +01:00
ui vnc: added missing name->keysym pairs for Polish national characters 2011-04-01 22:29:27 +02:00
.gitignore Add TAGS and *~ to .gitignore 2011-02-24 11:25:38 -06:00
.gitmodules Add SLOF-based partition firmware for pSeries machine, allowing more boot options 2011-04-01 18:34:57 +02:00
CODING_STYLE
COPYING
COPYING.LIB
Changelog
HACKING HACKING: Update status of format checking 2011-02-25 16:31:05 -06:00
LICENSE
MAINTAINERS MAINTAINERS: add LatticeMico32 maintainer 2011-03-07 13:42:58 +01:00
Makefile libcacard: initial commit 2011-04-01 19:07:48 -05:00
Makefile.dis
Makefile.hw
Makefile.objs ccid: add ccid-card-emulated device 2011-04-01 19:07:49 -05:00
Makefile.target hw/vexpress.c: Add model of ARM Versatile Express board 2011-04-03 18:04:36 +02:00
Makefile.user
README
TODO
VERSION Open up the 0.15 development branch 2011-02-02 08:39:28 +01:00
a.out.h
acl.c
acl.h
aes.c
aes.h
aio.c
alpha-dis.c
alpha.ld
arch_init.c LatticeMico32 target support 2011-03-07 13:42:36 +01:00
arch_init.h LatticeMico32 target support 2011-03-07 13:42:36 +01:00
arm-dis.c
arm-semi.c
arm.ld
async.c
balloon.c
balloon.h
bitmap.c bitmap: add a generic bitmap and bitops library 2011-02-23 16:28:29 -06:00
bitmap.h bitmap: add a generic bitmap and bitops library 2011-02-23 16:28:29 -06:00
bitops.c bitmap: add a generic bitmap and bitops library 2011-02-23 16:28:29 -06:00
bitops.h bitops: fix error on OpenBSD and mingw32 2011-02-25 17:21:22 +00:00
block-migration.c block: enable in_use flag 2011-02-07 12:51:19 +01:00
block-migration.h
block.c Don't allow multiwrites against a block device without underlying medium 2011-03-15 13:21:14 +01:00
block.h fdc: move floppy geometry guessing to block.c 2011-02-20 09:33:17 +00:00
block_int.h Add flag to indicate external users to block device 2011-02-07 12:51:19 +01:00
blockdev.c Improve error handling in do_snapshot_blkdev() 2011-03-15 13:21:14 +01:00
blockdev.h blockdev: add refcount to DriveInfo 2011-02-07 12:51:19 +01:00
bswap.h
bt-host.c
bt-host.h
bt-vhci.c
buffered_file.c change all rt_clock references to use millisecond resolution accessors 2011-03-21 09:23:23 +01:00
buffered_file.h
cache-utils.c
cache-utils.h
check-qdict.c check-qdict: Fix possible crash 2011-02-20 18:45:09 +01:00
check-qfloat.c
check-qint.c
check-qjson.c
check-qlist.c
check-qstring.c
cmd.c
cmd.h
compatfd.c Use sigwait instead of sigwaitinfo. 2011-02-25 20:16:26 +00:00
compatfd.h
config.h
configure libcacard: initial commit 2011-04-01 19:07:48 -05:00
console.c Consolidate DisplaySurface allocation in qemu_alloc_display() 2011-03-22 08:39:11 -05:00
console.h Make VNC support optional 2011-03-22 08:39:12 -05:00
cpu-all.h Add qemu_ram_remap 2011-03-15 01:19:06 -03:00
cpu-common.h Add qemu_ram_remap 2011-03-15 01:19:06 -03:00
cpu-defs.h Expose thread_id in info cpus 2011-03-16 17:11:07 -03:00
cpu-exec.c x86: Unbreak TCG support for hardware breakpoints 2011-03-15 14:36:25 -03:00
cpus.c Merge remote branch 'qemu-kvm/uq/master' into staging 2011-03-21 17:42:20 -05:00
cpus.h Refactor debug and vmstop request interface 2011-02-14 12:39:46 -02:00
cris-dis.c
cursor.c
cursor_hidden.xpm
cursor_left_ptr.xpm
cutils.c QCOW2: bug fix - read base image beyond its size 2011-02-10 13:23:44 +01:00
def-helper.h
device_tree.c Allow qemu_devtree_setprop() to take arbitrary values 2011-04-01 18:34:54 +02:00
device_tree.h Allow qemu_devtree_setprop() to take arbitrary values 2011-04-01 18:34:54 +02:00
dis-asm.h
disas.c
disas.h
dma-helpers.c
dma.h
dyngen-exec.h
elf.h LatticeMico32 target support 2011-03-07 13:42:36 +01:00
envlist.c
envlist.h
exec-all.h Make tb_alloc static 2011-02-10 18:17:43 +01:00
exec.c Expose thread_id in info cpus 2011-03-16 17:11:07 -03:00
gdbstub.c lm32: gdbstub support 2011-03-07 13:42:36 +01:00
gdbstub.h
gen-icount.h
hmp-commands.hx hmp-commands.hx: fix badly merged client_migrate_info command 2011-03-10 16:12:21 -06:00
host-utils.c
host-utils.h
hpet.h
hppa-dis.c
hppa.ld
i386-dis.c
i386.ld
ia64-dis.c
ia64.ld
input.c
iohandler.c add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
ioport-user.c
ioport.c ioport: Improve error output 2011-03-06 21:01:32 +01:00
ioport.h
iorange.h
iov.c
iov.h
json-lexer.c
json-lexer.h
json-parser.c
json-parser.h
json-streamer.c
json-streamer.h
kvm-all.c kvm: x86: Push kvm_arch_debug to kvm_arch_handle_exit 2011-03-16 17:11:06 -03:00
kvm-stub.c Introduce log_start/log_stop in CPUPhysMemoryClient 2011-02-14 12:39:47 -02:00
kvm.h kvm: x86: Push kvm_arch_debug to kvm_arch_handle_exit 2011-03-16 17:11:06 -03:00
libfdt_env.h
linux-aio.c
m68k-dis.c
m68k-semi.c
m68k.ld
microblaze-dis.c
migration-exec.c
migration-fd.c
migration-tcp.c Fix conversions from pointer to int and vice versa 2011-03-20 21:39:23 +00:00
migration-unix.c Fix conversions from pointer to int and vice versa 2011-03-20 21:39:23 +00:00
migration.c Improve vm_stop reason declarations 2011-02-14 12:39:46 -02:00
migration.h add migration state change notifiers 2011-01-24 15:13:54 +01:00
mips-dis.c
mips.ld
module.c
module.h
monitor.c Parse SDR1 on mtspr instead of at translate time 2011-04-01 18:34:55 +02:00
monitor.h
nbd.c
nbd.h
net-checksum.c
net.c net: Improve the warnings for dubious command line option combinations 2011-04-01 22:53:49 +02:00
net.h
notify.c
notify.h
os-posix.c add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
os-win32.c Expose thread_id in info cpus 2011-03-16 17:11:07 -03:00
osdep.c
osdep.h Merge remote branch 'qemu-kvm/uq/master' into staging 2011-03-21 17:42:20 -05:00
oslib-posix.c
oslib-win32.c w32: Remove implementation of function ffs 2011-02-20 20:18:21 +00:00
path.c user: speed up init_paths a bit 2011-02-09 10:33:54 +02:00
pci-ids.txt
pflib.c
pflib.h
poison.h LatticeMico32 target support 2011-03-07 13:42:36 +01:00
posix-aio-compat.c trace: Trace posix-aio-compat.c completion and cancellation 2011-03-07 15:34:46 +00:00
ppc-dis.c
ppc.ld
ppc64.ld
qbool.c
qbool.h
qdict-test-data.txt
qdict.c
qdict.h
qemu-aio.h
qemu-barrier.h
qemu-char.c Merge remote branch 'amit/for-anthony' into staging 2011-03-24 08:11:58 -05:00
qemu-char.h char: Prevent multiple devices opening same chardev 2011-03-21 16:57:13 +05:30
qemu-common.h add a service to reap zombies, use it in SLIRP 2011-03-29 08:14:11 -05:00
qemu-config.c spice: add chardev (v5) 2011-01-24 15:41:40 +01:00
qemu-config.h
qemu-doc.texi Documentation: add Sheepdog disk images 2011-02-07 09:44:45 +01:00
qemu-error.c
qemu-error.h
qemu-img-cmds.hx
qemu-img.c qemu-img: Improve error messages for failed bdrv_open 2011-02-10 13:24:11 +01:00
qemu-img.texi Documentation: Add qemu-img check/rebase 2011-01-24 16:41:49 +01:00
qemu-io.c qemu-io: Fix discard command 2011-01-31 10:03:00 +01:00
qemu-lock.h qemu-lock.h: Remove non-pthreads spinlock implementations 2011-02-20 15:20:06 +01:00
qemu-log.h
qemu-malloc.c
qemu-nbd.c
qemu-nbd.texi
qemu-objects.h
qemu-option.c
qemu-option.h
qemu-options.h
qemu-options.hx error message if user specifies curses on cmd line when curses is disabled 2011-03-22 08:39:12 -05:00
qemu-os-posix.h
qemu-os-win32.h
qemu-queue.h
qemu-sockets.c
qemu-tech.texi
qemu-thread-posix.c qemu-thread: delete unused functions 2011-03-19 08:30:28 +00:00
qemu-thread-posix.h add Win32 IPI service 2011-03-13 14:44:22 +00:00
qemu-thread-win32.c w32: Add missing functions qemu_mutex_destroy, qemu_cond_destroy 2011-03-19 08:29:35 +00:00
qemu-thread-win32.h add win32 qemu-thread implementation 2011-03-13 14:44:21 +00:00
qemu-thread.h qemu-thread.h: include inttypes.h 2011-04-01 19:07:48 -05:00
qemu-timer-common.c
qemu-timer.c remove qemu_get_clock 2011-03-21 09:23:23 +01:00
qemu-timer.h remove qemu_get_clock 2011-03-21 09:23:23 +01:00
qemu-tool.c tools: Use real async.c instead of stubs 2011-03-15 13:21:14 +01:00
qemu-x509.h
qemu.sasl
qemu_socket.h net: remove parse_host_src_port() function 2011-03-06 20:06:50 +01:00
qerror.c qerror: Add QERR_UNKNOWN_BLOCK_FORMAT_FEATURE 2011-02-10 13:23:44 +01:00
qerror.h Make VNC support optional 2011-03-22 08:39:12 -05:00
qfloat.c
qfloat.h
qint.c
qint.h
qjson.c
qjson.h
qlist.c
qlist.h
qmp-commands.hx qmp-commands.hx: Clean up mess of client_migrate_info 2011-03-22 08:39:12 -05:00
qobject.h
qstring.c
qstring.h
range.h
readline.c
readline.h
rules.mak
rwhandler.c
rwhandler.h
s390-dis.c
s390.ld
savevm.c Fix migration uint8 arrys handled 2011-03-21 17:41:52 -05:00
sh4-dis.c
simpletrace.c simpletrace: Move st_init() error reporting 2011-03-15 18:03:26 +00:00
simpletrace.h simpletrace: Move st_init() error reporting 2011-03-15 18:03:26 +00:00
softmmu-semi.h
softmmu_defs.h
softmmu_exec.h
softmmu_header.h
softmmu_template.h
sparc-dis.c
sparc.ld
sparc64.ld
spice-qemu-char.c spice: add chardev (v5) 2011-01-24 15:41:40 +01:00
sysemu.h report that QEMU process was killed by a signal 2011-03-26 12:54:42 +00:00
targphys.h
tcg-runtime.c
thunk.c
thunk.h
trace-events trace: Trace posix-aio-compat.c completion and cancellation 2011-03-07 15:34:46 +00:00
translate-all.c
uboot_image.h
usb-bsd.c Fix trivial "endianness bugs" 2011-04-03 21:42:57 +02:00
usb-linux.c change all rt_clock references to use millisecond resolution accessors 2011-03-21 09:23:23 +01:00
usb-stub.c
version.rc
vgafont.h
vl.c extract I/O handler lists to iohandler.c 2011-03-29 08:14:01 -05:00
x86_64.ld

README

Read the documentation in qemu-doc.html.

Fabrice Bellard.