From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Cc: Li Zhijian <lizhijian@cn.fujitsu.com>,
Peter Crosthwaite <crosthwaite.peter@gmail.com>,
Richard Henderson <rth@twiddle.net>,
Peter Maydell <peter.maydell@linaro.org>,
Stefano Garzarella <sgarzare@redhat.com>
Subject: [Qemu-devel] [PULL 36/77] unify len and addr type for memory/address APIs
Date: Mon, 4 Feb 2019 19:35:38 +0100 [thread overview]
Message-ID: <1549305379-51117-37-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1549305379-51117-1-git-send-email-pbonzini@redhat.com>
From: Li Zhijian <lizhijian@cn.fujitsu.com>
Some address/memory APIs have different type between
'hwaddr/target_ulong addr' and 'int len'. It is very unsafe, especially
some APIs will be passed a non-int len by caller which might cause
overflow quietly.
Below is an potential overflow case:
dma_memory_read(uint32_t len)
-> dma_memory_rw(uint32_t len)
-> dma_memory_rw_relaxed(uint32_t len)
-> address_space_rw(int len) # len overflow
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Peter Crosthwaite <crosthwaite.peter@gmail.com>
CC: Richard Henderson <rth@twiddle.net>
CC: Peter Maydell <peter.maydell@linaro.org>
CC: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
exec.c | 47 +++++++++++++++++++++++------------------------
include/exec/cpu-all.h | 2 +-
include/exec/cpu-common.h | 8 ++++----
include/exec/memory.h | 22 +++++++++++-----------
4 files changed, 39 insertions(+), 40 deletions(-)
diff --git a/exec.c b/exec.c
index 03dd673..5180645 100644
--- a/exec.c
+++ b/exec.c
@@ -2851,10 +2851,10 @@ static const MemoryRegionOps watch_mem_ops = {
};
static MemTxResult flatview_read(FlatView *fv, hwaddr addr,
- MemTxAttrs attrs, uint8_t *buf, int len);
+ MemTxAttrs attrs, uint8_t *buf, hwaddr len);
static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs,
- const uint8_t *buf, int len);
-static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
+ const uint8_t *buf, hwaddr len);
+static bool flatview_access_valid(FlatView *fv, hwaddr addr, hwaddr len,
bool is_write, MemTxAttrs attrs);
static MemTxResult subpage_read(void *opaque, hwaddr addr, uint64_t *data,
@@ -3102,10 +3102,10 @@ MemoryRegion *get_system_io(void)
/* physical memory access (slow version, mainly for debug) */
#if defined(CONFIG_USER_ONLY)
int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
- uint8_t *buf, int len, int is_write)
+ uint8_t *buf, target_ulong len, int is_write)
{
- int l, flags;
- target_ulong page;
+ int flags;
+ target_ulong l, page;
void * p;
while (len > 0) {
@@ -3231,7 +3231,7 @@ static bool prepare_mmio_access(MemoryRegion *mr)
static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
MemTxAttrs attrs,
const uint8_t *buf,
- int len, hwaddr addr1,
+ hwaddr len, hwaddr addr1,
hwaddr l, MemoryRegion *mr)
{
uint8_t *ptr;
@@ -3276,7 +3276,7 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
/* Called from RCU critical section. */
static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs,
- const uint8_t *buf, int len)
+ const uint8_t *buf, hwaddr len)
{
hwaddr l;
hwaddr addr1;
@@ -3294,7 +3294,7 @@ static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs,
/* Called within RCU critical section. */
MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf,
- int len, hwaddr addr1, hwaddr l,
+ hwaddr len, hwaddr addr1, hwaddr l,
MemoryRegion *mr)
{
uint8_t *ptr;
@@ -3337,7 +3337,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
/* Called from RCU critical section. */
static MemTxResult flatview_read(FlatView *fv, hwaddr addr,
- MemTxAttrs attrs, uint8_t *buf, int len)
+ MemTxAttrs attrs, uint8_t *buf, hwaddr len)
{
hwaddr l;
hwaddr addr1;
@@ -3350,7 +3350,7 @@ static MemTxResult flatview_read(FlatView *fv, hwaddr addr,
}
MemTxResult address_space_read_full(AddressSpace *as, hwaddr addr,
- MemTxAttrs attrs, uint8_t *buf, int len)
+ MemTxAttrs attrs, uint8_t *buf, hwaddr len)
{
MemTxResult result = MEMTX_OK;
FlatView *fv;
@@ -3367,7 +3367,7 @@ MemTxResult address_space_read_full(AddressSpace *as, hwaddr addr,
MemTxResult address_space_write(AddressSpace *as, hwaddr addr,
MemTxAttrs attrs,
- const uint8_t *buf, int len)
+ const uint8_t *buf, hwaddr len)
{
MemTxResult result = MEMTX_OK;
FlatView *fv;
@@ -3383,7 +3383,7 @@ MemTxResult address_space_write(AddressSpace *as, hwaddr addr,
}
MemTxResult address_space_rw(AddressSpace *as, hwaddr addr, MemTxAttrs attrs,
- uint8_t *buf, int len, bool is_write)
+ uint8_t *buf, hwaddr len, bool is_write)
{
if (is_write) {
return address_space_write(as, addr, attrs, buf, len);
@@ -3393,7 +3393,7 @@ MemTxResult address_space_rw(AddressSpace *as, hwaddr addr, MemTxAttrs attrs,
}
void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
- int len, int is_write)
+ hwaddr len, int is_write)
{
address_space_rw(&address_space_memory, addr, MEMTXATTRS_UNSPECIFIED,
buf, len, is_write);
@@ -3408,7 +3408,7 @@ static inline MemTxResult address_space_write_rom_internal(AddressSpace *as,
hwaddr addr,
MemTxAttrs attrs,
const uint8_t *buf,
- int len,
+ hwaddr len,
enum write_rom_type type)
{
hwaddr l;
@@ -3448,13 +3448,13 @@ static inline MemTxResult address_space_write_rom_internal(AddressSpace *as,
/* used for ROM loading : can write in RAM and ROM */
MemTxResult address_space_write_rom(AddressSpace *as, hwaddr addr,
MemTxAttrs attrs,
- const uint8_t *buf, int len)
+ const uint8_t *buf, hwaddr len)
{
return address_space_write_rom_internal(as, addr, attrs,
buf, len, WRITE_DATA);
}
-void cpu_flush_icache_range(hwaddr start, int len)
+void cpu_flush_icache_range(hwaddr start, hwaddr len)
{
/*
* This function should do the same thing as an icache flush that was
@@ -3557,7 +3557,7 @@ static void cpu_notify_map_clients(void)
qemu_mutex_unlock(&map_client_list_lock);
}
-static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
+static bool flatview_access_valid(FlatView *fv, hwaddr addr, hwaddr len,
bool is_write, MemTxAttrs attrs)
{
MemoryRegion *mr;
@@ -3580,7 +3580,7 @@ static bool flatview_access_valid(FlatView *fv, hwaddr addr, int len,
}
bool address_space_access_valid(AddressSpace *as, hwaddr addr,
- int len, bool is_write,
+ hwaddr len, bool is_write,
MemTxAttrs attrs)
{
FlatView *fv;
@@ -3833,7 +3833,7 @@ static inline MemoryRegion *address_space_translate_cached(
*/
void
address_space_read_cached_slow(MemoryRegionCache *cache, hwaddr addr,
- void *buf, int len)
+ void *buf, hwaddr len)
{
hwaddr addr1, l;
MemoryRegion *mr;
@@ -3851,7 +3851,7 @@ address_space_read_cached_slow(MemoryRegionCache *cache, hwaddr addr,
*/
void
address_space_write_cached_slow(MemoryRegionCache *cache, hwaddr addr,
- const void *buf, int len)
+ const void *buf, hwaddr len)
{
hwaddr addr1, l;
MemoryRegion *mr;
@@ -3874,11 +3874,10 @@ address_space_write_cached_slow(MemoryRegionCache *cache, hwaddr addr,
/* virtual memory access for debug (includes writing to ROM) */
int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
- uint8_t *buf, int len, int is_write)
+ uint8_t *buf, target_ulong len, int is_write)
{
- int l;
hwaddr phys_addr;
- target_ulong page;
+ target_ulong l, page;
cpu_synchronize_state(cpu);
while (len > 0) {
diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h
index 117d2fb..b16c9ec 100644
--- a/include/exec/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -367,7 +367,7 @@ void dump_opcount_info(FILE *f, fprintf_function cpu_fprintf);
#endif /* !CONFIG_USER_ONLY */
int cpu_memory_rw_debug(CPUState *cpu, target_ulong addr,
- uint8_t *buf, int len, int is_write);
+ uint8_t *buf, target_ulong len, int is_write);
int cpu_exec(CPUState *cpu);
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index 2ad2d6d..63ec1f9 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -83,14 +83,14 @@ size_t qemu_ram_pagesize(RAMBlock *block);
size_t qemu_ram_pagesize_largest(void);
void cpu_physical_memory_rw(hwaddr addr, uint8_t *buf,
- int len, int is_write);
+ hwaddr len, int is_write);
static inline void cpu_physical_memory_read(hwaddr addr,
- void *buf, int len)
+ void *buf, hwaddr len)
{
cpu_physical_memory_rw(addr, buf, len, 0);
}
static inline void cpu_physical_memory_write(hwaddr addr,
- const void *buf, int len)
+ const void *buf, hwaddr len)
{
cpu_physical_memory_rw(addr, (void *)buf, len, 1);
}
@@ -111,7 +111,7 @@ bool cpu_physical_memory_is_io(hwaddr phys_addr);
*/
void qemu_flush_coalesced_mmio_buffer(void);
-void cpu_flush_icache_range(hwaddr start, int len);
+void cpu_flush_icache_range(hwaddr start, hwaddr len);
extern struct MemoryRegion io_mem_rom;
extern struct MemoryRegion io_mem_notdirty;
diff --git a/include/exec/memory.h b/include/exec/memory.h
index abe9cc7..1625913 100644
--- a/include/exec/memory.h
+++ b/include/exec/memory.h
@@ -1791,7 +1791,7 @@ void address_space_destroy(AddressSpace *as);
*/
MemTxResult address_space_rw(AddressSpace *as, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf,
- int len, bool is_write);
+ hwaddr len, bool is_write);
/**
* address_space_write: write to address space.
@@ -1808,7 +1808,7 @@ MemTxResult address_space_rw(AddressSpace *as, hwaddr addr,
*/
MemTxResult address_space_write(AddressSpace *as, hwaddr addr,
MemTxAttrs attrs,
- const uint8_t *buf, int len);
+ const uint8_t *buf, hwaddr len);
/**
* address_space_write_rom: write to address space, including ROM.
@@ -1834,7 +1834,7 @@ MemTxResult address_space_write(AddressSpace *as, hwaddr addr,
*/
MemTxResult address_space_write_rom(AddressSpace *as, hwaddr addr,
MemTxAttrs attrs,
- const uint8_t *buf, int len);
+ const uint8_t *buf, hwaddr len);
/* address_space_ld*: load from an address space
* address_space_st*: store to an address space
@@ -2035,7 +2035,7 @@ static inline MemoryRegion *address_space_translate(AddressSpace *as,
* @is_write: indicates the transfer direction
* @attrs: memory attributes
*/
-bool address_space_access_valid(AddressSpace *as, hwaddr addr, int len,
+bool address_space_access_valid(AddressSpace *as, hwaddr addr, hwaddr len,
bool is_write, MemTxAttrs attrs);
/* address_space_map: map a physical memory region into a host virtual address
@@ -2072,19 +2072,19 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
/* Internal functions, part of the implementation of address_space_read. */
MemTxResult address_space_read_full(AddressSpace *as, hwaddr addr,
- MemTxAttrs attrs, uint8_t *buf, int len);
+ MemTxAttrs attrs, uint8_t *buf, hwaddr len);
MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf,
- int len, hwaddr addr1, hwaddr l,
+ hwaddr len, hwaddr addr1, hwaddr l,
MemoryRegion *mr);
void *qemu_map_ram_ptr(RAMBlock *ram_block, ram_addr_t addr);
/* Internal functions, part of the implementation of address_space_read_cached
* and address_space_write_cached. */
void address_space_read_cached_slow(MemoryRegionCache *cache,
- hwaddr addr, void *buf, int len);
+ hwaddr addr, void *buf, hwaddr len);
void address_space_write_cached_slow(MemoryRegionCache *cache,
- hwaddr addr, const void *buf, int len);
+ hwaddr addr, const void *buf, hwaddr len);
static inline bool memory_access_is_direct(MemoryRegion *mr, bool is_write)
{
@@ -2112,7 +2112,7 @@ static inline bool memory_access_is_direct(MemoryRegion *mr, bool is_write)
static inline __attribute__((__always_inline__))
MemTxResult address_space_read(AddressSpace *as, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf,
- int len)
+ hwaddr len)
{
MemTxResult result = MEMTX_OK;
hwaddr l, addr1;
@@ -2151,7 +2151,7 @@ MemTxResult address_space_read(AddressSpace *as, hwaddr addr,
*/
static inline void
address_space_read_cached(MemoryRegionCache *cache, hwaddr addr,
- void *buf, int len)
+ void *buf, hwaddr len)
{
assert(addr < cache->len && len <= cache->len - addr);
if (likely(cache->ptr)) {
@@ -2171,7 +2171,7 @@ address_space_read_cached(MemoryRegionCache *cache, hwaddr addr,
*/
static inline void
address_space_write_cached(MemoryRegionCache *cache, hwaddr addr,
- void *buf, int len)
+ void *buf, hwaddr len)
{
assert(addr < cache->len && len <= cache->len - addr);
if (likely(cache->ptr)) {
--
1.8.3.1
next prev parent reply other threads:[~2019-02-04 18:37 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-04 18:35 [Qemu-devel] [PULL 00/77] Misc patches for 2019-02-04 Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 01/77] vhost-user-test: use g_cond_broadcast Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 02/77] vhost-user-test: signal data_cond when s->rings changes Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 03/77] vhost-user: support cross-endian vnet headers Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 04/77] vhost-user-test: support VHOST_USER_PROTOCOL_F_CROSS_ENDIAN Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 05/77] vhost-user-test: skip if there is no memory at address 0 Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 06/77] vhost-user-test: reduce usage of global_qtest Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 07/77] tap: flush STDOUT on newline Paolo Bonzini
2019-02-05 20:24 ` Philippe Mathieu-Daudé
2019-02-04 18:35 ` [Qemu-devel] [PULL 08/77] cpu-exec: add assert_no_pages_locked() after longjmp Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 09/77] cpu-exec: reset BQL after longjmp in cpu_exec_step_atomic Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 10/77] configure: Add a proper check for openpty() in libutil Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 11/77] cpus: ignore ESRCH in qemu_cpu_kick_thread() Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 12/77] elf: Add optional function ptr to load_elf() to parse ELF notes Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 13/77] elf-ops.h: Add get_elf_note_type() Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 14/77] pvh: Add x86/HVM direct boot ABI header file Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 15/77] pvh: Boot uncompressed kernel using direct boot ABI Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 16/77] pvh: load initrd and expose it through fw_cfg Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 17/77] linuxboot_dma: remove duplicate definitions of FW_CFG Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 18/77] linuxboot_dma: move common functions in a new header Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 19/77] optionrom: add new PVH option rom Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 20/77] hw/i386/pc: use " Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 21/77] optionrom/pvh: load initrd from fw_cfg Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 22/77] hw/i386/pc: enable PVH only for machine type >= 4.0 Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 23/77] i386: remove the new CPUID 'PCONFIG' from Icelake-Server CPU model Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 24/77] i386: remove the 'INTEL_PT' CPUID bit from named CPU models Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 25/77] Revert "i386: Add CPUID bit for PCONFIG" Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 26/77] target-i386: hvf: remove MPX support Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 27/77] contrib/elf2dmp: fix elf.h including Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 28/77] contrib/elf2dmp: use GLib in ELF processing Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 29/77] contrib/elf2dmp: use GLib in PDB processing Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 30/77] contrib/elf2dmp: fix structures definitions Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 32/77] configure: enable elf2dmp build for Windows hosts Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 33/77] monitor: do not use QTAILQ_FOREACH_SAFE across critical sections Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 34/77] crypto: finish removing TABs Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 35/77] ui: vnc: " Paolo Bonzini
2019-02-04 18:35 ` Paolo Bonzini [this message]
2019-02-04 18:35 ` [Qemu-devel] [PULL 37/77] hw/core/loader.c: Read as long as possible in load_image_size() Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 38/77] i386: import & use bootparam.h Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 39/77] i386: allow to load initrd below 4 GB for recent linux Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 40/77] docker: adjust Xen repository for CentOS 7 Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 41/77] i386: hvf: Don't miss 16-bit displacement Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 42/77] gdbstub: Fix i386/x86_64 machine description and add control registers Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 43/77] scsi-generic: avoid possible out-of-bounds access to r->buf Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 44/77] Remove deprecated -enable-hax option Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 45/77] qemu-options: Remove deprecated "-virtioconsole" option Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 46/77] arm: disable CONFIG_SERIAL_ISA Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 47/77] ide: split ioport registration to a separate file Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 48/77] vfio: move conditional up to hw/Makefile.objs Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 49/77] hw/pci-host/Makefile.objs: make CONFIGS clear for PCI EXPRESS Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 50/77] build: actually use CONFIG_PAM Paolo Bonzini
2019-02-04 19:34 ` Philippe Mathieu-Daudé
2019-02-04 18:35 ` [Qemu-devel] [PULL 51/77] hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 52/77] hw/arm/Makefile.objs: CONFIG_ARM_VIRT created for virt board Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 53/77] hw/m68k/Makefile.objs: Conditionally build boards Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 54/77] hw/microblaze/Makefile.objs: Create configs for petalogix and xilinx boards Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 55/77] hw/mips/Makefile.objs: Create CONFIG_* for r4k, malta, mipssim boards Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 56/77] hw/ppc/Makefile.objs: Build all boards conditinally with CONFIG_* Paolo Bonzini
2019-02-04 18:35 ` [Qemu-devel] [PULL 57/77] hw/sh4/Makefile.objs: New CONFIG_* varibales created for sh4 boards and device Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 58/77] hw/s390/Makefile.objs: Create new CONFIG_* variables for s390x boards and devices Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 59/77] hw/sparc/Makefile.objs: CONFIG_* for sun4m and leon3 created Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 60/77] hw/lm32/Makefile.objs: Conditionally build lm32 and milkmyst Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 61/77] hw/xtensa/Makefile.objs: Build xtensa_sim and xtensa_fpga conditionally Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 62/77] hw/nios2/Makefile.objs: Conditionally build nios2 Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 63/77] hw/riscv/Makefile.objs: Create CONFIG_* for riscv boards Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 64/77] hw/sparc64/Makefile.objs: Create CONFIG_* for sparc64 Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 65/77] hw/alpha/Makefile.objs: Create CONFIG_* for alpha Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 66/77] hw/cris/Makefile.objs: Create CONFIG_* for cris Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 67/77] hw/hppa/Makefile.objs: Create CONFIG_* for hppa Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 68/77] hw/moxie/Makefile.objs: Conditionally build moxie Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 69/77] hw/openrisc/Makefile.objs: Create CONFIG_* for openrisc Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 70/77] hw/tricore/Makefile.objs: Create CONFIG_* for tricore Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 71/77] hw/i2c/Makefile.objs: Create new CONFIG_* variables for EEPROM and ACPI controller Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 72/77] hw/vfio/Makefile.objs: Create new CONFIG_* variables for VFIO core and PCI Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 73/77] i386: hvf: Fix smp boot hangs Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 74/77] pc: Use hotplug_handler_(plug|unplug|unplug_request) Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 75/77] scsi-disk: Convert from DPRINTF() macro to trace events Paolo Bonzini
2019-02-04 18:36 ` [Qemu-devel] [PULL 77/77] queue: fix QTAILQ_FOREACH_REVERSE_SAFE Paolo Bonzini
2019-02-05 9:35 ` [Qemu-devel] [PULL 00/77] Misc patches for 2019-02-04 Peter Maydell
2019-02-05 11:27 ` Paolo Bonzini
2019-02-05 12:45 ` Peter Maydell
2019-02-05 14:34 ` Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1549305379-51117-37-git-send-email-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=crosthwaite.peter@gmail.com \
--cc=lizhijian@cn.fujitsu.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=sgarzare@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).