mirror of https://github.com/xemu-project/xemu.git
Trivial patches pull request 20210709
-----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEEzS913cjjpNwuT1Fz8ww4vT8vvjwFAmDosQwSHGxhdXJlbnRA dml2aWVyLmV1AAoJEPMMOL0/L748Jy0QAKj5svKv2Ad5ncvAwYBSRKQxnB4jg0MR /jZfshyw6cLL5aHV4HkCmsAVfPEo+f9CmUEXJBkXiJJsvthXAQw/xkskQe3iaRuF hQggYDjA94XabkWY35ie0OHVdwNpDzdKPt+gFft4UpstlNJkTb+jUoDi2+bjTFbS NsuDi5W4MYwt4r7Zauf1q4298bjNx2652aPXftRhCbbInHv0Nx++tfpDMrO3BTbH aINykWi552MjNFP/fzZQcJvKlOx8k/YTDgypIJl5fl4qZeh4HWOYX+92UuNdZDaP JFslAu7mF7E5iRTqJCEv3doXwG3HA5llhtYw5gaDGXj6i6GFrswNFtJE0qB/ZB8o EARt62u/+Z2Z8GYj2WmSbDXnMwQMaf3GbvTYlNaFV6HLmtIg3eR+DySFoBCj1SP4 ZgYa3phH/xpE5fPPcnZ6Ae4OzzrEOQaK2PgBhT6wCuY6ZAbY1SrRbXvCuDA+BLyr i6hycblGT3LF3YfT5cw5ek+jqliOUcXivzPjomwJVpFdrXKa+iC4JHxQGSn+Wayw mXHx7JmQ4oxiizUNOxAEUo4FlZlerN5DyBmY/YuY7IpjuL6DmwchEDcirO72BiKL C5npCVx37WJvJ8EM1REo75kkWTzKgMdUMjRjGzBf/MqPTNMe/fXMHF2OeRyOlbcX +x5tnSU45fTJ =6fZ6 -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/vivier2/tags/trivial-branch-for-6.1-pull-request' into staging Trivial patches pull request 20210709 # gpg: Signature made Fri 09 Jul 2021 21:26:52 BST # gpg: using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C # gpg: issuer "laurent@vivier.eu" # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full] # gpg: aka "Laurent Vivier <laurent@vivier.eu>" [full] # gpg: aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full] # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F 5173 F30C 38BD 3F2F BE3C * remotes/vivier2/tags/trivial-branch-for-6.1-pull-request: util/guest-random: Fix size arg to tail memcpy migration: fix typo in mig_throttle_guest_down comment target/xtensa/xtensa-semi: Fix compilation problem on Haiku hw/virtio: Document *_should_notify() are called within rcu_read_lock() misc: Remove redundant new line in perror() virtiofsd: Add missing newline in error message misc: Fix "havn't" typo memory: Display MemoryRegion name in read/write ops trace events qemu-option: Drop dead assertion Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
86108e23d7
|
@ -181,7 +181,7 @@ static int usb_desc_msos_prop(const USBDesc *desc, uint8_t *dest)
|
|||
|
||||
if (desc->msos->Label) {
|
||||
/*
|
||||
* Given as example in the specs. Havn't figured yet where
|
||||
* Given as example in the specs. Haven't figured yet where
|
||||
* this label shows up in the windows gui.
|
||||
*/
|
||||
length += usb_desc_msos_prop_str(dest+length, MSOS_REG_SZ,
|
||||
|
|
|
@ -2447,6 +2447,7 @@ static void virtio_set_isr(VirtIODevice *vdev, int value)
|
|||
}
|
||||
}
|
||||
|
||||
/* Called within rcu_read_lock(). */
|
||||
static bool virtio_split_should_notify(VirtIODevice *vdev, VirtQueue *vq)
|
||||
{
|
||||
uint16_t old, new;
|
||||
|
@ -2483,6 +2484,7 @@ static bool vring_packed_need_event(VirtQueue *vq, bool wrap,
|
|||
return vring_need_event(off, new, old);
|
||||
}
|
||||
|
||||
/* Called within rcu_read_lock(). */
|
||||
static bool virtio_packed_should_notify(VirtIODevice *vdev, VirtQueue *vq)
|
||||
{
|
||||
VRingPackedDescEvent e;
|
||||
|
|
|
@ -600,7 +600,7 @@ static size_t save_page_header(RAMState *rs, QEMUFile *f, RAMBlock *block,
|
|||
}
|
||||
|
||||
/**
|
||||
* mig_throttle_guest_down: throotle down the guest
|
||||
* mig_throttle_guest_down: throttle down the guest
|
||||
*
|
||||
* Reduce amount of guest cpu execution to hopefully slow down memory
|
||||
* writes. If guest dirty memory rate is reduced below the rate at
|
||||
|
|
|
@ -1131,7 +1131,7 @@ static int qemu_rdma_reg_whole_ram_blocks(RDMAContext *rdma)
|
|||
IBV_ACCESS_REMOTE_WRITE
|
||||
);
|
||||
if (!local->block[i].mr) {
|
||||
perror("Failed to register local dest ram block!\n");
|
||||
perror("Failed to register local dest ram block!");
|
||||
break;
|
||||
}
|
||||
rdma->total_registrations++;
|
||||
|
|
|
@ -325,7 +325,7 @@ static void sigbus_reraise(void)
|
|||
sigaddset(&set, SIGBUS);
|
||||
pthread_sigmask(SIG_UNBLOCK, &set, NULL);
|
||||
}
|
||||
perror("Failed to re-raise SIGBUS!\n");
|
||||
perror("Failed to re-raise SIGBUS!");
|
||||
abort();
|
||||
}
|
||||
|
||||
|
|
|
@ -442,7 +442,8 @@ static MemTxResult memory_region_read_accessor(MemoryRegion *mr,
|
|||
trace_memory_region_subpage_read(get_cpu_index(), mr, addr, tmp, size);
|
||||
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_READ)) {
|
||||
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
|
||||
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size);
|
||||
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size,
|
||||
memory_region_name(mr));
|
||||
}
|
||||
memory_region_shift_read_access(value, shift, mask, tmp);
|
||||
return MEMTX_OK;
|
||||
|
@ -464,7 +465,8 @@ static MemTxResult memory_region_read_with_attrs_accessor(MemoryRegion *mr,
|
|||
trace_memory_region_subpage_read(get_cpu_index(), mr, addr, tmp, size);
|
||||
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_READ)) {
|
||||
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
|
||||
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size);
|
||||
trace_memory_region_ops_read(get_cpu_index(), mr, abs_addr, tmp, size,
|
||||
memory_region_name(mr));
|
||||
}
|
||||
memory_region_shift_read_access(value, shift, mask, tmp);
|
||||
return r;
|
||||
|
@ -484,7 +486,8 @@ static MemTxResult memory_region_write_accessor(MemoryRegion *mr,
|
|||
trace_memory_region_subpage_write(get_cpu_index(), mr, addr, tmp, size);
|
||||
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_WRITE)) {
|
||||
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
|
||||
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size);
|
||||
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size,
|
||||
memory_region_name(mr));
|
||||
}
|
||||
mr->ops->write(mr->opaque, addr, tmp, size);
|
||||
return MEMTX_OK;
|
||||
|
@ -504,7 +507,8 @@ static MemTxResult memory_region_write_with_attrs_accessor(MemoryRegion *mr,
|
|||
trace_memory_region_subpage_write(get_cpu_index(), mr, addr, tmp, size);
|
||||
} else if (trace_event_get_state_backends(TRACE_MEMORY_REGION_OPS_WRITE)) {
|
||||
hwaddr abs_addr = memory_region_to_absolute_addr(mr, addr);
|
||||
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size);
|
||||
trace_memory_region_ops_write(get_cpu_index(), mr, abs_addr, tmp, size,
|
||||
memory_region_name(mr));
|
||||
}
|
||||
return mr->ops->write_with_attrs(mr->opaque, addr, tmp, size, attrs);
|
||||
}
|
||||
|
|
|
@ -9,8 +9,8 @@ cpu_in(unsigned int addr, char size, unsigned int val) "addr 0x%x(%c) value %u"
|
|||
cpu_out(unsigned int addr, char size, unsigned int val) "addr 0x%x(%c) value %u"
|
||||
|
||||
# memory.c
|
||||
memory_region_ops_read(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u"
|
||||
memory_region_ops_write(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u"
|
||||
memory_region_ops_read(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size, const char *name) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u name '%s'"
|
||||
memory_region_ops_write(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size, const char *name) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u name '%s'"
|
||||
memory_region_subpage_read(int cpu_index, void *mr, uint64_t offset, uint64_t value, unsigned size) "cpu %d mr %p offset 0x%"PRIx64" value 0x%"PRIx64" size %u"
|
||||
memory_region_subpage_write(int cpu_index, void *mr, uint64_t offset, uint64_t value, unsigned size) "cpu %d mr %p offset 0x%"PRIx64" value 0x%"PRIx64" size %u"
|
||||
memory_region_ram_device_read(int cpu_index, void *mr, uint64_t addr, uint64_t value, unsigned size) "cpu %d mr %p addr 0x%"PRIx64" value 0x%"PRIx64" size %u"
|
||||
|
|
|
@ -6270,8 +6270,10 @@ static void extract_field(DisasFields *o, const DisasField *f, uint64_t insn)
|
|||
abort();
|
||||
}
|
||||
|
||||
/* Validate that the "compressed" encoding we selected above is valid.
|
||||
I.e. we havn't make two different original fields overlap. */
|
||||
/*
|
||||
* Validate that the "compressed" encoding we selected above is valid.
|
||||
* I.e. we haven't made two different original fields overlap.
|
||||
*/
|
||||
assert(((o->presentC >> f->indexC) & 1) == 0);
|
||||
o->presentC |= 1 << f->indexC;
|
||||
o->presentO |= 1 << f->indexO;
|
||||
|
|
|
@ -95,60 +95,54 @@ enum {
|
|||
|
||||
static uint32_t errno_h2g(int host_errno)
|
||||
{
|
||||
static const uint32_t guest_errno[] = {
|
||||
[EPERM] = TARGET_EPERM,
|
||||
[ENOENT] = TARGET_ENOENT,
|
||||
[ESRCH] = TARGET_ESRCH,
|
||||
[EINTR] = TARGET_EINTR,
|
||||
[EIO] = TARGET_EIO,
|
||||
[ENXIO] = TARGET_ENXIO,
|
||||
[E2BIG] = TARGET_E2BIG,
|
||||
[ENOEXEC] = TARGET_ENOEXEC,
|
||||
[EBADF] = TARGET_EBADF,
|
||||
[ECHILD] = TARGET_ECHILD,
|
||||
[EAGAIN] = TARGET_EAGAIN,
|
||||
[ENOMEM] = TARGET_ENOMEM,
|
||||
[EACCES] = TARGET_EACCES,
|
||||
[EFAULT] = TARGET_EFAULT,
|
||||
switch (host_errno) {
|
||||
case 0: return 0;
|
||||
case EPERM: return TARGET_EPERM;
|
||||
case ENOENT: return TARGET_ENOENT;
|
||||
case ESRCH: return TARGET_ESRCH;
|
||||
case EINTR: return TARGET_EINTR;
|
||||
case EIO: return TARGET_EIO;
|
||||
case ENXIO: return TARGET_ENXIO;
|
||||
case E2BIG: return TARGET_E2BIG;
|
||||
case ENOEXEC: return TARGET_ENOEXEC;
|
||||
case EBADF: return TARGET_EBADF;
|
||||
case ECHILD: return TARGET_ECHILD;
|
||||
case EAGAIN: return TARGET_EAGAIN;
|
||||
case ENOMEM: return TARGET_ENOMEM;
|
||||
case EACCES: return TARGET_EACCES;
|
||||
case EFAULT: return TARGET_EFAULT;
|
||||
#ifdef ENOTBLK
|
||||
[ENOTBLK] = TARGET_ENOTBLK,
|
||||
case ENOTBLK: return TARGET_ENOTBLK;
|
||||
#endif
|
||||
[EBUSY] = TARGET_EBUSY,
|
||||
[EEXIST] = TARGET_EEXIST,
|
||||
[EXDEV] = TARGET_EXDEV,
|
||||
[ENODEV] = TARGET_ENODEV,
|
||||
[ENOTDIR] = TARGET_ENOTDIR,
|
||||
[EISDIR] = TARGET_EISDIR,
|
||||
[EINVAL] = TARGET_EINVAL,
|
||||
[ENFILE] = TARGET_ENFILE,
|
||||
[EMFILE] = TARGET_EMFILE,
|
||||
[ENOTTY] = TARGET_ENOTTY,
|
||||
case EBUSY: return TARGET_EBUSY;
|
||||
case EEXIST: return TARGET_EEXIST;
|
||||
case EXDEV: return TARGET_EXDEV;
|
||||
case ENODEV: return TARGET_ENODEV;
|
||||
case ENOTDIR: return TARGET_ENOTDIR;
|
||||
case EISDIR: return TARGET_EISDIR;
|
||||
case EINVAL: return TARGET_EINVAL;
|
||||
case ENFILE: return TARGET_ENFILE;
|
||||
case EMFILE: return TARGET_EMFILE;
|
||||
case ENOTTY: return TARGET_ENOTTY;
|
||||
#ifdef ETXTBSY
|
||||
[ETXTBSY] = TARGET_ETXTBSY,
|
||||
case ETXTBSY: return TARGET_ETXTBSY;
|
||||
#endif
|
||||
[EFBIG] = TARGET_EFBIG,
|
||||
[ENOSPC] = TARGET_ENOSPC,
|
||||
[ESPIPE] = TARGET_ESPIPE,
|
||||
[EROFS] = TARGET_EROFS,
|
||||
[EMLINK] = TARGET_EMLINK,
|
||||
[EPIPE] = TARGET_EPIPE,
|
||||
[EDOM] = TARGET_EDOM,
|
||||
[ERANGE] = TARGET_ERANGE,
|
||||
[ENOSYS] = TARGET_ENOSYS,
|
||||
case EFBIG: return TARGET_EFBIG;
|
||||
case ENOSPC: return TARGET_ENOSPC;
|
||||
case ESPIPE: return TARGET_ESPIPE;
|
||||
case EROFS: return TARGET_EROFS;
|
||||
case EMLINK: return TARGET_EMLINK;
|
||||
case EPIPE: return TARGET_EPIPE;
|
||||
case EDOM: return TARGET_EDOM;
|
||||
case ERANGE: return TARGET_ERANGE;
|
||||
case ENOSYS: return TARGET_ENOSYS;
|
||||
#ifdef ELOOP
|
||||
[ELOOP] = TARGET_ELOOP,
|
||||
case ELOOP: return TARGET_ELOOP;
|
||||
#endif
|
||||
};
|
||||
|
||||
if (host_errno == 0) {
|
||||
return 0;
|
||||
} else if (host_errno > 0 && host_errno < ARRAY_SIZE(guest_errno) &&
|
||||
guest_errno[host_errno]) {
|
||||
return guest_errno[host_errno];
|
||||
} else {
|
||||
return TARGET_EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct XtensaSimConsole {
|
||||
CharBackend be;
|
||||
|
|
|
@ -2407,8 +2407,10 @@ static TCGConstraintSetIndex tcg_target_op_def(TCGOpcode op)
|
|||
|
||||
static void tcg_target_init(TCGContext *s)
|
||||
{
|
||||
/* Only probe for the platform and capabilities if we havn't already
|
||||
determined maximum values at compile time. */
|
||||
/*
|
||||
* Only probe for the platform and capabilities if we haven't already
|
||||
* determined maximum values at compile time.
|
||||
*/
|
||||
#if !defined(use_idiv_instructions) || !defined(use_neon_instructions)
|
||||
{
|
||||
unsigned long hwcap = qemu_getauxval(AT_HWCAP);
|
||||
|
|
|
@ -1690,8 +1690,10 @@ static TCGConstraintSetIndex tcg_target_op_def(TCGOpcode op)
|
|||
|
||||
static void tcg_target_init(TCGContext *s)
|
||||
{
|
||||
/* Only probe for the platform and capabilities if we havn't already
|
||||
determined maximum values at compile time. */
|
||||
/*
|
||||
* Only probe for the platform and capabilities if we haven't already
|
||||
* determined maximum values at compile time.
|
||||
*/
|
||||
#ifndef use_vis3_instructions
|
||||
{
|
||||
unsigned long hwcap = qemu_getauxval(AT_HWCAP);
|
||||
|
|
|
@ -2741,7 +2741,7 @@ void tcg_gen_goto_tb(unsigned idx)
|
|||
/* We only support two chained exits. */
|
||||
tcg_debug_assert(idx <= TB_EXIT_IDXMAX);
|
||||
#ifdef CONFIG_DEBUG_TCG
|
||||
/* Verify that we havn't seen this numbered exit before. */
|
||||
/* Verify that we haven't seen this numbered exit before. */
|
||||
tcg_debug_assert((tcg_ctx->goto_tb_issue_mask & (1 << idx)) == 0);
|
||||
tcg_ctx->goto_tb_issue_mask |= 1 << idx;
|
||||
#endif
|
||||
|
|
|
@ -917,7 +917,7 @@ static bool fv_socket_lock(struct fuse_session *se)
|
|||
dir = qemu_get_local_state_pathname("run/virtiofsd");
|
||||
|
||||
if (g_mkdir_with_parents(dir, S_IRWXU) < 0) {
|
||||
fuse_log(FUSE_LOG_ERR, "%s: Failed to create directory %s: %s",
|
||||
fuse_log(FUSE_LOG_ERR, "%s: Failed to create directory %s: %s\n",
|
||||
__func__, dir, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@ static int glib_random_bytes(void *buf, size_t len)
|
|||
}
|
||||
if (i < len) {
|
||||
x = g_rand_int(rand);
|
||||
__builtin_memcpy(buf + i, &x, i - len);
|
||||
__builtin_memcpy(buf + i, &x, len - i);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -997,8 +997,6 @@ QemuOpts *qemu_opts_from_qdict(QemuOptsList *list, const QDict *qdict,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
assert(opts != NULL);
|
||||
|
||||
for (entry = qdict_first(qdict);
|
||||
entry;
|
||||
entry = qdict_next(qdict, entry)) {
|
||||
|
|
Loading…
Reference in New Issue