Merge remote-tracking branch 'agraf/ppc-for-upstream-1.3' into staging
* agraf/ppc-for-upstream-1.3: fbdev: fix pixman compile on old pixman vl.c: Fix broken -usb option pseries: Fix bug in PCI MSI allocation kvm: fix incorrect length in a loop over kvm dirty pages map PPC: Fix missing TRACE exception hw/ide/macio: Fix segfault caused by NULL DMAContext* Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
commit
7e68494b0b
|
@ -76,7 +76,8 @@ static void pmac_ide_atapi_transfer_cb(void *opaque, int ret)
|
||||||
|
|
||||||
s->io_buffer_size = io->len;
|
s->io_buffer_size = io->len;
|
||||||
|
|
||||||
qemu_sglist_init(&s->sg, io->len / MACIO_PAGE_SIZE + 1, NULL);
|
qemu_sglist_init(&s->sg, io->len / MACIO_PAGE_SIZE + 1,
|
||||||
|
&dma_context_memory);
|
||||||
qemu_sglist_add(&s->sg, io->addr, io->len);
|
qemu_sglist_add(&s->sg, io->addr, io->len);
|
||||||
io->addr += io->len;
|
io->addr += io->len;
|
||||||
io->len = 0;
|
io->len = 0;
|
||||||
|
@ -132,7 +133,8 @@ static void pmac_ide_transfer_cb(void *opaque, int ret)
|
||||||
s->io_buffer_index = 0;
|
s->io_buffer_index = 0;
|
||||||
s->io_buffer_size = io->len;
|
s->io_buffer_size = io->len;
|
||||||
|
|
||||||
qemu_sglist_init(&s->sg, io->len / MACIO_PAGE_SIZE + 1, NULL);
|
qemu_sglist_init(&s->sg, io->len / MACIO_PAGE_SIZE + 1,
|
||||||
|
&dma_context_memory);
|
||||||
qemu_sglist_add(&s->sg, io->addr, io->len);
|
qemu_sglist_add(&s->sg, io->addr, io->len);
|
||||||
io->addr += io->len;
|
io->addr += io->len;
|
||||||
io->len = 0;
|
io->len = 0;
|
||||||
|
|
|
@ -351,7 +351,7 @@ static void rtas_ibm_change_msi(sPAPREnvironment *spapr,
|
||||||
|
|
||||||
/* There is no cached config, allocate MSIs */
|
/* There is no cached config, allocate MSIs */
|
||||||
if (!phb->msi_table[ndev].nvec) {
|
if (!phb->msi_table[ndev].nvec) {
|
||||||
irq = spapr_allocate_irq_block(req_num, true);
|
irq = spapr_allocate_irq_block(req_num, false);
|
||||||
if (irq < 0) {
|
if (irq < 0) {
|
||||||
fprintf(stderr, "Cannot allocate MSIs for device#%d", ndev);
|
fprintf(stderr, "Cannot allocate MSIs for device#%d", ndev);
|
||||||
rtas_st(rets, 0, -1); /* Hardware error */
|
rtas_st(rets, 0, -1); /* Hardware error */
|
||||||
|
|
|
@ -364,7 +364,7 @@ static int kvm_get_dirty_pages_log_range(MemoryRegionSection *section,
|
||||||
unsigned int i, j;
|
unsigned int i, j;
|
||||||
unsigned long page_number, c;
|
unsigned long page_number, c;
|
||||||
hwaddr addr, addr1;
|
hwaddr addr, addr1;
|
||||||
unsigned int len = ((section->size / TARGET_PAGE_SIZE) + HOST_LONG_BITS - 1) / HOST_LONG_BITS;
|
unsigned int len = ((section->size / getpagesize()) + HOST_LONG_BITS - 1) / HOST_LONG_BITS;
|
||||||
unsigned long hpratio = getpagesize() / TARGET_PAGE_SIZE;
|
unsigned long hpratio = getpagesize() / TARGET_PAGE_SIZE;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -21,7 +21,9 @@ int qemu_pixman_get_type(int rshift, int gshift, int bshift)
|
||||||
if (rshift == 0) {
|
if (rshift == 0) {
|
||||||
type = PIXMAN_TYPE_ABGR;
|
type = PIXMAN_TYPE_ABGR;
|
||||||
} else {
|
} else {
|
||||||
|
#if PIXMAN_VERSION >= PIXMAN_VERSION_ENCODE(0, 21, 8)
|
||||||
type = PIXMAN_TYPE_BGRA;
|
type = PIXMAN_TYPE_BGRA;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return type;
|
return type;
|
||||||
|
|
|
@ -3473,7 +3473,8 @@ static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest)
|
||||||
if (unlikely(ctx->singlestep_enabled)) {
|
if (unlikely(ctx->singlestep_enabled)) {
|
||||||
if ((ctx->singlestep_enabled &
|
if ((ctx->singlestep_enabled &
|
||||||
(CPU_BRANCH_STEP | CPU_SINGLE_STEP)) &&
|
(CPU_BRANCH_STEP | CPU_SINGLE_STEP)) &&
|
||||||
ctx->exception == POWERPC_EXCP_BRANCH) {
|
(ctx->exception == POWERPC_EXCP_BRANCH ||
|
||||||
|
ctx->exception == POWERPC_EXCP_TRACE)) {
|
||||||
target_ulong tmp = ctx->nip;
|
target_ulong tmp = ctx->nip;
|
||||||
ctx->nip = dest;
|
ctx->nip = dest;
|
||||||
gen_exception(ctx, POWERPC_EXCP_TRACE);
|
gen_exception(ctx, POWERPC_EXCP_TRACE);
|
||||||
|
|
Loading…
Reference in a new issue