Merge remote-tracking branch 'mjt/trivial-patches' into staging
# By Stefan Weil (8) and others # Via Michael Tokarev * mjt/trivial-patches: tests/.gitignore: ignore test-throttle exec: Fix broken build for MinGW (regression) kvm: Fix compiler warning (clang) tcg-sparc: Fix parenthesis warning Makefile: Remove some more files when cleaning target-i386: Fix segment cache dump iov: avoid "orig_len may be used unitialized" warning vscclient: remove unnecessary use of uninitialized variable trace-events: Clean up with scripts/cleanup-trace-events.pl again tci: Fix qemu-alpha on 32 bit hosts (wrong assertions) *-user: Improve documentation for lock_user function MAINTAINERS: Add missing entry to filelist for TCI target translate-all: Fix formatting of dump output *-user: Fix typo in comment (ulocking -> unlocking) docs: Fix IO port number for CPU present bitmap. q35: Fix typo in constant DEFUALT -> DEFAULT. configure: Undefine _FORTIFY_SOURCE prior using it Message-id: 1379696296-32105-1-git-send-email-mjt@msgid.tls.msk.ru
This commit is contained in:
commit
2e6ae666c8
@ -848,6 +848,7 @@ TCI target
|
||||
M: Stefan Weil <sw@weilnetz.de>
|
||||
S: Maintained
|
||||
F: tcg/tci/
|
||||
F: tci.c
|
||||
|
||||
Stable branches
|
||||
---------------
|
||||
|
4
Makefile
4
Makefile
@ -236,7 +236,8 @@ clean:
|
||||
find . -name '*.[oda]' -type f -exec rm -f {} +
|
||||
find . -name '*.l[oa]' -type f -exec rm -f {} +
|
||||
rm -f $(filter-out %.tlb,$(TOOLS)) $(HELPERS-y) qemu-ga TAGS cscope.* *.pod *~ */*~
|
||||
rm -Rf .libs
|
||||
rm -f fsdev/*.pod
|
||||
rm -rf .libs */.libs
|
||||
rm -f qemu-img-cmds.h
|
||||
@# May not be present in GENERATED_HEADERS
|
||||
rm -f trace/generated-tracers-dtrace.dtrace*
|
||||
@ -261,6 +262,7 @@ qemu-%.tar.bz2:
|
||||
distclean: clean
|
||||
rm -f config-host.mak config-host.h* config-host.ld $(DOCS) qemu-options.texi qemu-img-cmds.texi qemu-monitor.texi
|
||||
rm -f config-all-devices.mak config-all-disas.mak
|
||||
rm -f po/*.mo
|
||||
rm -f roms/seabios/config.mak roms/vgabios/config.mak
|
||||
rm -f qemu-doc.info qemu-doc.aux qemu-doc.cp qemu-doc.cps qemu-doc.dvi
|
||||
rm -f qemu-doc.fn qemu-doc.fns qemu-doc.info qemu-doc.ky qemu-doc.kys
|
||||
|
@ -323,9 +323,9 @@ abi_long copy_from_user(void *hptr, abi_ulong gaddr, size_t len);
|
||||
abi_long copy_to_user(abi_ulong gaddr, void *hptr, size_t len);
|
||||
|
||||
/* Functions for accessing guest memory. The tget and tput functions
|
||||
read/write single values, byteswapping as necessary. The lock_user
|
||||
read/write single values, byteswapping as necessary. The lock_user function
|
||||
gets a pointer to a contiguous area of guest memory, but does not perform
|
||||
and byteswapping. lock_user may return either a pointer to the guest
|
||||
any byteswapping. lock_user may return either a pointer to the guest
|
||||
memory, or a temporary buffer. */
|
||||
|
||||
/* Lock an area of guest memory into the host. If copy is true then the
|
||||
@ -381,7 +381,7 @@ static inline void *lock_user_string(abi_ulong guest_addr)
|
||||
return lock_user(VERIFY_READ, guest_addr, (long)(len + 1), 1);
|
||||
}
|
||||
|
||||
/* Helper macros for locking/ulocking a target struct. */
|
||||
/* Helper macros for locking/unlocking a target struct. */
|
||||
#define lock_user_struct(type, host_ptr, guest_addr, copy) \
|
||||
(host_ptr = lock_user(type, guest_addr, sizeof(*host_ptr), copy))
|
||||
#define unlock_user_struct(host_ptr, guest_addr, copy) \
|
||||
|
2
configure
vendored
2
configure
vendored
@ -3515,7 +3515,7 @@ if test "$gcov" = "yes" ; then
|
||||
CFLAGS="-fprofile-arcs -ftest-coverage -g $CFLAGS"
|
||||
LDFLAGS="-fprofile-arcs -ftest-coverage $LDFLAGS"
|
||||
elif test "$debug" = "no" ; then
|
||||
CFLAGS="-O2 -D_FORTIFY_SOURCE=2 $CFLAGS"
|
||||
CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $CFLAGS"
|
||||
fi
|
||||
|
||||
|
||||
|
@ -10,7 +10,7 @@ ACPI GPE block (IO ports 0xafe0-0xafe3, byte access):
|
||||
Generic ACPI GPE block. Bit 2 (GPE.2) used to notify CPU
|
||||
hot-add/remove event to ACPI BIOS, via SCI interrupt.
|
||||
|
||||
CPU present bitmap (IO port 0xaf00-0xae1f, 1-byte access):
|
||||
CPU present bitmap (IO port 0xaf00-0xaf1f, 1-byte access):
|
||||
---------------------------------------------------------------
|
||||
One bit per CPU. Bit position reflects corresponding CPU APIC ID.
|
||||
Read-only.
|
||||
|
2
exec.c
2
exec.c
@ -1230,9 +1230,11 @@ void qemu_ram_free(ram_addr_t addr)
|
||||
;
|
||||
} else if (xen_enabled()) {
|
||||
xen_invalidate_map_cache_entry(block->host);
|
||||
#ifndef _WIN32
|
||||
} else if (block->fd >= 0) {
|
||||
munmap(block->host, block->length);
|
||||
close(block->fd);
|
||||
#endif
|
||||
} else {
|
||||
qemu_anon_ram_free(block->host, block->length);
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ static void kvmclock_vm_state_change(void *opaque, int running,
|
||||
RunState state)
|
||||
{
|
||||
KVMClockState *s = opaque;
|
||||
CPUState *cpu = first_cpu;
|
||||
CPUState *cpu;
|
||||
int cap_clock_ctrl = kvm_check_extension(kvm_state, KVM_CAP_KVMCLOCK_CTRL);
|
||||
int ret;
|
||||
|
||||
|
@ -372,7 +372,7 @@ static void mch_class_init(ObjectClass *klass, void *data)
|
||||
dc->vmsd = &vmstate_mch;
|
||||
k->vendor_id = PCI_VENDOR_ID_INTEL;
|
||||
k->device_id = PCI_DEVICE_ID_INTEL_Q35_MCH;
|
||||
k->revision = MCH_HOST_BRIDGE_REVISION_DEFUALT;
|
||||
k->revision = MCH_HOST_BRIDGE_REVISION_DEFAULT;
|
||||
k->class_id = PCI_CLASS_BRIDGE_HOST;
|
||||
}
|
||||
|
||||
|
@ -85,7 +85,7 @@ typedef struct Q35PCIHost {
|
||||
#define MCH_HOST_BRIDGE_CONFIG_DATA 0xcfc
|
||||
|
||||
/* D0:F0 configuration space */
|
||||
#define MCH_HOST_BRIDGE_REVISION_DEFUALT 0x0
|
||||
#define MCH_HOST_BRIDGE_REVISION_DEFAULT 0x0
|
||||
|
||||
#define MCH_HOST_BRIDGE_PCIEXBAR 0x60 /* 64bit register */
|
||||
#define MCH_HOST_BRIDGE_PCIEXBAR_SIZE 8 /* 64bit register */
|
||||
|
@ -645,7 +645,6 @@ main(
|
||||
GIOChannel *channel_stdin;
|
||||
char *qemu_host;
|
||||
char *qemu_port;
|
||||
VSCMsgHeader mhHeader;
|
||||
|
||||
VCardEmulOptions *command_line_options = NULL;
|
||||
|
||||
@ -754,7 +753,7 @@ main(
|
||||
.magic = VSCARD_MAGIC,
|
||||
.capabilities = {0}
|
||||
};
|
||||
send_msg(VSC_Init, mhHeader.reader_id, &init, sizeof(init));
|
||||
send_msg(VSC_Init, 0, &init, sizeof(init));
|
||||
|
||||
g_main_loop_run(loop);
|
||||
g_main_loop_unref(loop);
|
||||
|
@ -380,9 +380,9 @@ abi_long copy_from_user(void *hptr, abi_ulong gaddr, size_t len);
|
||||
abi_long copy_to_user(abi_ulong gaddr, void *hptr, size_t len);
|
||||
|
||||
/* Functions for accessing guest memory. The tget and tput functions
|
||||
read/write single values, byteswapping as necessary. The lock_user
|
||||
read/write single values, byteswapping as necessary. The lock_user function
|
||||
gets a pointer to a contiguous area of guest memory, but does not perform
|
||||
and byteswapping. lock_user may return either a pointer to the guest
|
||||
any byteswapping. lock_user may return either a pointer to the guest
|
||||
memory, or a temporary buffer. */
|
||||
|
||||
/* Lock an area of guest memory into the host. If copy is true then the
|
||||
@ -438,7 +438,7 @@ static inline void *lock_user_string(abi_ulong guest_addr)
|
||||
return lock_user(VERIFY_READ, guest_addr, (long)(len + 1), 1);
|
||||
}
|
||||
|
||||
/* Helper macros for locking/ulocking a target struct. */
|
||||
/* Helper macros for locking/unlocking a target struct. */
|
||||
#define lock_user_struct(type, host_ptr, guest_addr, copy) \
|
||||
(host_ptr = lock_user(type, guest_addr, sizeof(*host_ptr), copy))
|
||||
#define unlock_user_struct(host_ptr, guest_addr, copy) \
|
||||
|
@ -147,7 +147,9 @@ cpu_x86_dump_seg_cache(CPUX86State *env, FILE *f, fprintf_function cpu_fprintf,
|
||||
cpu_fprintf(f, " [%c%c", (sc->flags & DESC_C_MASK) ? 'C' : '-',
|
||||
(sc->flags & DESC_R_MASK) ? 'R' : '-');
|
||||
} else {
|
||||
cpu_fprintf(f, (sc->flags & DESC_B_MASK) ? "DS " : "DS16");
|
||||
cpu_fprintf(f,
|
||||
(sc->flags & DESC_B_MASK || env->hflags & HF_LMA_MASK)
|
||||
? "DS " : "DS16");
|
||||
cpu_fprintf(f, " [%c%c", (sc->flags & DESC_E_MASK) ? 'E' : '-',
|
||||
(sc->flags & DESC_W_MASK) ? 'W' : '-');
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ typedef enum {
|
||||
static inline void flush_icache_range(uintptr_t start, uintptr_t stop)
|
||||
{
|
||||
uintptr_t p;
|
||||
for (p = start & -8; p < (stop + 7) & -8; p += 8) {
|
||||
for (p = start & -8; p < ((stop + 7) & -8); p += 8) {
|
||||
__asm__ __volatile__("flush\t%0" : : "r" (p));
|
||||
}
|
||||
}
|
||||
|
12
tci.c
12
tci.c
@ -1085,7 +1085,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp8 = helper_ldb_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp8 = *(uint8_t *)(host_addr + GUEST_BASE);
|
||||
#endif
|
||||
tci_write_reg8(t0, tmp8);
|
||||
@ -1097,7 +1096,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp8 = helper_ldb_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp8 = *(uint8_t *)(host_addr + GUEST_BASE);
|
||||
#endif
|
||||
tci_write_reg8s(t0, tmp8);
|
||||
@ -1109,7 +1107,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp16 = helper_ldw_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp16 = tswap16(*(uint16_t *)(host_addr + GUEST_BASE));
|
||||
#endif
|
||||
tci_write_reg16(t0, tmp16);
|
||||
@ -1121,7 +1118,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp16 = helper_ldw_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp16 = tswap16(*(uint16_t *)(host_addr + GUEST_BASE));
|
||||
#endif
|
||||
tci_write_reg16s(t0, tmp16);
|
||||
@ -1134,7 +1130,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp32 = helper_ldl_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp32 = tswap32(*(uint32_t *)(host_addr + GUEST_BASE));
|
||||
#endif
|
||||
tci_write_reg32(t0, tmp32);
|
||||
@ -1146,7 +1141,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp32 = helper_ldl_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp32 = tswap32(*(uint32_t *)(host_addr + GUEST_BASE));
|
||||
#endif
|
||||
tci_write_reg32s(t0, tmp32);
|
||||
@ -1159,7 +1153,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp32 = helper_ldl_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp32 = tswap32(*(uint32_t *)(host_addr + GUEST_BASE));
|
||||
#endif
|
||||
tci_write_reg32(t0, tmp32);
|
||||
@ -1174,7 +1167,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
tmp64 = helper_ldq_mmu(env, taddr, tci_read_i(&tb_ptr));
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
tmp64 = tswap64(*(uint64_t *)(host_addr + GUEST_BASE));
|
||||
#endif
|
||||
tci_write_reg(t0, tmp64);
|
||||
@ -1190,7 +1182,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
helper_stb_mmu(env, taddr, t0, t2);
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
*(uint8_t *)(host_addr + GUEST_BASE) = t0;
|
||||
#endif
|
||||
break;
|
||||
@ -1202,7 +1193,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
helper_stw_mmu(env, taddr, t0, t2);
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
*(uint16_t *)(host_addr + GUEST_BASE) = tswap16(t0);
|
||||
#endif
|
||||
break;
|
||||
@ -1214,7 +1204,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
helper_stl_mmu(env, taddr, t0, t2);
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
*(uint32_t *)(host_addr + GUEST_BASE) = tswap32(t0);
|
||||
#endif
|
||||
break;
|
||||
@ -1226,7 +1215,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t *tb_ptr)
|
||||
helper_stq_mmu(env, taddr, tmp64, t2);
|
||||
#else
|
||||
host_addr = (tcg_target_ulong)taddr;
|
||||
assert(taddr == host_addr);
|
||||
*(uint64_t *)(host_addr + GUEST_BASE) = tswap64(tmp64);
|
||||
#endif
|
||||
break;
|
||||
|
1
tests/.gitignore
vendored
1
tests/.gitignore
vendored
@ -5,6 +5,7 @@ check-qjson
|
||||
check-qlist
|
||||
check-qstring
|
||||
test-aio
|
||||
test-throttle
|
||||
test-cutils
|
||||
test-hbitmap
|
||||
test-iov
|
||||
|
@ -1109,7 +1109,6 @@ qemu_spice_wakeup(uint32_t qid) "%d"
|
||||
qemu_spice_create_update(uint32_t left, uint32_t right, uint32_t top, uint32_t bottom) "lr %d -> %d, tb -> %d -> %d"
|
||||
|
||||
# hw/display/qxl-render.c
|
||||
qxl_render_blit_guest_primary_initialized(void) ""
|
||||
qxl_render_blit(int32_t stride, int32_t left, int32_t right, int32_t top, int32_t bottom) "stride=%d [%d, %d, %d, %d]"
|
||||
qxl_render_guest_primary_resized(int32_t width, int32_t height, int32_t stride, int32_t bytes_pp, int32_t bits_pp) "%dx%d, stride %d, bpp %d, depth %d"
|
||||
qxl_render_update_area_done(void *cookie) "%p"
|
||||
@ -1122,7 +1121,7 @@ spapr_pci_rtas_ibm_query_interrupt_source_number(unsigned ioa, unsigned intr) "q
|
||||
spapr_pci_msi_write(uint64_t addr, uint64_t data, uint32_t dt_irq) "@%"PRIx64"<=%"PRIx64" IRQ %u"
|
||||
spapr_pci_lsi_set(const char *busname, int pin, uint32_t irq) "%s PIN%d IRQ %u"
|
||||
|
||||
# hw/ppc/xics.c
|
||||
# hw/intc/xics.c
|
||||
xics_icp_check_ipi(int server, uint8_t mfrr) "CPU %d can take IPI mfrr=%#x"
|
||||
xics_icp_accept(uint32_t old_xirr, uint32_t new_xirr) "icp_accept: XIRR %#"PRIx32"->%#"PRIx32
|
||||
xics_icp_eoi(int server, uint32_t xirr, uint32_t new_xirr) "icp_eoi: server %d given XIRR %#"PRIx32" new XIRR %#"PRIx32
|
||||
|
@ -1679,8 +1679,9 @@ static int dump_region(void *priv, abi_ulong start,
|
||||
/* dump memory mappings */
|
||||
void page_dump(FILE *f)
|
||||
{
|
||||
(void) fprintf(f, "%-8s %-8s %-8s %s\n",
|
||||
"start", "end", "size", "prot");
|
||||
const int length = sizeof(abi_ulong) * 2;
|
||||
(void) fprintf(f, "%-*s %-*s %-*s %s\n",
|
||||
length, "start", length, "end", length, "size", "prot");
|
||||
walk_memory_regions(f, dump_region);
|
||||
}
|
||||
|
||||
|
@ -181,13 +181,11 @@ ssize_t iov_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt,
|
||||
assert(iov[niov].iov_len > tail);
|
||||
orig_len = iov[niov].iov_len;
|
||||
iov[niov++].iov_len = tail;
|
||||
}
|
||||
|
||||
ret = do_send_recv(sockfd, iov, niov, do_send);
|
||||
|
||||
/* Undo the changes above before checking for errors */
|
||||
if (tail) {
|
||||
iov[niov-1].iov_len = orig_len;
|
||||
} else {
|
||||
ret = do_send_recv(sockfd, iov, niov, do_send);
|
||||
}
|
||||
if (offset) {
|
||||
iov[0].iov_base -= offset;
|
||||
|
Loading…
Reference in New Issue
Block a user