QEMU With E2K User Support
Go to file
Paolo Bonzini 0d931d7062 serial: clean up THRE/TEMT handling
- assert TEMT is cleared before sending a character; we'll get one from
TSR if tsr_retry > 0, from the FIFO or THR otherwise

- assert THRE cleared and FIFO not empty (if enabled) before fetching a
character to send.  This effectively reverts dffacd46, but the check
makes no sense and commit f702e62 (serial: change retry logic to avoid
concurrency, 2014-07-11) must have made it unnecessary.  The commit
message for f702e62 talks about multiple calls to qemu_chr_fe_add_watch
triggering s->tsr_retry >= MAX_XMIT_RETRY, but other failures were
possible.  For example, if you have multiple calls, the subsequent ones
will see s->tsr_retry == 0 and will find THRE and/or TEMT on entry.

- for clarity, raise THRI immediately after the code sets THRE

- check THRE to see if another character has to be sent.  This makes
the assertions more obvious and also means TEMT has to be set as soon as
the loop ends.  It makes the loop send both TSR and THR if flow-control
happens in non-FIFO mode.  Previously, THR would be lost.

- clear TEMT together with THRE even in the non-FIFO case

The last two items are bugfixes, but they were just found by inspection
and do not squash known bugs.

Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-12-15 17:33:37 +01:00
audio
backends pci, pc, virtio, misc bugfixes 2014-09-18 20:02:01 +01:00
block Revert "qemu-img info: show nocow info" 2014-11-24 13:52:10 +01:00
bsd-user
default-configs mips: Remove CONFIG_VT82C686 from non-Fulong configs 2014-11-07 11:15:49 +00:00
disas disas/mips.c: disassemble MSA instructions 2014-11-03 11:48:35 +00:00
docs Tracing docs fix configure option and description 2014-11-18 14:05:54 +00:00
dtc@bc895d6d09
fpu softfloat: add functions corresponding to IEEE-2008 min/maxNumMag 2014-10-14 13:28:51 +01:00
fsdev
gdb-xml s390x/gdb: add the feature xml files for s390x 2014-09-01 09:45:19 +02:00
hw serial: clean up THRE/TEMT handling 2014-12-15 17:33:37 +01:00
include kvm/apic: fix 2.2->2.1 migration 2014-12-15 12:21:02 +01:00
libcacard libcacard: fix resource leak 2014-11-14 12:15:40 +01:00
libdecnumber libdecnumber: Fix warnings from smatch (missing static, boolean operations) 2014-08-24 13:21:06 +04:00
linux-headers linux-headers: update to 3.18-rc5 2014-11-18 11:24:31 +00:00
linux-user linux-user: Fix up timer id handling 2014-11-11 08:13:09 +02:00
net net/socket: fix Uninitialized scalar variable 2014-11-21 10:50:54 +00:00
pc-bios linuxboot: fix loading old kernels 2014-12-15 12:21:03 +01:00
pixman@87eea99e44 pixman: update internal copy to pixman-0.32.6 2014-09-15 08:14:19 +02:00
po po: fix conflict with %.mo rule in rules.mak 2014-09-26 13:35:08 +02:00
qapi Revert "qemu-img info: show nocow info" 2014-11-24 13:52:10 +01:00
qga qga: fix false negative argument passing 2014-11-17 11:41:25 +01:00
qobject json-lexer: fix escaped backslash in single-quoted string 2014-06-23 11:01:24 -04:00
qom qom/cpu: remove the unused CPU hot-plug notifier 2014-11-02 13:44:11 +02:00
roms Update OpenBIOS images 2014-11-15 13:01:44 +00:00
scripts Tracing: Fix simpletrace.py error on tcg enabled binary traces 2014-11-18 14:05:58 +00:00
slirp slirp: udp: fix NULL pointer dereference because of uninitialized socket 2014-09-23 19:15:05 +01:00
stubs block: Code motion to get rid of stubs/blockdev.c 2014-10-20 13:41:26 +02:00
sysconfigs/target
target-alpha target-alpha: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:21 +01:00
target-arm target-arm: handle address translations that start at level 3 2014-11-17 19:30:28 +00:00
target-cris target-cris/translate.c: fix out of bounds read 2014-11-17 13:59:23 +01:00
target-i386 target-i386: add Ivy Bridge CPU model 2014-12-15 12:21:02 +01:00
target-lm32 gdbstub: Allow target CPUs to specify watchpoint STOP_BEFORE_ACCESS flag 2014-10-06 14:25:43 +01:00
target-m68k target-m68k: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:21 +01:00
target-microblaze target-microblaze: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-mips target-mips: kvm: do not use get_clock() 2014-12-15 12:21:01 +01:00
target-moxie
target-openrisc target-openrisc: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-ppc target-ppc: Altivec's mtvscr Decodes Wrong Register 2014-11-20 14:52:01 +01:00
target-s390x valgrind/s390x: avoid false positives on KVM_SET_FPU ioctl 2014-12-15 12:21:01 +01:00
target-sh4 target-sh4: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-sparc target-sparc: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-tricore target-tricore: Add instructions of BO opcode format 2014-10-20 12:25:07 +01:00
target-unicore32 target-unicore32: Use cpu_exec_interrupt qom hook 2014-09-25 18:54:22 +01:00
target-xtensa target-xtensa: add missing window check for entry 2014-11-10 17:59:13 +03:00
tcg tcg/mips: fix store softmmu slow path 2014-11-02 13:30:00 +01:00
tests target-i386: move generic memory hotplug methods to DSDTs 2014-11-24 20:57:10 +02:00
trace trace: [hmp] Reimplement "trace-event" and "info trace-events" using QMP 2014-09-26 09:34:38 +01:00
ui input: move input-send-event into experimental namespace 2014-11-25 17:03:31 +00:00
util memory: expose alignment used for allocating RAM as MemoryRegion API 2014-11-23 12:11:30 +02:00
.exrc
.gitignore trace: [tcg] Generate TCG tracing routines 2014-08-12 14:26:12 +01:00
.gitmodules
.mailmap
.travis.yml .travis.yml: remove "make check" from main matrix 2014-09-26 21:05:06 +04:00
CODING_STYLE CODING_STYLE: Section about conditional statement 2014-08-15 18:54:06 +04:00
COPYING
COPYING.LIB
Changelog
HACKING
LICENSE
MAINTAINERS Add Migration maintainer 2014-11-11 09:46:46 +01:00
Makefile trace: install trace-events file 2014-09-26 09:34:39 +01:00
Makefile.objs qemu-file: Move stdio implementation to qemu-file-stdio.c 2014-10-14 10:29:28 +02:00
Makefile.target bootdevice: move bootdevice related code to new file bootdevice.c 2014-10-15 09:49:48 +02:00
README
VERSION Update version for v2.2.0-rc3 release 2014-11-25 18:23:54 +00:00
accel.c accel: Create accel object when initializing machine 2014-10-09 15:36:14 +02:00
aio-posix.c AioContext: introduce aio_prepare 2014-08-29 10:46:58 +01:00
aio-win32.c aio-win32: avoid out-of-bounds access to the events array 2014-09-22 11:39:21 +01:00
arch_init.c migration: static variables will not be reset at second migration 2014-11-20 18:17:22 +05:30
async.c async: aio_context_new(): Handle event_notifier_init failure 2014-09-22 11:39:48 +01:00
balloon.c qapi event: convert BALLOON_CHANGE 2014-06-23 11:12:28 -04:00
block-migration.c block: Rename BlockDriverAIOCB* to BlockAIOCB* 2014-10-20 13:41:27 +02:00
block.c block: Fix max nb_sectors in bdrv_make_zero 2014-11-14 09:20:35 +00:00
blockdev-nbd.c block: Use g_new() & friends where that makes obvious sense 2014-08-20 11:51:28 +02:00
blockdev.c block: let commit blockjob run in BDS AioContext 2014-11-03 11:41:49 +00:00
blockjob.c block: declare blockjobs and dataplane friends! 2014-11-03 11:41:49 +00:00
bootdevice.c bootindex: change fprintf to error_report 2014-10-15 10:46:01 +02:00
bt-host.c
bt-vhci.c
configure seccomp: change configure to avoid arm 32 to break 2014-11-11 17:05:21 +01:00
coroutine-gthread.c
coroutine-sigaltstack.c coroutine-sigaltstack: Change jmp_buf to sigjmp_buf 2014-11-11 11:07:55 +03:00
coroutine-ucontext.c
coroutine-win32.c coroutine-win32.c: Add noinline attribute to work around gcc bug 2014-06-26 14:08:14 +01:00
cpu-exec.c cpu-exec: invalidate nocache translation if they are interrupted 2014-12-15 12:21:02 +01:00
cpus.c cpus: make icount warp behave well with respect to stop/cont 2014-12-15 12:21:02 +01:00
cputlb.c implementing victim TLB for QEMU system emulated TLB 2014-09-01 17:43:06 +01:00
device-hotplug.c blockdev: Eliminate drive_del() 2014-10-20 13:41:26 +02:00
device_tree.c device_tree.c: dump all err mesages with error_report 2014-09-02 22:38:16 +04:00
disas.c
dma-helpers.c hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
dump.c dump: Fix dump-guest-memory termination and use-after-close 2014-11-02 10:04:34 +03:00
exec.c memory: expose alignment used for allocating RAM as MemoryRegion API 2014-11-23 12:11:30 +02:00
gdbstub.c gdbstub: Add a missing case of signal number translation in gdbstub 2014-11-11 08:58:30 +03:00
hmp-commands.hx hmp: Remove "info pcmcia" 2014-10-24 12:19:11 +01:00
hmp.c Add HMP command "info memory-devices" 2014-09-26 13:37:06 -04:00
hmp.h Add HMP command "info memory-devices" 2014-09-26 13:37:06 -04:00
iohandler.c
ioport.c memory: convert memory_region_destroy to object_unparent 2014-08-18 12:06:20 +02:00
iothread.c async: aio_context_new(): Handle event_notifier_init failure 2014-09-22 11:39:48 +01:00
kvm-all.c coverity/s390x: avoid false positive in kvm_irqchip_add_adapter_route 2014-12-15 12:21:01 +01:00
kvm-stub.c pc: kvm: check if KVM has free memory slots to avoid abort() 2014-11-23 12:11:29 +02:00
main-loop.c Revert "main-loop.c: Handle SIGINT, SIGHUP and SIGTERM synchronously" 2014-10-27 15:05:09 +00:00
memory.c memory: expose alignment used for allocating RAM as MemoryRegion API 2014-11-23 12:11:30 +02:00
memory_mapping.c Add skip_dump flag to ignore memory region during dump 2014-10-31 11:29:01 +01:00
migration-exec.c
migration-fd.c
migration-rdma.c rdma: Fix incorrect description in comments 2014-09-20 17:55:53 +04:00
migration-tcp.c qemu-sockets: Add error to non-blocking connect handler 2014-10-09 15:36:15 +02:00
migration-unix.c qemu-sockets: Add error to non-blocking connect handler 2014-10-09 15:36:15 +02:00
migration.c block/migration: Disable cache invalidate for incoming migration 2014-10-14 09:35:21 +02:00
module-common.c
monitor.c trivial patches for 2014-11-11 2014-11-11 14:50:10 +00:00
nbd.c block/migration: Disable cache invalidate for incoming migration 2014-10-14 09:35:21 +02:00
numa.c numa: make 'info numa' take into account hotplugged memory 2014-11-11 08:50:58 +03:00
os-posix.c os-posix: reorder parent notification for -daemonize 2014-11-02 10:04:34 +03:00
os-win32.c pidfile: stop making pidfile error a special case 2014-11-02 10:04:34 +03:00
page_cache.c
qapi-schema.json input: move input-send-event into experimental namespace 2014-11-25 17:03:31 +00:00
qdev-monitor.c qdev: Use qdev_get_device_class() for -device <type>,help 2014-11-04 17:50:00 +01:00
qdict-test-data.txt
qemu-bridge-helper.c qemu-bridge-helper: Fix fd leak in main() 2014-06-27 10:39:10 +02:00
qemu-char.c qemu-char: fix tcp_get_fds 2014-11-23 12:11:29 +02:00
qemu-coroutine-io.c qemu-coroutine-io: fix for Win32 2014-08-29 10:46:58 +01:00
qemu-coroutine-lock.c
qemu-coroutine-sleep.c coroutine: Drop co_sleep_ns 2014-08-29 10:46:58 +01:00
qemu-coroutine.c coroutine: make pool size dynamic 2014-08-15 15:07:14 +02:00
qemu-doc.texi qemu-doc.texi: fix typos in x509 examples 2014-11-05 09:53:18 +03:00
qemu-file-stdio.c qemu-file: Move stdio implementation to qemu-file-stdio.c 2014-10-14 10:29:28 +02:00
qemu-file-unix.c qemu-file: Move unix and socket implementations to qemu-file-unix.c 2014-10-14 10:29:28 +02:00
qemu-file.c qemu-file: Move stdio implementation to qemu-file-stdio.c 2014-10-14 10:29:28 +02:00
qemu-img-cmds.hx qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-img.c qemu-img: Omit error_report() after img_open() 2014-11-06 12:45:47 +01:00
qemu-img.texi qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-io-cmds.c qemu-io: Respect early image end for map 2014-10-23 15:34:02 +02:00
qemu-io.c block: Make BlockBackend own its BlockDriverState 2014-10-20 13:41:26 +02:00
qemu-log.c
qemu-nbd.c block: Make BlockBackend own its BlockDriverState 2014-10-20 13:41:26 +02:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx -machine vmport=off: Allow disabling of VMWare ioport emulation 2014-11-02 13:44:12 +02:00
qemu-seccomp.c seccomp: whitelist syscalls fallocate(), fadvise64(), inotify_init1() and inotify_add_watch() 2014-11-11 17:01:35 +01:00
qemu-tech.texi
qemu-timer.c timer: introduce new QEMU_CLOCK_VIRTUAL_RT clock 2014-12-15 12:21:02 +01:00
qemu.nsi
qemu.sasl
qmp-commands.hx input: move input-send-event into experimental namespace 2014-11-25 17:03:31 +00:00
qmp.c qmp: Print descriptions of object properties 2014-10-15 05:03:15 +02:00
qtest.c qtest: fix qtest log fd should be initialized before qtest chardev 2014-10-23 16:41:27 +02:00
rules.mak rules.mak: Allow .mo-objs and .mo-cflags in -y variables 2014-10-31 11:26:25 +01:00
savevm.c snapshot: Reset err to NULL to avoid double free 2014-11-03 09:48:41 +00:00
softmmu_template.h softmmu: provide softmmu access type enum 2014-11-03 11:48:34 +00:00
spice-qemu-char.c qemu-char: Rename register_char_driver_qapi() to register_char_driver() 2014-09-16 23:36:32 +01:00
tcg-runtime.c
tci.c
thread-pool.c block: Rename BlockDriverCompletionFunc to BlockCompletionFunc 2014-10-20 13:41:27 +02:00
thunk.c
tpm.c
trace-events megasas: Fixup MSI-X handling 2014-10-31 11:29:01 +01:00
translate-all.c cpu-exec: invalidate nocache translation if they are interrupted 2014-12-15 12:21:02 +01:00
translate-all.h
user-exec.c
version.rc
vl.c sysbus: Make devices spawnable via -device 2014-11-04 23:26:14 +01:00
vmstate.c vmstate: Allow dynamic allocation for VBUFFER during migration 2014-10-14 09:35:48 +02:00
xbzrle.c
xen-common-stub.c accel: Move Xen registration code to xen-common.c 2014-10-04 08:59:15 +02:00
xen-common.c accel: Pass MachineState object to accel init functions 2014-10-09 12:57:10 +02:00
xen-hvm-stub.c
xen-hvm.c xen-hvm: Remove redundant variable 'xstate' 2014-11-11 17:34:53 +03:00
xen-mapcache.c xen: build on ARM 2014-07-07 10:37:40 +00:00

README

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team